一起talk GCC吧(第六回:GCC调试)
来源:互联网 发布:pop smtp 端口 编辑:程序博客网 时间:2024/05/21 22:36
各位看官们,大家好,上一回咱们说的是GCC优化相关的内容。这一回咱们说说如何使用GCC进行调试,
闲话休提,言归正转。让我们一起talk GCC吧!
看官们,大家都知道,人们写代码时,偶尔也会出错。有的时候造成了编译错误,有的时候造成了逻辑错
误。当然了,有经验的程序员不会造成编译错误这种低级错误,但是逻辑错误,或多或少总会有。程序出
错了,怎么办?肯定是修改错误了,哈哈,这还用说吗。错误都是在人不知道的情况下造成的,所以要想
修改错误,特别是逻辑错误,还是有些困难的。不过看官们不要着急。GCC会提供调试功能,方便大家找
出程序中的错误。GCC的调试功能需要和GDB配合起来才能使用。关于GDB的内容,我们以后会说,大家现
在只要明白,GCC会帮助大家找到程序中的错误。
GCC的调试功能,主要是在编译期间把调试信息写入到编译生成的目标文件中,然后GDB会使用这样调试信
息进行调试。GCC的调试功能也是通过选项实现的,选项g的用法和选项O的用法完全一样。如果大家还记
得咱们在上一回中说过的选项O。那么理解选项g的用法就相当容易了。不论如何,咱们先举个例子:
gcc -gn file.c -o f.o
例子中的n是从1到3之间的数字,数字越大增加的调试信息越多,如果不加数字,n的默认值为2.,也就是说
使用g2进行调试。因为GCC需要在目标文件中写入调试信息,所以会增加目标文件的大小。这也算是调试功
能的一个负面影响吧。鉴于这个原因,默认情况下,GCC不会在编译生成的目标文件中添加调试信息。在我
们使用GCC编译程序的时候,通常来说g2就够用了,这样既可以在目标程序中增加调试信息,又不会过多地
增加目标程序的大小。
看官们,关于GCC的内容,今天咱们就说这些。欲知后事如何,且听下回分解!
- 一起talk GCC吧(第六回:GCC调试)
- 一起talk GCC吧(第三回:GCC编译)
- 一起talk GCC吧(第四回:GCC警告)
- 一起talk GCC吧(第五回:GCC优化)
- 一起talk GCC吧(第一回:GCC介绍)
- 一起talk GCC吧(第二回:GCC使用)
- 一起Talk Android吧(第六回:Java中的函数)
- 一起talk GDB吧(第三回:GDB断点调试)
- 一起talk Vim吧(第六回:Vim刀法之乾坤大挪移)
- 一起talk C栗子吧(第六回:C语言实例--生成随机数)
- 一起talk GDB吧(第六回:GDB修改程序运行环境)
- 一起talk C栗子吧(第六十三回:C语言实例--字符串查找)
- 一起talk C栗子吧(第六十四回:C语言实例--DIY字符串复制函数)
- 一起talk C栗子吧(第六十五回:C语言实例--DIY字符串连接函数)
- 一起talk C栗子吧(第六十六回:C语言实例--DIY字符串比较函数)
- 一起talk C栗子吧(第六十七回:C语言实例--DIY字符串长度函数)
- 一起talk C栗子吧(第六十九回:C语言实例--DIY字符串查找函数)
- 一起talk GDB吧(第四回:GDB调用栈调试)
- [MOS学习笔记] 完成系统调用read的11个步骤
- Linux rm 命令
- 注释转换(c转换为c++)
- Redis各种数据结构(类型)的简要区别
- java.io.NotSerializableException错误解决方法
- 一起talk GCC吧(第六回:GCC调试)
- Jquery的个人学习笔记
- android中控件ToggleButton开关控件
- Android中一个Activity两个ListView的显示错误问题
- 将数据导出到Excel(java操作Excel)
- 程序员的学习方法【思考】
- TCL脚本语言学习
- assert()函数用法总结
- LeetCode Subsets II