[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S4UOO0Bq-1584605489346)(/assets/images/GDB-archer.jpg)]
GDB 是GUN项目里的调试器软件,支持Ada, C, C++, Objective-C, Pascal等语言。
命令 | 示例 | 解释 |
---|---|---|
help <GDB命令名> | (gdb) help set | GDB帮助命令,若未指定参数,刚分类列表所有GDB命令 |
file <文件名> | (gdb) file hello | 加载被调试的程序文件。编译时一般通过加*-g*参数将源代码信息编译到需调试的程序中,以方便GDB调试, 如`gcc hello.c -o hello -g` |
set args <参数设置> | (gdb) set args <infile.txt | 设置被调试程序的执行参数,如`set args <infile.txt`重定向infile.txt为标准输入文件。 |
set var <变量值设置> | (gdb) set var i=10 | 设置变量值 |
b <行号> b <函数名> | (gdb) b 29 (gdb) b my_func | b是breakpoint的简写,表示设置断点,可以是某一行或函数的第一行。 |
d [编号] | (gdb) d 1 | 删除编号指定的断点,不指定编号则删除所有断点,d(elete breakpoint) |
s | (gdb) s | 执行下一行代码,如果是函数调用,则进入该函数,相当于s(tep Into) |
n | (gdb) n | 执行下一行代码,如果是函数调用,不进入该函数,相当于Step Over, n(next) |
p <变量名> p[/输出格式] <变量名> | (gdb) p i (gdb) p/c i | `p i`将变量i以十进制数字输出 `p/c i`将变量i以字符格式输出。 支持的格式有x(十六进制),d(十进制),u(十六进制无符号整型) o(八进制),t (二进制),c(字符),f(浮点数) |
q | (gdb) q | 退出GDB调试 |