没有可用的符号表信息

car*_*iaz 5 linux gdb

我正在测试第三方的库,它崩溃了。当我想查看崩溃的原因时,我的 gdb 告诉我没有可用的调试符号

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb53ffb70 (LWP 3722)]
0x00172a89 in tsip_transac_send () from /usr/local/lib/libtinySIP.so.0
Run Code Online (Sandbox Code Playgroud)

我在 gdb 控制台上发出bt full并得到如下一系列行

#0  0x00172a89 in tsip_transac_send () from /usr/local/lib/libtinySIP.so.0
No symbol table info available
Run Code Online (Sandbox Code Playgroud)

在检查 Makefile 中的 CFLAGS 后,我重新编译了该库。这些值一直都很好,但我还是重新编译了它

CFLAGS = -g -O2
Run Code Online (Sandbox Code Playgroud)

我再次运行测试,运气相同,没有共享库的调试符号。

我在这里缺少什么?

我使用的是Centos 6.0,之前在Opensuse中安装过该库,但没有出现这个问题。可能和我安装的Centos有关系。

如果有人关心的话,我正在测试 Doubango 的 webrtc2sip 库。

编辑:调试符号正在正确加载

(gdb) info sharedlibrary
From        To          Syms Read   Shared Object Library
0x002fb830  0x0031339f  Yes (*)     /lib/ld-linux.so.2
0x00115040  0x00120028  Yes         /usr/local/lib/libtinySAK.so.0
0x00133f30  0x0018b378  Yes         /usr/local/lib/libtinySIP.so.0
0x001d8ac0  0x00201b98  Yes         /usr/local/lib/libtinyNET.so.0
0x00215dd0  0x0023f638  Yes         /usr/local/lib/libtinyDAV.so.0
0x0024eec0  0x00261728  Yes         /usr/local/lib/libtinyMEDIA.so.0
0x0026bb00  0x002774d8  Yes         /usr/local/lib/libtinyHTTP.so.0
0x002ae340  0x002b0358  Yes         /usr/local/lib/libtinyXCAP.so.0
0x002b3990  0x002b8d18  Yes         /usr/local/lib/libtinySMS.so.0
0x002be630  0x002c9388  Yes         /usr/local/lib/libtinyMSRP.so.0
0x002de240  0x002e8e18  Yes         /usr/local/lib/libtinySDP.so.0
0x00323060  0x00345778  Yes         /usr/local/lib/libtinyRTP.so.0
Run Code Online (Sandbox Code Playgroud)

car*_*iaz 3

嗯,看起来这是 gdb 中的一个错误。

Centos 6 在其存储库中预编译了版本7.2-56.el6。我更新(通过编译源代码)到最新版本的 gdb,现在它可以工作了。

感谢大家的帮助。

  • 这是 gdb 错误跟踪器上的已知错误吗?是哪个版本修复的?哪个版本有问题? (5认同)