一、gdb/cgdb的认识
我们在VS上调试时都是使用Debug版本的,但是在Linux下gcc/g++默认生成的是Relaese版本,我们想要进行调试就要用-g选项生成Debug版本的程序。但是Linux下的gdb是一种命令行调试工具,因此就有了cgdb为我们提供可视化的调试界面。
二、gdb的基本命令
- 进入gdb/cgdb: gdb/cgdb 文件名
- 退出gdb/cgdb: quit
- l: 显示代码
- l 行号: 显示从给定行开始的10行内容
- l 函数名: 显示给定函数的10行内容
- l 文件: 行号 显示给定文件对应行号开始的10行内容
- r: 运行代码 相当于VS中的F5
- b 行号: 给定行号处打断点
- d 断点编号: 删除断点编号对应的断点
- info b: 显示断点信息
- disable: 关闭断点
- enable: 开启断点
- n: 单步执行(逐过程)相当于VS中的F10
- s: 单步执行(逐语句)相当于VS中的F11
- bt: 查看堆栈调用
- dispaly 变量名: 常显示变量的值
- undisplay 变量名: 去掉变量的常显示
- p 变量: 打印变量的值
- until 行号: 跳转到指定行
- c: 跳转到下一处断点
- finish: 结束某一函数,并显示返回值
- watch 变量名: 监视某一变量,变得时候会有显示
- set var 表达式: 修改变量值,方便我们的验证
- 条件断点:
- b 行号 if 执行的条件: 创建新的条件断点
- condition 断电编号 条件: 将已经存在的断点变成条件断点