gcc 最开始的时候是 GNU C Compiler, 如你所知,就是一个c编译器。但是后来因为这个项目里边集成了更...
-g2:默认-g的调试级别; -g3:相对-g,生成额外的信息,例如所有的宏定义; 和-O一样,如果多个级别的-g选项同时存在,最后的选项会被生效 综上,很多项目的线上版本都是使用”-O2 -g”的编译选项进行编译,以便发生问题的时候容易定位。但这有一个很大的弊端就是目标文件会比不开启调试信息的情况下大很多,所以一...
-On : “O”是大写,对程序进行优化编译,链接,n可取值为0、1、2、3;O0没有优化等级,O3优化等级最高,采用这个选项,整个源代码会在编译,链接过程中进行优化处理,这样产生的可执行文件是执行效率可以提高,但是编译,链接的速度就相应的要慢一些 -g : 产生符号调试工具(GNU的gdb)所必需的符号信息,要想对源代码...
gcc 在产生调试符号时,同样采用了分级的思路,开发人员可以通过在 -g 选项后附加数字1、2、3指定在代码中加入调试信息的多少。默认的级别是2(-g2),此时产生的调试信息包括:扩展的符号表、行号、局部或外部变量信息。 级别3(-g3)包含级别2中的所有调试信息以及源代码中定义的宏。 级别1(-g1)不包含局部变量和...
GCC在产生调试符号时,同样采用了分级的思路,开发人员可以通过在-g选项后附加数字1、2或3来指定在代码中加入调试信息 的多少。默认的级别是2(-g2),此时产生的调试信息包括扩展的符号表、行号、局部或外部变量信息。级别3(-g3)包含级别2中的所有调试信息,以及 源代码中定义的宏。级别1(-g1)不包含局部变量和与...
-g //在编译时生成原生格式的调试符号信息,可以使用 gdb 或 ddx 等调试器调试。-g 分为三个级别,默认为 -g2,其中 -g3 除包含 -g2 中的所有调试信息外,还包含源代码中定义的宏。 -ggdb //在编译时生成 gdb 专用格式的调试符号信息,信息更为丰富,但只能使用 gdb 调试,而不能使用其它调试器。级别设定...
gcc 在产生调试符号时,同样采用了分级的思路,开发人员可以通过在 -g 选项后附加数字1、2、3指定在代码中加入调试信息的多少。默认的级别是2(-g2),此时产生的调试信息包括:扩展的符号表、行号、局部或外部变量信息。 级别3(-g3)包含级别2中的所有调试信息以及源代码中定义的宏。
GCC在产生调试符号时,同样采用了分级的思路,开发人员可以通过在-g选项后附加数字1、2或3来指定在代码中加入调试信息的多少。默认的级别是2(-g2),此时产生的调试信息包括扩展的符号表、行号、局部或外部变量信息。级别3(-g3)包含级别2中的所有调试信息,以及源代码中定义的宏。级别1(-g1)不包含局部变量和与...
1. 解释 gcc 的 -g 选项是什么 -g 选项是 gcc(GNU Compiler Collection)编译器的一个调试选项。当使用这个选项编译程序时,gcc 会在生成的可执行文件或目标文件中包含调试信息。这些调试信息对于使用调试器(如 gdb)进行程序调试至关重要。 2. 阐述 -g 选项在编译过程中的作用 在编译过程中,-g 选项指示 gcc...
stabs ″gvar: G2″, 32, 0, 0, 0 #32 is N-GSYM .globl gvar .data gvar: byte 99 例中,汇编器根据'globl gvar'和'gvar: '产生一个外部符号,调试器由此外部符号获得全局变量'gvar'的地址。 (3)寄存器变量 寄存器变量的值保存在寄存器里,Stab描述寄存器变量时,TYPE为N-RSYM,VALUE为寄存器号,SYM-DE...