我有一个项目涉及
mylib.so
test_mylib
当我尝试运行时
gdb
在 test_mylib
,它打印:"test_mylib": not in executable format: File format not recognized
当我直接使用真实程序(
.libs/test_mylib
)时,它仍然提示:.libs/test_mylib: can't load library 'libhello.so.0'
如何运行 gdb 来调试我的程序?
最佳答案
这是我几天前遇到的问题,目前还没有关于 SO 的通用答案。只有特殊情况。这是我在此页面上找到的答案:http://www.gnu.org/software/libtool/manual/html_node/Debugging-executables.html
在安装程序之前,系统不知道去哪里寻找共享对象。它们通常位于 .libs
其源文件夹的子目录。
Libtool 生成一个方便的脚本以允许在实际安装完成之前进行调试(谁想在之前安装有问题的软件,之后再调试它?)
幸运的是,生成的脚本为此提供了一个帮助程序:
libtool --mode=execute gdb test_mylib
关于debugging - 如何调试包含在 libtool 脚本中的程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12148668/