如何使用共享对象的调试版本

时间:2012-11-16 15:48:24

标签: linux shared-libraries dynamic-linking

我必须使用共享库的调试版本(特别是通过apt-get install libpcap0.8-dbg在Ubuntu中安装的libpcap)...我构建我的可执行文件并链接它并且所有工作都已完成(通过ldd验证)...但是当我运行可执行文件时,我得到一个段错误...动态链接器无法加载库。使用objdump我看到Dynamic section为空:

$objdump -p libpcap.so.1.1.1
...
Dynamic section:

$

我认为在ELF共享对象中Dynamic section的某些字段是强制性的......所以,为什么这部分是空的?也许有正确加载它的方法不同?

2 个答案:

答案 0 :(得分:2)

老实说,我不使用Ubuntu,但AFAIK调试包不包含完整版本的库或二进制文件,只是从它们中删除了调试信息。这些只是由欧式带或类似工具切出的部分。你不应该与他们联系。事实上,根本不需要重新链接您的应用程序。你应该只是指示gdb,valgrind或其他调试信息使用者在实际调试之前读取它们,如果工具不能自己做,那就是全部。

答案 1 :(得分:0)

您可以尝试使用LD_LIBRARY_PATH=/usr/lib/debug/

运行
相关问题