g ++,如何找到错误的位置?

时间:2012-10-05 19:02:36

标签: c++ compiler-errors g++ segmentation-fault

专家! 我写了一个c ++源代码。 但我觉得某个地方有错误。

“分段错误:11”

但我不知道有关错误的细节以及在哪里修复?

你们知道一些命令可以显示错误的位置。

由于

3 个答案:

答案 0 :(得分:4)

使用gcc生成的代码,您通常会使用基于gdb的工具或gdb本身。跑吧

gdb <program>

...然后在gdb内:

run <arguments>

......它将停止发生崩溃的地方。

使用-g选项获取有关要使用调试信息编译的程序位置的合理信息。为避免混淆,您可能希望在没有优化的情况下进行编译,即没有任何-O...选项。但是,只有在启用优化时才会触发某些错误(注意:代码中的错误通常仍然存在错误,优化程序中)。

答案 1 :(得分:1)

使用GNU调试器(GDB)。添加断点并运行代码。在这里你可以找到东西。 http://www.unknownroad.com/rtfm/gdbtut/gdbtoc.html

答案 2 :(得分:0)

听起来您的程序正在尝试访问无效(不存在)的地址。它也可能试图访问未对齐的数据。我在尝试访问未对齐的结构之前就已经看过了。

阅读细分错误:http://en.wikipedia.org/wiki/Segmentation_fault