执行系统库调用的源级调试的推荐方法是什么?

时间:2011-09-01 19:50:44

标签: linux glibc

我需要调试系统库中的一些调用,以了解调用的不同之处,以及为什么一个或另一个会失败。

Linux发行版现在通常提供剥离的系统库和单独的调试符号文件。例如,/ lib / libc-2.8.so被剥离符号,留下名为.gnu_debuglink的部分,其中包含查找单独调试文件的信息。单独的调试文件可通过调试包安装,并包含gdb所需的符号信息。这里有很好的描述http://www.technovelty.org/code/debug-info-symbols.htmlhttp://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html

在安装调试包和源代码之后,我期待GDB找到符号和源代码,我将能够查看列表并进入调用。相反,gdb告诉我“没有为xyz知道的行号”

我已经验证了debug-file-location是正确的,并且目录设置为源目录。

甚至可以做我想做的事吗?我是以错误的方式来做这件事的吗?有更简单的方法吗?

1 个答案:

答案 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 ...