看代码:
l(list) gdb会记录最近的历史命令 直接回车会执行上一个命令 l+行号 从第n行开始显示代码 l+函数名 从该函数开始显示代码
打断点:
1.b+数字 表示在第n行打断点
2.b+文件名+数字 在多文件操作时,在x文件的第n行打断点
3.b+函数名 在x函数的入口处打断点 如:b Func
查看断点:
info+b 可以显示已设置的断点,断点编号是依次累加的,即使删除点之后再添加断点,断点编号也会继续累加
删除断点:
d+断点编号 不是b+行号 通过info b命令查看断点
开始调试
:r(run) 相当于vs中的F5
禁止/开启断点:
disable -- 禁止断点 enable -- 开启断点 断点在设置时默认为开启,可通过info b查看断点状态
逐过程调试:
n 相当于vs中的F10 遇到函数直接执行完
逐语句调试:
s 相当于vs中的F11 一条语句一条语句执行
显示变量:
1.p+变量名
2.长显示 -- display+变量名 相当于vs中的监视窗口
取消显示变量:
undisplay+显示变量的编号 在长显示的变量左侧有正在显示的变量的编号,在取消显示变量时要通过编号取消,不能通过变量名取消
跳转到某一行:
until+行号 在调试时可直接跳转到第n行
执行完一个函数:
finish 会直接执行完所在的函数,并显示该函数的返回值
从一个断点跳转到下一个断点:
c(continue) 会继续执行程序直到遇到下一个断点
显示局部变量:
info+locals 可以显示该函数内的局部变量的值
查看调用堆栈:
bt 可以按栈的形式查看调用的堆栈
调试时改变变量数值:
set var 变量名=n 将变量x的值改为n