gdb/cgdb
gdb调试前提:必为debug
gcc,g++默认release,要加 -g生成debug
gdb命令
l 为list简写
l [n] 从第n行查看,默认展示十行
l [函数名] 看函数代码
gdb 只输入回车会自动执行上一条命令
r 简写的run
b [n] 简写breakpoint 打断点,n是行号
b 文件名:行号/函数名
info b 查看所有断点信息
d [n] 简写delete, 删除断点,n是b编号
quit 退出gdb
n 简写next 单步执行,不步入
s 步入
dialsplay 变量名/表达式 常显示变量值
undisplay 变量编号 取消常显示
untill 行 执行到指定行
p 表达式 临时查看表达式
cgdb 可以可视化gdb,省去不能边看代码边调试的痛苦
c 即continue 运行到下个断点
finish 跑完当前函数
watch 监视
watch 变量名 会在值改变后通知
实质是打断点 watchpoint
set var 新值 调试中改变变量值
条件断点
新增条件断点:b 行数 if 判断语句
条件断点打法: condition 已有断点编号 判断式
watch 条件断点都是断点, 删除则d即可