[英]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.