GDB的常用命令

发布于:2024-05-07 ⋅ 阅读:(24) ⋅ 点赞:(0)

GDB(GNU Debugger)是Linux和其他类Unix系统中常用的调试工具,用于调试C、C++等编程语言编写的程序。以下是一些GDB常用的命令:

启动和基本操作

gdb [executable-file]:启动GDB并加载指定的可执行文件。
run [arguments] 或 r [arguments]:运行程序,可选地传递命令行参数。
start:运行程序直到main函数的入口。
continue 或 c:继续运行程序,直到遇到断点或程序结束。
next 或 n:单步执行下一行代码,函数调用视为单一步骤。
step 或 s:单步进入函数内部执行。


断点管理

break [location] 或 b [location]:在指定位置设置断点,location可以是函数名、行号、文件名:行号或地址。
break if condition:设置条件断点,仅当condition为真时才触发断点。
clear [location]:清除指定位置的断点。
disable [breakpoint_number]:禁用指定编号的断点。
enable [breakpoint_number]:启用指定编号的断点。
info breakpoints 或 info br:显示所有断点的信息。


查看和修改程序状态

print expression 或 p expression:打印表达式的值。
display expression:在每次停下来时自动打印表达式的值。
info locals:显示当前堆栈帧中局部变量的值。
info registers 或 info reg:显示寄存器的内容。
backtrace 或 bt:显示调用堆栈跟踪。
frame [frame_number] 或 f [frame_number]:选择堆栈中的帧进行检查。
list [filename:]function 或 l [filename:]function:列出源代码。
set variable var = value:修改变量的值。


控制程序执行

finish:执行到当前函数返回。
stepi 或 si:单步步进指令,而非源代码行。
nexti 或 ni:类似next,但按指令步进。
until:执行直到离开当前循环或到达指定位置。
jump address 或 j address:让程序跳转到指定地址执行。


其他实用命令

quit 或 q:退出GDB。
help [command] 或 h [command]:获取帮助信息,不带参数时显示命令列表。
set logging on/off:开启或关闭命令日志记录。
info threads 或 info t:显示所有线程信息。
thread [thread_number] 或 t [thread_number]:切换到指定线程。