没有可用的符号表信息 [英] No symbol table info available

查看:212
本文介绍了没有可用的符号表信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

pre $ 编程接收到的信号SIGSEGV,分段故障。
[切换到线程0xb53ffb70(LWP 3722)]
0x00172a89 in tsip_transac_send()from /usr/local/lib/libtinySIP.so.0

我在gdb控制台上发布了 bt full ,并且我得到了一系列如下所示的行

 #0来自/usr/local/lib/libtinySIP.so.0的tsip_transac_send()中的0x00172a89 
没有符号表信息可用

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

  CFLAGS = -g -O2 

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



我在这里错过了什么?



我使用的是Centos 6.0,我之前在Opensuse中安装了这个库,但是我没有这个问题。这可能与我的Centos安装有关。



如果有人在乎,我正在测试Doubango的webrtc2sip库。



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

 (gdb)info sharedlibrary 
从到Syms读共享对象库
0x002fb830 0x0031339f是(*)/lib/ld-linux.so.2
0x00115040 0x00120028是/usr/local/lib/libtinySAK.so.0
0x00133f30 0x0018b378是/usr/local/lib/libtinySIP.so.0
0x001d8ac0 0x00201b98是/usr/local/lib/libtinyNET.so.0
0x00215dd0 0x0023f638是/ usr / local / lib / libtinyDAV。 so.0
0x0024eec0 0x00261728是/usr/local/lib/libtinyMEDIA.so.0
0x0026bb00 0x002774d8是/usr/local/lib/libtinyHTTP.so.0
0x002ae340 0x002b0358是/ usr /local/lib/libtinyXCAP.so.0
0x002b3990 0x002b8d18是/usr/local/lib/libtinySMS.so.0
0x002be630 0x002c9 388是/usr/local/lib/libtinyMSRP.so.0
0x002de240 0x002e8e18是/usr/local/lib/libtinySDP.so.0
0x00323060 0x00345778是/usr/local/lib/libtinyRTP.so .0


解决方案

好吧,它看起来像一个bug在gdb中。

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



感谢您的帮助。


I'm testing a library from a third party and it crashes. When I wanted to see the reason of the crash my gdb told me that there were no debugging symbols available

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

I issued bt full on the gdb console and I get a series of lines like below

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

I recompiled the library after checking the CFLAGS in the Makefile. The values were fine all the time but I recompiled it anyway

CFLAGS = -g -O2

I ran the test again with the same luck, no debug symbols for the shared library.

What am I missing here?

I'm using Centos 6.0, and I installed the library in Opensuse before but I didn't have this problem. It probably has something to do with my Centos installation.

In case anyone cares, I'm testing Doubango's library for webrtc2sip.

EDIT: Debug symbols are being loaded properly

(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

解决方案

Well, it looks like it was a bug in gdb.

Centos 6 has the version 7.2-56.el6 precompiled in its repository. I updated (by compiling the sources) to the latest version of gdb and now it is working.

Thanks to all for your help.

这篇关于没有可用的符号表信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆