最近想用 GDB 调试我的 C++ 程序。但是我发现当我使用 CTRL+X+A 查看程序源代码时,它无法显示 C++ 的库代码。例如,当我想跟踪“cout”时,它不会显示类代码,只是跳过“cout”这一行,那么,我应该怎么做才能跟踪 C++ 库?我应该像安装源 eglibc 一样安装 libstdc++ 的源代码包吗?
这是示例 C++ 程序的代码:
#include <iostream>
int main(void)
{
std::cout << "Hello World!" << std::endl;
return 0;
}
遵守:
g++ test.cpp -g
更新:
好的,我已经安装了 gcc 源文件。但是当我运行 gdb 时,它会在 /build/buildd/gcc-4.8-4.8.2/ 中搜索符号……这与默认的 gcc 源文件名不匹配。并且 gdb 的默认路径与 gcc 的目录不同。例如,当 gdb 加载 'cout' 时,它会在 中搜索/build/buildd/gcc-4.8-4.8.2/build/x86_64-linux-gnu/libstdc++-v3/include
。但默认值是/build/buildd/gcc-4.8.2/libstdc++-v3/include/std
,如何解决这个问题?
GCC 源文件安装如下:
sudo apt-get install gcc-4.8-source
(当我运行时sudo apt-get source libstdc++
,它会建议这样)然后:
sudo tar -C /build/buildd -xf /usr/src/gcc-4.8/gcc-4.8.2.tar.xz
顺便说一句,似乎有一个相同的错误https://bugs.launchpad.net/ubuntu/+source/gdb/+bug/921839
答案1
您需要debugging files
使用的 stdlibc++ 软件包,以及可选的源文件。它们可通过软件包管理器或 获取apt-get
。