使用gdb调试C++

Using gdb to debug C++

本文关键字:C++ 调试 gdb 使用      更新时间:2023-10-16

所以我试着按照本教程调试我的代码。我告诉gdb运行一个可执行文件,它确实运行了,程序崩溃了,给出的是:

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: 13 at address: 0x0000000000000000
0x00007fff907b06e5 in std::string::_Rep::_M_dispose ()

但我看不到教程中提到的任何方便的at main.cc:28内容。

所以我继续尝试backtrace,它给了我这个:

(gdb) backtrace
#0  0x00007fff907b06e5 in std::string::_Rep::_M_dispose ()
#1  0x00007fff907b12ba in std::string::assign ()
#2  0x00000001000029e4 in Map::insert ()
#3  0x0000000100001ac5 in main ()

还是没有方便的行号?我该怎么办?

(如果重要的话,我使用的是Mac OS 10.7,并安装了带有XCode的默认C++工具集)

您需要在构建中打开额外的调试信息。在gcc中,您需要-g编译器开关。