当用gcc或Clang编译C源代码时,我总是使用-g
标志为gdb生成调试信息.
gcc -g -o helloworld helloworld.c
我注意到有些人推荐-g3
.-g
和-g3
面旗帜之间有什么区别?-g
和-ggdb
之间也有区别吗?
当用gcc或Clang编译C源代码时,我总是使用-g
标志为gdb生成调试信息.
gcc -g -o helloworld helloworld.c
我注意到有些人推荐-g3
.-g
和-g3
面旗帜之间有什么区别?-g
和-ggdb
之间也有区别吗?
从docs人中:
-g
以操作系统的本机格式(stabs、COFF、XCOFF或DWARF 2)生成调试信息.GDB可以解决这个问题
...
-ggdb
生成调试信息供GDB使用.这意味着使用可用的最具表现力的格式(矮人2,刺,或本机)
-gvmslevel
请求调试信息,并使用级别指定信息量.默认级别为2.0级不产生任何错误
……
级别3包括额外信息,如所有宏定义 出现在节目中.某些调试器在以下情况下支持宏扩展 您可以使用-g3.