.net网站开发书免费自己建网站
文章目录
- 一、编译成debug
 - 1、-g 选项
 
- 二、gdb调试命令
 - 1、在CentOS系统下检查安装gdb
 - 2、进入gdb模式
 - 3、quit 退出gdb
 - 4、list (简写 l)显示文件内容
 - 5、b 打断点
 - 6、 r / run运行程序
 - 7、c 让程序直接运行完
 
- 三、cgdb
 - 1、info b查看打的所有断点
 - 2、d 删除断点
 - 3、n / next 逐过程
 - 4、s/step 逐语句
 
- 四、调试技巧
 - 1、watch 修改时显示
 - 2、 set var 调试时修改值
 - 3、条件断点
 - 4、condition给已存在的断点添加条件
 
一、编译成debug
Linux 下我们编译好的代码,无法直接调试!
 gcc/g++ 默认的工作模式是release模式
1、-g 选项
在编译时加上-g 选项
 
 -g后生成的.o 文件被链接后的可执行程序占用的空间会变大
查看调试信息:
 
 -g选项,让最后形成的可执行程序,添加调试信息—debug模式!
二、gdb调试命令
1、在CentOS系统下检查安装gdb
使用gdb --version命令来检查
 
 显示没有找到,就说明没有安装
使用 sudo yum install gdb 来安装
 
2、进入gdb模式
gdb + 链接好的可执行程序文件名:进入gdb模式
 
3、quit 退出gdb
quit:退出
 
4、list (简写 l)显示文件内容

 指定 行号从指定行号开始显示
 
 从第1行开始打印内容,然后直接回车把文件内容全部打印出来
5、b 打断点
b 后面跟行好在指定行打断点
 
6、 r / run运行程序

 会在断点处停下来
7、c 让程序直接运行完

三、cgdb

 cgdb跟gdb的使用方法一样,但cgdb更好观察代码,会分屏显示代码
 
 
1、info b查看打的所有断点

 断点编号 ------ 断点类型---------------------------是否使能----断点地址--------------------------------打的什么断点
2、d 删除断点
删断点只能根据断点编号来删
 
 gdb不退出断点编号依次递增
3、n / next 逐过程
4、s/step 逐语句
四、调试技巧
1、watch 修改时显示
执⾏时监视⼀个表达式(如变量)的值。如果监视的表达式在程序运⾏期间的值发⽣变化,GDB会暂停程序的执⾏,并通知使⽤者
2、 set var 调试时修改值
3、条件断点

4、condition给已存在的断点添加条件

后面跟断点编号
