c++ - 使用 gdb 调试 C++

标签 c++ xcode debugging gdb

所以我试着关注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/

相关文章:

c++ - 使用 Geant4/GATE MonteCarlo 模拟校准较小源的输出(输出因子)

ios - 标签文本是 'nil' ,尽管分配了一些文本

c - 如何调试嵌入式进程?

visual-studio - Visual Studio 2010 调试器中的单步执行问题?

c++ - 简单的文档切换器功能?

c++ - Visual C++ - 匿名方法

c++ - 在 C++ 中调用单例对象的正确方法

ios - Xcode Storyboard 严重问题变为空白?

ios - 从项目中删除 Pod - xcode

javascript - 为什么这段 JavaScript 代码会阻止我的浏览器加载?