gdb
backtrace(简写为bt
命令查看函数调用的栈帧:
nfo(简写为i)
查看函数中局部变量的值: i locals
查看函数当前局部变量的值用frame(简写为f)
选择1号栈帧然 frame 1
可以利用finish
命令让程序一直运行到从当前函数返回为止
continue(简写为c)
命令运行到程序结束
set var 变量=XX
命令进行变量赋值,运行调试程序,验证思路正确性
display sum/input
命令时刻观察值的变化
undisplay 编号
进行取消跟踪显示
delete breakpoints 断点编号(info 出来的编号)
进行断点删除
enbale 断点编号
启用断点
break 15 if sum!=0
仅当sum!=0的时候在15行设置断点
watch
命令设置观察点
还有一种经常发生的段错误,算是一条规律,如果某个函数的局部变量发生访问越界
,有可能并不立即产生段错误,而是在函数返回时产生段错误
。
gdb -tuia.out 将屏幕分成两个部分,上面显示源代码
watch n
在某一循环处,往往希望能够观察一个变量的变化情况,这时就可以键入命令"watch"来观察变量的变化情况
c 使程序继续往下运行,直到再次遇到断点或程序结束;