'gcc -g'和'gcc -g3'有什么区别?

时间:2017-02-25 13:24:20

标签: c++ linux debugging option

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

2 个答案:

答案 0 :(得分:4)

根据documentation

-glevel
  

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

等级3表示:

  

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

答案 1 :(得分:3)

关于-g

的手册

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

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

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