文章目录
- 一、编译成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给已存在的断点添加条件
后面跟断点编号