cgdb的基础使用教程
下载方法
ubuntu的下载方式
sudo apt-get install -y cgdb
centos的下载方式
sudo yum install -y cgdb
编译选项
程序的发布方式有两种,默认是 debug 模式和 release 模式, Linux gcc/g++ 出来的二进制程 默认的就是release 模式。
但是release模式并不能用来调试,需要编译成debug模式来调试
下面的代码是通过gcc编译成debug版本可执行文件的代码,只需要比平时加上-g选项
gcc -g -o 源文件 可执行文件
常见的使用方法
开始调试
cgdb 目标文件
退出:输入quit
1.断点:b 行号
在第16行的位置打断点
断点也可以通过输入函数名来打断点
此时断点会出现在main函数的第一行代码处
2.运行:r
3.下一步(不进入函数内部):n
4.下一步(进入函数内部):s
5.查看断点信息:info b
6.执行到当前函数返回:finish
7.打印表达式的值:p 表达式
8.打印变量值:p 变量
9.从当前位置开始连续执行代码:c
10.删除所有断点:d
11.删除断点编号:d 断点编号 。只有打断点的时候需要行号,其他时候一律使用断点编号
12.对某个断点进行开启或关闭:dispaly 断点编号
对一号断点进行关闭
使用info时出现的数据分别是 num:编号 type断点类型 disp断点的显示策略 enb断点是否开启
address断点地址 what断点设置的行号
13.变量数据常显示:display 变量名,之后变量数据就会一直出现在屏幕上
14.关闭变量数据常显示:undisplay display 变量编号
15.执行到指定行号:until 行号
16.判断变量值发生改变:watch 变量
当发生变化的时候会暂停运行并显示新值与旧值
17.条件断点:b 行号 if 条件
这样断点会在i==10的时候停止运行
18.给已经存在的断点加上条件: condition 断点编号 条件