GCC '-g' 选项有什么作用?

What does the GCC '-g' option do?

本文关键字:作用 什么 GCC 选项      更新时间:2023-10-16

GCC -g选项的用途是什么?

我试了gcc --help,但是没有找到答案。

"我试了gcc --help,但没有找到答案"

好吧,gcc --help只是提供了一个非常广泛的可用选项和命令行语法的概述。选项摘要文档可能是一个更好的起点。

GCC文档它说

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

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

然而,它证明了调试优化输出是可能的。这使得对可能存在错误的程序使用优化器是合理的。

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