Linux环境下GDB调试C/C++代码常用命令详解

需积分: 4 1 下载量 36 浏览量 更新于2024-09-13 收藏 4KB TXT 举报
"这篇文章主要介绍了在Linux环境下使用GDB(GNU Debugger)进行C/C++程序调试的一些常用命令。GDB是一个强大的源代码级调试器,它可以帮助开发者在程序运行时检查变量状态、设置断点、单步执行代码等,从而找出并修复程序中的错误。以下是一些关键的GDB命令及其功能解释:" 1. **启动GDB**: - `gdb [program]`:使用GDB并指定要调试的程序。 2. **列出源代码**: - `(gdb) list`:列出当前文件的源代码,默认显示10行。 - `(gdb) list [line_number]`:列出指定行号附近的代码。 - `(gdb) list +[count]`:在当前行之后列出count行代码。 - `(gdb) list -[count]`:在当前行之前列出count行代码。 - `(gdb) list function_name`:列出函数function_name的定义。 3. **设置断点**: - `(gdb) break line_number`:在指定行号设置断点。 - `(gdb) break function_name`:在函数function_name的入口处设置断点。 - `(gdb) info breakpoints`:查看所有断点的信息。 - `(gdb) delete breakpoints [number]`:删除指定编号的断点。 - `(gdb) disable breakpoints [number]`:禁用指定编号的断点。 - `(gdb) enable breakpoints [number]`:启用指定编号的断点。 4. **运行与控制程序**: - `(gdb) run`:开始执行程序,直到遇到断点或程序结束。 - `(gdb) next`(n):执行下一行代码,如果当前行是函数调用,则会进入该函数内部。 - `(gdb) step`(s):同`next`,但当当前行是函数调用时,会单步执行函数内部的第一条语句。 - `(gdb) continue`(c):继续执行程序,直到遇到下一个断点或程序结束。 - `(gdb) until`:执行到下一次循环迭代结束或者当前函数返回。 5. **检查变量和内存**: - `(gdb) print expression`(p):打印表达式的值。 - `(gdb) watch expression`:设置监视点,当表达式的值改变时暂停程序。 - `(gdb) display expression`:在每条命令执行后显示表达式的值。 6. **堆栈与回溯**: - `(gdb) backtrace`(bt):显示调用堆栈,即函数调用的层次结构。 - `(gdb) finish`:执行到当前函数结束,然后返回到调用者。 7. **环境和程序状态**: - `(gdb) set args arguments`:设置程序运行时的命令行参数。 - `(gdb) show args`:查看当前设置的命令行参数。 - `(gdb) show paths`:显示查找程序和库的路径。 - `(gdb) set environment variable[=value]`:设置环境变量。 - `(gdb) show environment [variable]`:查看环境变量。 8. **其他操作**: - `(gdb) shell command`:在GDB内部执行shell命令。 - `(gdb) cd directory`:改变GDB的当前工作目录。 - `(gdb) pwd`:显示GDB的当前工作目录。 了解并熟练使用这些GDB命令,能有效提升在Linux环境下调试C/C++程序的效率,有助于快速定位和解决问题。