单步执行gdb中的stl代码

时间:2014-12-22 00:58:06

标签: gdb

我正在开发一个相对较老的Centos系统,我可以安装的软件包受限制。我需要一个更新版本的gdb,所以我在家里的dir中成功构建了它。这个gdb很好地完成了我的代码,但我正在寻找在C ++分配器(mt_allocator.cc)中出现的麻烦,而这个新版本的gdb无法单步执行该代码。我可以在那里成功破解一个功能:

 break '__gnu_cxx::__pool<true>::_M_initialize()'

但是当该断点命中并且我尝试单步执行代码时,gdb告诉我:

Single stepping until exit from function _ZN9__gnu_cxx6__poolILb1EE13_M_initializeEv,
which has no line number information.

我尝试在gdb中使用dir命令添加mt_allocator.cc所在的路径,但这没有效果。

我需要告诉gdb以便找到这些文件吗?

1 个答案:

答案 0 :(得分:1)

啊,发现了。 Centos包管理器将STL代码的调试文件放在/ usr / lib / debug中。所以:

set debug-file-directory /usr/lib/debug

在gdb中完成它。