所以我试着关注this tutorial调试我的代码。我告诉 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
编译器开关。
关于c++ - 使用 gdb 调试 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8966186/