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.option | description |
---|---|
-g0 | no debug information |
-g1 | minimal debug information |
-g | default debug information |
-g3 | maximal 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)不包含局部变量和与行号有关的调试信息,因此只能够用于回溯
跟踪和堆栈转储之用。回溯跟踪指的是监视程序在运行过程中的函数调用历
史,堆栈转储则是一种以原始的十六进制格式保存程序执行环境的方法,两者
都是经常用到的调试手段。
相关文章推荐
- TextView 滚动显示
- 最小生成树,普里姆算法(Python实现)
- SpringMVC+spring-security+sitemesh+hibernate+freemarker整合-转
- Spring中Bean初始化的三种方法
- 【C++基础01】用面向过程和面向对象方法求解圆形面积
- 点赞动画的效果
- Leetcode: Implement Trie (Prefix Tree)
- git学习——上传项目代码到github
- 【ffmpeg】常用结构体集合
- DbnBase64加密处理
- calendar 类 用法
- iPhone6s比iPhone6多了一个mic,一共有4个mic
- Hadoop简介
- 利用awk处理学生分数排名问题案例
- effectIve c++ 学习笔记
- Spring集成Quartz定时任务框架介绍
- 利用Eclipse打JAR和第三方库
- 《周鸿祎:我的互联网方法论》
- 一条代码!关闭或开启系统自带虚拟按键
- MySQL Proxy 实现 MySQL 读写分离提高并发负载