【问题标题】:What’s the difference between 'gcc -g' and 'gcc -g3'?“gcc -g”和“gcc -g3”有什么区别?
【发布时间】:2017-07-16 08:20:46
【问题描述】:

有时我看到用“gcc -g3”编译的开源代码——在“g”后面加一个数字是什么意思? “g3”与“g”相比有什么先进性?

【问题讨论】:

  • 你试过阅读 gcc 的文档吗?
  • man gcc 是你的朋友。表现出一点努力。

标签: c++ linux debugging option


【解决方案1】:

来自关于-g的手册:

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

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

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

【讨论】:

    【解决方案2】:

    根据documentation

    -glevel
    

    请求调试信息并使用 level 来指定信息量。默认级别为 2。

    第 3 级意味着:

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

    【讨论】:

    猜你喜欢
    • 2012-05-15
    • 2010-10-14
    • 2011-08-16
    • 2010-09-15
    相关资源
    最近更新 更多