Gcc -g选项..那有什么作用?

时间:2014-07-20 04:01:28

标签: c++ c gcc gdb

gcc -g选项有什么用?

我试过gcc --help但没找到答案。

这与调试目的有关。

任何帮助都会很棒。感谢。

1 个答案:

答案 0 :(得分:6)

  

"我尝试gcc --help但未找到答案。"

嗯,gcc --help只是提供了对可用选项和命令行语法的非常广泛的概述。这个options summary documentation可能是一个更好的起点。

从它所说的GCC documentation开始

  

-g
  以操作系统的本机格式(stabs,COFF,XCOFF或DWARF 2)生成调试信息。 GDB可以使用此调试信息。   在大多数使用stabs格式的系统上,-g允许使用只有GDB才能使用的额外调试信息;这些额外的信息使调试在GDB中更好地工作,但可能使其他调试器崩溃或拒绝读取程序。如果要确定是否生成额外信息,请使用-gstabs +, - gstabs,-gxcoff +, - gxcoff或-gvms(见下文)。

     

GCC允许您将-g与-O一起使用。优化代码所采用的快捷方式有时会产生令人惊讶的结果:您声明的某些变量可能根本不存在;控制流可能会短暂地移动到你没想到的地方;某些语句可能无法执行,因为它们计算的结果不变或者它们的值已经存在;一些语句可能在不同的地方执行,因为它们已被移出循环。

     

然而,事实证明可以调试优化的输出。这使得将优化器用于可能存在错误的程序是合理的。

     

当生成具有多种调试格式功能的GCC时,以下选项很有用。