Код: Выделить всё
#include
#include
int main(int argc, char* argv[]){
#ifdef __GLIBCPP__
std::printf("GLIBCPP: %d\n",__GLIBCPP__);
#endif
#ifdef __GLIBCXX__
std::printf("GLIBCXX: %d\n",__GLIBCXX__);
#endif
throw std::runtime_error("Were are libstdc++.so.6 debug symbols?");
return 0;
}
При запуске его внутри моего GDB он не показывает символы отладки для libstdc ++. So.6 :
$ g++ -o testmain test.cpp -ggdb --std=c++98 && gdb ./testmain
GNU gdb (Ubuntu 9.1-0ubuntu1) 9.1
Copyright (C) 2020 Free Software Foundation, Inc.
...
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./testmain...
(gdb) r
Starting program: /home/user/Downloads/testmain
GLIBCXX: 20200408
terminate called after throwing an instance of 'std::runtime_error'
what(): Were are libstdc++.so.6 debug symbols?
< /code>
Program received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt f
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
set = {__val = {0, 0, 0, 0, 0, 0, 0, 0, 29295, 0, 0, 0, 0, 0, 0, 0}}
pid =
tid =
ret =
#1 0x00007ffff7be1859 in __GI_abort () at abort.c:79
save_stage = 1
act = {__sigaction_handler = {sa_handler = ... }
sigs = {__val = {32, 0 }}
#2 0x00007ffff7e67951 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#3 0x00007ffff7e7347c in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#4 0x00007ffff7e734e7 in std::terminate() () from /lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#5 0x00007ffff7e73799 in __cxa_throw () from /lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#6 0x000055555555524a in main (argc=1, argv=0x7fffffffdef8) at test.cpp:11
No locals.
(gdb)
< /code>
It just shows No symbol table info available для libstdc ++. So.6 рамки.
Как я могу показать символы для Libstdc ++. So.6 ?
Поиск в этом списке https://packages.ubuntu.com/search?workwords=libstdc посмотрел. Пакеты, но ни один из них не установил проблему: < /p>
[list]
[*]libgcc-10-dev:amd64 10.2.0-5ubuntu1~20.0Код: Выделить всё
libstdc++-10-dev:amd64 10.2.0-5ubuntu1~20.0Код: Выделить всё
libstdc++6-10-dbg:amd64 10.2.0-5ubuntu1~20.0Код: Выделить всё
libc6-amd64-cross:all 2.31-0ubuntu7crossКод: Выделить всё
linux-libc-dev-amd64-cross:all 5.4.0-21.25crossКод: Выделить всё
libc6-dev-amd64-cross:all 2.31-0ubuntu7crossКод: Выделить всё
libstdc++6-amd64-cross:all 10.2.0-5ubuntu1~20.04crossКод: Выделить всё
libgcc-10-dev-amd64-cross:all 10.2.0-5ubuntu1~20.04crossКод: Выделить всё
libstdc++-10-dev-amd64-cross:all 10.2.0-5ubuntu1~20.04crossКод: Выделить всё
libstdc++6-10-dbg-amd64-cross:all 10.2.0-5ubuntu1~20.04cross[/list]
Связанные вопросы:
Как вы обнаружите, какая версия Libstdc ++ библиотека установлена на вашем minux? Найдено < /li>
< /ol>
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.1 LTS"
VERSION_ID="20.04"
< /code>
Update 1
$ dpkg --list | grep libstdc++6
ii libstdc++6:amd64 10.2.0-5ubuntu1~20.04 amd64 GNU Standard C++ Library v3
ii libstdc++6-10-dbg-amd64-cross 10.2.0-5ubuntu1~20.04cross1 all GNU Standard C++ Library v3 (debug build) (amd64)
ii libstdc++6-7-dbg:amd64 7.5.0-6ubuntu2 amd64 GNU Standard C++ Library v3 (debug build)
ii libstdc++6-amd64-cross 10.2.0-5ubuntu1~20.04cross1 all GNU Standard C++ Library v3 (amd64)
< /code>
Update 2
$ dpkg --list | grep libstdc++6
ii libstdc++6:amd64 10.2.0-5ubuntu1~20.04 amd64 GNU Standard C++ Library v3
ii libstdc++6-10-dbg:amd64 10.2.0-5ubuntu1~20.04 amd64 GNU Standard C++ Library v3 (debug build)
ii libstdc++6-10-dbg-amd64-cross 10.2.0-5ubuntu1~20.04cross1 all GNU Standard C++ Library v3 (debug build) (amd64)
ii libstdc++6-amd64-cross 10.2.0-5ubuntu1~20.04cross1 all GNU Standard C++ Library v3 (amd64)
Подробнее здесь: https://stackoverflow.com/questions/648 ... untu-20-04
Мобильная версия