使用gdb调试C++
Using gdb to debug C++
所以我试着按照本教程调试我的代码。我告诉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
编译器开关。
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 在linux上调试巨大的C++项目
- 为什么使用__LINE_的代码在发布模式下在MSVC下编译,而不是在调试模式下
- 如何针对特定情况调试和修复此双自由内存损坏问题
- 正在VS调试器中监视映射条目
- 使用调试/崩溃报告将应用程序部署到客户端
- VC++本机单元测试,找不到调试符号
- 如何在C++生成器中禁用"使用调试.dcus"
- 使用vscode调试时,GDB意外退出
- 即使使用调试编译标志,表达式也是"optimized out"
- 调试 CUDA MMU 故障
- 小字符串优化(调试与发布模式)
- 调试和自由执行中的信号处理
- 调试编译的服务器在数据库打开时崩溃
- Visual Studio 调试优化如何工作?
- 如何配置Visual Studio Code以使用cygwin,cmake和gcc进行调试
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- 如何在大型c++项目的可视化代码中设置调试
- Qt 调试显示行号
- 如何将可变参数模板转换为多个单个模板?(C++竞争编程调试模板)