所以我试图按照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 ++工具集)
答案 0 :(得分:2)
您需要在构建中打开其他调试信息。在gcc中,您需要-g
编译器开关。