3.5 参数值查看
l
print :打印变量或表达式的值。使用格式:
print
变量或表达式
表达式中有两个符号有特殊含义:$和$$。
$表示给定序号的前一个序号,$$表示给定序号的前两个序号。
如果$和$$后面不带数字,则给定序号为当前序号。
l
set :设置程序中变量的值。使用格式:
set 变量=表达式
set 变量:=表达式
3.6 设置观察点
l awatch
:用来增加一个观察点(add
watch),使用格式:
awatch
变量或表达式
当表达式的值发生改变或表达式的值被读取时,程序就会停止运行。
l watch
:与awatch类似用来设置观察点,但程序只有当表达式的值发生改变时才会停止运行。使用格式:
watch
变量或表达式
需要注意的是,awatch和watch都必须在程序运行的过程中设置观察点,即可运行run之后才能设置。
3.7 退出调试
l
kill :结束当前程序的调试。
l
quit :退出gdb。
3.8
其它
l forward/search
:从当前行向后查找匹配某个字符串的程序行。使用格式:
forward/search
字符串
查找到的行号将保存在$_变量中,可以用print $_命令来查看。
l reverse-search
:和forward/search相反,向前查找字符串。使用格式同上。
l commands
:设置在遇到断点后执行特定的指令。使用格式有:
commands
设置遇到最后一个遇到的断点时要执行的命令
commands
n
设置遇到断点号n时要执行的命令
注意,commands后面跟的是断点号,而不是断点所在的行号。
在输入命令后,就可以输入遇到断点后要执行的命令,每行一条命令,在输入最后一条命令后输入end就可以结束输入。
l disable
:让指定断点失效。使用格式:
disable
断点号列表
断点号之间用空格间隔开。
l enable
:和disable相反,恢复失效的断点。使用格式:
enable
断点编号列表
l ignore
:忽略断点。使用格式:
ignore
断点号忽略次数
l jump :让程序跳到指定行开始调试。使用格式:
jump 行号
l whatis
:显示某个变量或表达式的数据类型。使用格式:
whatis
变量或表达式
l ptype
:和whatis类似,用于显示数据类型,但是它还可以显示typedef定义的类型等。使用格式:
ptype
变量或表达式
l display
:增加要显示值的表达式。使用格式:
display
表达式
l info
display :显示当前所有的要显示值的表达式。
l delete
display/undisplay :删除要显示值的表达式。使用格式:
delete
display/undisplay 表达式编号
l disable
display :暂时不显示一个要表达式的值。使用格式:
disable
display 表达式编号
l enable
display :与disable
display相反,使用表达式恢复显示。使用格式:
enable
display 表达式编号
l backtrace
:打印指定个数的栈帧(stack
frame)。使用格式:
backtrace
栈帧个数
l frame.
:打印栈帧。使用格式:
frame.
栈帧号
l info
frame. :显示当前栈帧的详细信息。
l select-frame.
:选择栈帧,选择后可以用info
frame来显示栈帧信息。使用格式:
select-frame.
栈帧号