我需要调试系统库中的一些调用,以了解调用的不同之处,以及为什么一个或另一个会失败。
Linux发行版现在通常提供剥离的系统库和单独的调试符号文件。例如,/ lib / libc-2.8.so被剥离符号,留下名为.gnu_debuglink的部分,其中包含查找单独调试文件的信息。单独的调试文件可通过调试包安装,并包含gdb所需的符号信息。这里有很好的描述http://www.technovelty.org/code/debug-info-symbols.html和http://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html
在安装调试包和源代码之后,我期待GDB找到符号和源代码,我将能够查看列表并进入调用。相反,gdb告诉我“没有为xyz知道的行号”
我已经验证了debug-file-location是正确的,并且目录设置为源目录。
甚至可以做我想做的事吗?我是以错误的方式来做这件事的吗?有更简单的方法吗?
答案 0 :(得分:0)
您是否尝试在GDB中设置debug-file-directory
参数?根据您指出的文档,它应该按照您的要求执行:
set debug-file-directory directories
设置gdb搜索单独调试的目录 信息文件到目录。多个目录组件可以 设置由目录分隔符连接它们。
show debug-file-directory
显示目录gdb搜索单独的调试 信息文件。
例如,在我的Fedora发行版中,目录为/usr/lib/debug
。
您也可以使用
在编译时定义它configure --with-separate-debug-dir=/usr/lib/debug ...