GDB调试
命令 | 解释 |
set print thread-events off | 运行gdb时关闭线程事件 |
(gdb) set logging on | 输入这个命令后,此后的调试信息将输出到指定文件 |
set logging enabled on/off | |
(gdb) set logging file <文件名> | 设置输出的文件名称 |
(gdb) set logging off | 输入这个命令,关闭到指定文件的输出 |
file <文件名> | 加载被调试的可执行程序文件,因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径。 |
r | Run的简写,运行被调试的程序,如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处。 |
c | Continue的简写,继续执行被调试程序,直至下一个断点或程序结束。 |
info functions | 列出函数的名字 |
b <行号> | b: Breakpoint的简写,设置断点。两可以使用“行号”“函数名称”“执行地址”等方式指定断点位置,其中在函数名称前面加“*”符号表示将断点设置在“由编译器生成的prolog代码处”。如果不了解汇编,可以不予理会此用法。 |
b <函数名称> | |
b *<函数名称> | d: Delete breakpoint的简写,删除指定编号的某个断点,或删除所有断点。断点编号从1开始递增。 |
b *<代码地址> | |
d [编号] | |
rbreak printNum* | 对所有调用printNum函数都设置断点 |
rbreak . | 对所有函数设置断点 |
rbreak test.c:. | 对test.c中的所有函数设置断点 |
rbreak test.c:^print | |
tbreak test.c:l0 | 在第10行设置临时断点 |
ignore 1 30 | 设置跳过多次的断点,其中,1是要忽略的断点号,可以通过前面的方式查找到,30是需要跳过的次数。这样设置之后,会跳过前面30次。 |
watch a | 设置一个一旦值发生变化就停止的断点. |
info breakpoints | 查看已设置的断点 |
p <变量名称> | Print的简写,显示指定变量(临时变量或全局变量)的值。 |
i | Info的简写,用于显示各类信息,详情请查阅“help i”。 |
q | Quit的简写,退出GDB调试环境。 |
help [命令名称] | GDB帮助命令,提供对GDB名种命令的解释说明,如果指定了“命令名称”参数,则显示该命令的详细说明;如果没有指定参数,则分类显示所有GDB命令,供用户进一步浏览和查询 |