gcc -g选项有什么用?
我试过gcc --help但没找到答案。
这与调试目的有关。
任何帮助都会很棒。感谢。
答案 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时,以下选项很有用。