编译的时候加-g选项
gdb 可执行程序
list/l:list 1 列出源码,继续list或者回车向下查看程序
break/b:b 20 在20行位置设置断点
delete/d:d 断点号 删除断点,注意不是行号
run/r:运行程序
next/n:下一条指令(会越过函数)
step/s:单步调试(会进入函数)
print/p:p i 查看变量的值,注意变量作用域
continue/c:继续执行断点后续指令
quit/q:退出gdb调试
其他指令:
使用run查找段错误出现位置,会停留在段错误地方
start:启动调试
finish:结束当前函数, 返回到函数调用点
set args:设置main函数命令行参数,例如set args aa bb cc ,在start之前
run 参数1 参数2 ...:设置命令行参数
info/i b:查看断点信息
设置条件断点:b 100 if i=5,for(int i=0;i<10;i++);//第100行代码
ptype 变量:查看变量类型,注意变量的作用域
backtrace/bt:列出当前程序正存活的栈帧
frame/f 编号:切换函数的栈帧
display 变量:跟踪变量
undisplay 编号:取消设置跟踪变量,使用变量的编号,而不是变量名
常见错误:
1.编译的时候没有加-g选项,导致使用gdb调试时报错。