先给出一个常用命令的列表后面会结合具体的例子详细介绍每个命令的用法。命令名称命令缩写命令说明runr运行一个程序continuec让暂停的程序继续运行nextn运行到下一行steps如果有调用函数进入调用的函数内部相当于 step intountilu运行到指定行停下来finishfi结束当前调用函数到上一层函数调用处returnreturn结束当前调用函数并返回指定值到上一层函数调用处jumpj将当前程序执行流跳转到指定行或地址printp打印变量或寄存器值backtracebt查看当前线程的调用堆栈framef切换到当前调用线程的指定堆栈具体堆栈通过堆栈序号指定threadthread切换到指定线程breakb添加断点tbreaktb添加临时断点deletedel删除断点enableenable启用某个断点disabledisable禁用某个断点watchwatch监视某一个变量或内存地址的值是否发生变化listl显示源码infoinfo查看断点 / 线程等信息ptypeptype查看变量类型disassembledis查看汇编代码set args设置程序启动命令行参数show args查看设置的命令行参数上面只列了一些常见的命令对于一些不常见的命令如 file 命令 就不列举了不建议刻意记忆这些命令因为确实有点多找几个程序代码实际练习一下很快就能记住至于要不要采用大家还是根据自己的学习习惯来。当 GDB 输入命令时对于一个命令可以缩写成什么样子只需要遵循如下两个规则即可。一个命令缩写时不能出现多个选择否则 GDB 就不知道对应哪个命令了。举个例子输入 th那么 th 对应的命令有 thread 和 thbreak上表没有列出这样 GDB 就不知道使用哪个了需要更具体的输入GDB 才能识别。(gdb) th Ambiguous command th: thbreak, thread.GDB 有些命令虽然也对应多个选择但是有些命令的简写是有规定的例如r 就是命令“run”的简写虽然输入“r”时你的本意可能是“return”命令。总之如果记不清楚可以直接使用命令全称每个命令都是很常见的英文单词通俗易懂不难记忆。后面的课程将逐一介绍上面每个命令的使用方法注意这里不是照本宣科地列出来而是介绍一些很有用的调试细节和使用技巧如果还不熟悉 GDB 调试建议认真阅读下面的课程。之所以单独列出一是为了从总体上告诉读者 GDB 调试需要掌握哪些常见的命令后面的课程会按上面表格中给出的命令逐一来详细讲解二是给已经熟悉 GDB 部分命令的读者一个导览图可以跳至不熟悉的命令的相关部分阅读。
第03课:GDB 常用的调试命令概览
发布时间:2026/6/28 3:25:29
先给出一个常用命令的列表后面会结合具体的例子详细介绍每个命令的用法。命令名称命令缩写命令说明runr运行一个程序continuec让暂停的程序继续运行nextn运行到下一行steps如果有调用函数进入调用的函数内部相当于 step intountilu运行到指定行停下来finishfi结束当前调用函数到上一层函数调用处returnreturn结束当前调用函数并返回指定值到上一层函数调用处jumpj将当前程序执行流跳转到指定行或地址printp打印变量或寄存器值backtracebt查看当前线程的调用堆栈framef切换到当前调用线程的指定堆栈具体堆栈通过堆栈序号指定threadthread切换到指定线程breakb添加断点tbreaktb添加临时断点deletedel删除断点enableenable启用某个断点disabledisable禁用某个断点watchwatch监视某一个变量或内存地址的值是否发生变化listl显示源码infoinfo查看断点 / 线程等信息ptypeptype查看变量类型disassembledis查看汇编代码set args设置程序启动命令行参数show args查看设置的命令行参数上面只列了一些常见的命令对于一些不常见的命令如 file 命令 就不列举了不建议刻意记忆这些命令因为确实有点多找几个程序代码实际练习一下很快就能记住至于要不要采用大家还是根据自己的学习习惯来。当 GDB 输入命令时对于一个命令可以缩写成什么样子只需要遵循如下两个规则即可。一个命令缩写时不能出现多个选择否则 GDB 就不知道对应哪个命令了。举个例子输入 th那么 th 对应的命令有 thread 和 thbreak上表没有列出这样 GDB 就不知道使用哪个了需要更具体的输入GDB 才能识别。(gdb) th Ambiguous command th: thbreak, thread.GDB 有些命令虽然也对应多个选择但是有些命令的简写是有规定的例如r 就是命令“run”的简写虽然输入“r”时你的本意可能是“return”命令。总之如果记不清楚可以直接使用命令全称每个命令都是很常见的英文单词通俗易懂不难记忆。后面的课程将逐一介绍上面每个命令的使用方法注意这里不是照本宣科地列出来而是介绍一些很有用的调试细节和使用技巧如果还不熟悉 GDB 调试建议认真阅读下面的课程。之所以单独列出一是为了从总体上告诉读者 GDB 调试需要掌握哪些常见的命令后面的课程会按上面表格中给出的命令逐一来详细讲解二是给已经熟悉 GDB 部分命令的读者一个导览图可以跳至不熟悉的命令的相关部分阅读。