---------------------------------------------------------------------
命令 简写 功能
---------------------------------------------------------------------
awatch 用来增加一个观察点(add watch),使用格式:awatch 变量或表达式
当表达式的值发生改变或表达式的值被读取时,程序就会停止运行
backtrace bt 查看函数调用栈的所有信息。
backtrace 显示程序中的当前位置和表示如何到达当前位置的栈跟踪(同义词:where)
break b 在代码里设置断点, 这将使程序执行到这里时被挂起.
b fun_name
b line_num
break line-or-function if condition
break routine-name 在指定例程的入口处设置断点
delete breakpoint num (d b n) --删除断点
delete breakpoint(d b) --删除所有断点
tbreak --设置临时断点
call name 调用和执行一个函数
catch 设置捕捉点.
cd 改变当前工作目录
clean n 清除n行上的所有断点
clear 删除刚才停止处的断点
commands :设置在遇到断点后执行特定的指令。使用格式有:
commands
设置遇到最后一个遇到的断点时要执行的命令
commands n
设置遇到断点号n时要执行的命令
注意,commands后面跟的是断点号,而不是断点所在的行号。
在输入命令后,就可以输入遇到断点后要执行的命令,每行一条命令,在输入最后一条命令后输入end就可以结束输入。
continue c 继续执行程序,直至下一中断或者程序结束。
condition :设置断点在一定条件下才能生效。
使用格式:condition 断点号 条件表达式
delete 删除一个断点或监测点;也可与其他命令一起使用
display 程序停止时显示变量和表达时 --undisplay
down 下移栈帧,使得另一个函数成为当前函数
examine x 打印内存内容。
file 装入想要调试的可执行文件.
finish 结束执行当前函数,显示其返回值(如果有的话)
forward/search :从当前行向后查找匹配某个字符串的程序行
使用格式:forward/search 字符串
frame 选择下一条continue命令的帧
打印栈帧,使用格式:frame 栈帧号
info 显示与该程序有关的各种信息 --info breakpoint(i b)
ignore :忽略断点
ignore 断点号 忽略次数
jump 让程序跳到指定行开始调试
kill k 终止正在调试的程序.
list l 列出产生执行文件的源代码的一部分.
list function:输出函数function前后的10行程序代码
make 使你能不退出 gdb 就可以重新产生可执行文件.
next n 执行一行源代码但不进入函数内部.
next n 执行n条语句
print 显示变量或表达式的值
p fun(...) --打印函数运行结果
p *arr@n --查看数组arr的前n个元素
/x 按十六进制格式显示变量。 --p /x i
/d 按十进制格式显示变量。
/u 按十六进制格式显示无符号整型。
/o 按八进制格式显示变量。
/t 按二进制格式显示变量。
/a 按十六进制格式显示变量。
/c 按字符格式显示变量。
/f 按浮点数格式显示变量。
ptype 比whatis的功能更强,他可以提供一个结构的定义
pwd 显示当前工作目录
pype 显示一个数据结构(如一个结构或C++类)的内容
quit q 终止 gdb.
reverse-search 在源文件中反向搜索正规表达式
run r 执行当前被调试的程序.
r args --后面跟命令行参数
ser args args --设置命令行参数
show args --查看命令行参数
search 在源文件中搜索正规表达式
set variable 给变量赋值 #set i=100
shell 使你能不离开 gdb 就执行 UNIX shell 命令. #shell make
signal 将一个信号发送到正在运行的进程
step s 执行一行源代码而且进入函数内部.
thread t 查看当前运行程序的线程信息.
undisplay display命令的反命令,不要显示表达式
until 结束当前循环
up 上移栈帧,使另一函数成为当前函数
watch 与awatch类似用来设置观察点,但程序只有当表达式的值发生改变时才会停止运行