您的位置:首页 > 其它

gcc 编译选项

2015-12-16 13:46 309 查看

http://blog.chinaunix.net/uid-13539494-id-1991081.html

http://www.rapidtables.com/code/linux/gcc/gcc-g.htm


gcc -g option flag

gcc -g generates debug information to be used by GDB debugger.

optiondescription
-g0no debug information
-g1minimal debug information
-gdefault debug information
-g3maximal debug information


Syntax

$ gcc -glevel [options] [source files] [object files] [-o output file]


Example

Write source file myfile.c:

// myfile.c

#include <stdio.h>

void main()

{

printf("Program run!!\n");

}

Build myfile.c on terminal and run gdb to debug:

$ gcc -g myfile.c -o myfile

$ gdb myfile

(gdb) run

Starting program: /home/ubuntu/myfile

Program run!!

Program exited with code 012.

(gdb) quit

$

gcc 的 -g 和 -ggdb 选项

-g 和 -ggdb 都是令 gcc 生成调试信息,但是它们也是有区别的

-g

该选项可以利用操作系统的“原生格式(native format)”生成调试

信息。GDB 可以直接利用这个信息,其它调试器也可以使用这个调试信息

-ggdb

使 GCC 为 GDB 生成专用的更为丰富的调试信息,但是,此时就不能用其

他的调试器来进行调试了 (如 ddx)

-g 和 -ggdb 也是分级别的

-g2

这是默认的级别,此时产生的调试信息包括扩展的符号表、行号、局部

或外部变量信息。

-g3

包含级别2中的所有调试信息,以及源代码中定义的宏

-g1

级别1(-g1)不包含局部变量和与行号有关的调试信息,因此只能够用于回溯

跟踪和堆栈转储之用。回溯跟踪指的是监视程序在运行过程中的函数调用历

史,堆栈转储则是一种以原始的十六进制格式保存程序执行环境的方法,两者

都是经常用到的调试手段。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: