gdb <program> # 调试某个可执行程序
gdb <program> <core-file># 调试 core dump 文件
list#列出程序源码
list <function_name>#列出某个函数源码
info <program>#查看程序的入口地址
load#加载程序到目标设备
run#运行程序,直到遇到断点
start#运行程序并在 `main` 函数之前停止
continue#继续运行您的程序 (在停止之后,比如在一个断点之后)
break <function_name>#设置断点,例如:b main:在main函数设置断点
break <filename>:<line_number>#在文件的某一行设置断点
info breakpoints#显示所有断点
delete <breakpoint_number>#删除某个断点
disable <breakpoint_number>#禁用某个断点
enable <breakpoint_number>#启用某个断点
watch <variable>#监控某个变量
step#逐行单步运行,进入函数
next#逐行单步运行,不进入函数
stepi#单步运行一条机器指令,进入函数
nexti#单步运行一条机器指令,不进入函数
info registers#列出寄存器信息
info registers <regname>#列出指定寄存器信息,例如:info registers pc
info all-registers#列出全部寄存器的信息
x/<n><format> <address>#查看内存,<n>:显示的单元数量,<format>:显示格式(如 x 表示十六进制,d 表示十进制,s 表示字符串等),<address>:要查看的内存地址,例如:
1. x/4uw 0x200001d0#打印 0x200001d0内存地址的数据
2. x/s 0x200001d0#打印 0x200001d0内存地址的字符串
disassemble#查看函数反汇编地址
set disassemble-next-line on/off#打开/关闭汇编显示
print <variable>#打印变量
backtrace#显示函数调用栈
backtrace full#显示调用栈及局部变量的详细信息
info locals#查看当前栈帧局部变量
target remote <hostname>:<port>#连接远程调试服务器
disconnect#断开与远程目标的连接
source <file>#执行 GDB 命令文件
set logging on#打开日志记录
set logging file <file>#设置日志文件
quit#退出GDB