- list
- 查看当前位置周围的源代码行:在 GDB 命令行中输入 list 或 list <行号>,它将显示当前执行位置周围的源代码行。如果不指定行号,则默认显示当前行的前后若干行代码。
- 查看指定函数的源代码:使用 list <函数名> 命令来显示指定函数的源代码。例如,list main 将显示 main 函数的源代码。
- 指定行范围查看源代码:通过 list <起始行号>,<结束行号> 可以指定起始行和结束行来查看源代码的特定范围。例如,list 10,20 将显示从第 10 行到第 20 行的源代码。
- 向前/向后查看源代码:在 list 命令后面加上 +<行数> 或 -<行数> 可以向前或向后查看更多的源代码行。例如,list +10 将显示当前行后的 10 行源代码。
- break
- 在指定函数处设置断点:使用 b <函数名> 命令在指定函数的入口处设置断点。例如,b main 在 main 函数的入口处设置断点。
- 在指定文件和行号处设置断点:使用 b <文件名>:<行号> 命令在指定文件和行号处设置断点。例如,b myfile.c:10 在 myfile.c 文件的第 10 行设置断点。
- 在当前位置设置断点:在 GDB 中,你可以直接输入 b 命令,不带任何参数,它将在当前执行位置设置断点。
- 条件断点:你可以在设置断点时指定一个条件,只有满足条件时才会触发断点。例如,b myfile.c:10 if x > 5 表示只有当变量 x 大于 5 时,才会在 myfile.c 文件的第 10 行触发断点。
- 临时断点:使用 tbreak 命令可以设置临时断点,它会在断点被触发后自动被删除。例如,tbreak myfile.c:10 设置一个在 myfile.c 文件的第 10 行触发的临时断点。
- 删除断点:使用 delete 命令可以删除一个或多个断点。可以指定断点编号或全部删除。例如,delete 1 删除断点编号为 1 的断点,delete 删除所有断点。
- info
- 查看程序状态:使用 info program 命令可以查看程序的状态信息,包括程序是否在运行、挂起或已结束。
- 查看断点信息:使用 info breakpoints 或 info b 命令可以查看已设置的断点信息,包括断点编号、断点位置和断点条件等。
- 查看线程信息:使用 info threads 或 info t 命令可以查看当前程序中的线程信息,包括线程编号、线程状态和当前线程等。
- 查看栈帧信息:使用 info frame 或 info f 命令可以查看当前栈帧的信息,包括函数调用链、参数和局部变量等。
- 查看变量信息:使用 info locals 命令可以查看当前栈帧中的局部变量信息,使用 info args 命令可以查看函数参数的值。
- 查看内存信息:使用 info memory 命令可以查看指定内存地址的内容。
- 查看源文件和行号信息:使用 info source 命令可以查看当前源文件的名称和路径。
- 查看源代码位置信息:使用 info line 或 info l 命令可以查看当前执行位置的源代码行号和文件。
- 查看函数信息:使用 info functions 或 info fns 命令可以列出已加载的函数列表。
- 查看共享库信息:使用 info sharedlibrary 或 info shared 命令可以查看已加载的共享库信息。