-g 和 -ggdb 都是令 gcc 生成调试信息,但是它们也是有区别的
-g
该选项可以利用操作系统的“原生格式(native format)”生成调试
信息。GDB 可以直接利用这个信息,其它调试器也可以使用这个调试信息
-ggdb
使 GCC 为 GDB 生成专用的更为丰富的调试信息,但是,此时就不能用其
他的调试器来进行调试了 (如 ddx)
-g 和 -ggdb 也是分级别的
-g2
这是默认的级别,此时产生的调试信息包括扩展的符号表、行号、局部
或外部变量信息。
-g3
包含级别2中的所有调试信息,以及源代码中定义的宏
-g1
级别1(-g1)不包含局部变量和与行号有关的调试信息,因此只能够用于回溯
跟踪和堆栈转储之用。回溯跟踪指的是监视程序在运行过程中的函数调用历
史,堆栈转储则是一种以原始的十六进制格式保存程序执行环境的方法,两者
都是经常用到的调试手段。
gcc 的 -g 和 -ggdb 选项
最新推荐文章于 2025-08-12 17:29:04 发布
本文详细解释了gcc编译器中的-g和-ggdb选项的区别及其不同级别的使用。-g选项采用操作系统的原生格式生成调试信息,适用于多种调试器;而-ggdb则专门针对GDB生成更丰富的信息,但限制了其他调试器的使用。文章还介绍了这三个选项的不同级别:-g1、-g2、-g3,分别对应不同的调试信息丰富度。
7862

被折叠的 条评论
为什么被折叠?



