gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:25:33 24 4
gpt4 key购买 nike

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

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

$

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

最佳答案

老实说我不使用 Ubuntu,但 AFAIK 调试包不包含完整版本的库或二进制文件,只是从中删除了调试信息。这些只是用 eu-strip 或类似工具切出的部分。你不应该链接到他们。事实上,根本不需要重新链接您的应用程序。如果工具本身无法做到这一点,您应该只指示 gdb、valgrind 或其他调试信息使用者在实际调试之前阅读它们,仅此而已。

关于linux - 如何使用共享对象的调试版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13419906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com