繁体   English   中英

对于 gcc 和 clang,-g 是否与 -g2 相同?

[英]Is -g the same as -g2 for gcc and clang?

GCC 调试选项文档并不全面。 因此,尝试使用不同的选项-g-g1-g2-g3编译二进制文件,我得到了以下结果。

使用-g-g2编译时,二进制文件大小相同,均为13KB

使用-g1编译时,二进制文件的大小为9.3KB

使用-g3编译时,二进制文件大小为73KB

那么-g是否等同于-g2 但是文档中甚至没有解释级别 2。 这是文档所说的(没有 2 级):

0 级根本不产生调试信息。 因此,-g0 否定 -g。

级别 1 产生的信息最少,足以在您不打算调试的程序部分中进行回溯。 这包括函数和外部变量的描述,以及行号表,但没有关于局部变量的信息。

第 3 级包括额外信息,例如程序中存在的所有宏定义。 当您使用 -g3 时,某些调试器支持宏扩展。

还是我错过了什么?

那么-g是否等同于-g2

是的。

但是文档中甚至没有解释级别 2。 [...] 还是我错过了什么?

你错过了一些东西。 您忽略了引用之前的句子:

默认级别为 2。

这意味着-g2的含义与-g相同。 (并且-ggdb2-ggdb的含义相同。)这部分地作为每个-g*2选项对相应未编号-g*选项的文档的参考,您可以在其中找到相关文档. 特别是, -g2的文档是-g的文档,它首先出现在本节中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM