下面给出更完整的 GDB 指令大全表(按命令体系分类)。覆盖:启动、运行、断点、观察点、线程、进程、内存、寄存器、汇编、符号、core、远程调试、脚本、Python 扩展等。
GDB Command Reference 全表
1. GDB 基础控制
| 命令 | 缩写 | 功能 |
help |
h |
查看帮助 |
apropos keyword |
- |
搜索命令 |
info |
i |
查看信息 |
show |
- |
查看设置 |
set |
- |
修改设置 |
define |
- |
定义自定义命令 |
document |
- |
给自定义命令添加说明 |
quit |
q |
退出 |
shell cmd |
!cmd |
执行Shell命令 |
make |
- |
调用make |
2. 程序加载
| 命令 | 功能 |
file program |
加载可执行文件 |
symbol-file file |
加载符号文件 |
exec-file file |
加载执行文件 |
core-file core |
加载core |
add-symbol-file file addr |
动态加载符号 |
set args args |
设置程序参数 |
show args |
查看参数 |
show environment |
查看环境变量 |
set environment VAR=value |
设置环境变量 |
unset environment VAR |
删除环境变量 |
3. 程序运行
| 命令 | 缩写 | 功能 |
run |
r |
运行 |
start |
- |
到main入口 |
starti |
- |
到第一条指令 |
continue |
c |
继续运行 |
step |
s |
单步进入 |
next |
n |
单步跳过 |
stepi |
si |
单步机器指令 |
nexti |
ni |
下一条机器指令 |
finish |
- |
执行到返回 |
until |
u |
执行到指定位置 |
advance location |
- |
运行到指定位置 |
jump location |
- |
修改执行位置 |
signal SIG |
- |
发送信号 |
kill |
- |
杀死程序 |
4. 断点 Breakpoint
| 命令 | 功能 |
break func |
函数断点 |
break file:line |
行断点 |
break *addr |
地址断点 |
break +offset |
当前行偏移 |
break -offset |
当前行之前 |
tbreak |
临时断点 |
hbreak |
硬件断点 |
rbreak regex |
正则函数断点 |
catch syscall name |
系统调用断点 |
catch throw |
C++异常断点 |
catch fork |
fork断点 |
catch exec |
exec断点 |
catch signal SIG |
信号断点 |
断点管理
| 命令 | 功能 |
info break |
查看断点 |
delete |
删除 |
delete N |
删除指定 |
clear location |
清除位置断点 |
disable |
禁用 |
enable |
启用 |
ignore N count |
忽略次数 |
condition N expr |
条件断点 |
commands N |
断点执行脚本 |
示例:
break main if argc > 2
commands 1
silent
bt
continue
end
5. 查看源码
| 命令 | 功能 |
list |
显示源码 |
list function |
函数源码 |
list file:line |
指定位置 |
edit |
编辑源码 |
search regexp |
搜索源码 |
forward-search |
向前搜索 |
reverse-search |
反向搜索 |
set listsize N |
设置显示行数 |
6. 变量与表达式
| 命令 | 功能 |
print expr |
打印表达式 |
p/x expr |
16进制 |
p/d expr |
十进制 |
p/t expr |
二进制 |
p/c expr |
字符 |
ptype expr |
查看类型 |
whatis expr |
查看类型 |
display expr |
自动显示 |
undisplay N |
删除显示 |
printf format,args |
格式化输出 |
output expr |
输出不保存 |
7. 内存操作 x 命令
格式:
x/[数量][格式][大小] 地址
格式
| 参数 | 说明 |
| x |
hex |
| d |
decimal |
| u |
unsigned |
| o |
octal |
| t |
binary |
| c |
char |
| s |
string |
| i |
instruction |
| a |
address |
大小
| 参数 | 大小 |
| b |
byte |
| h |
halfword |
| w |
word |
| g |
giant word |
示例:
x/20gx $rsp
x/10i $rip
x/s 0x400500
8. 寄存器
| 命令 | 功能 |
info registers |
全部寄存器 |
info all-registers |
全部扩展寄存器 |
p $rax |
查看寄存器 |
set $rax=0 |
修改寄存器 |
maintenance print registers |
内部寄存器 |
9. 栈 Stack
| 命令 | 功能 |
backtrace |
调用栈 |
bt |
简写 |
bt full |
完整栈 |
frame N |
切换栈帧 |
up |
上一层 |
down |
下一层 |
info frame |
当前栈帧 |
info args |
参数 |
info locals |
局部变量 |
10. Watchpoint
| 命令 | 功能 |
watch expr |
写监控 |
rwatch expr |
读监控 |
awatch expr |
读写监控 |
info watch |
查看 |
delete N |
删除 |
11. 多线程
| 命令 | 功能 |
info threads |
线程列表 |
thread N |
切换线程 |
thread apply N cmd |
指定线程执行 |
thread apply all cmd |
所有线程 |
set scheduler-locking on |
只运行当前线程 |
set scheduler-locking step |
单步锁线程 |
set scheduler-locking off |
关闭 |
常用:
thread apply all bt full
12. 多进程 / fork
| 命令 | 功能 |
info inferiors |
查看进程 |
inferior N |
切换进程 |
add-inferior |
添加进程 |
remove-inferior |
删除进程 |
set follow-fork-mode parent |
跟父 |
set follow-fork-mode child |
跟子 |
set detach-on-fork off |
不分离 |
13. 动态库
| 命令 | 功能 |
info sharedlibrary |
共享库 |
info proc mappings |
内存映射 |
sharedlibrary |
加载符号 |
set solib-search-path PATH |
库路径 |
set sysroot PATH |
系统根目录 |
14. 汇编
| 命令 | 功能 |
disassemble |
反汇编 |
disas /m |
源码混合 |
disas /r |
机器码 |
layout asm |
汇编窗口 |
layout src |
源码窗口 |
layout regs |
寄存器窗口 |
set disassembly-flavor intel |
Intel格式 |
set disassembly-flavor att |
AT&T格式 |
15. 信号
| 命令 | 功能 |
info signals |
信号列表 |
handle SIG stop |
停止 |
handle SIG nostop |
忽略 |
handle SIG print |
打印 |
handle SIG pass |
传递 |
16. Core Dump
| 命令 | 用途 |
gdb app core |
加载core |
bt |
崩溃栈 |
bt full |
完整信息 |
info threads |
线程 |
thread apply all bt |
全部线程 |
info registers |
寄存器 |
x/i $pc |
崩溃指令 |
17. 远程调试
| 命令 | 功能 |
target remote host:port |
连接gdbserver |
target extended-remote |
扩展模式 |
set remote timeout |
超时 |
monitor cmd |
发送monitor命令 |
detach |
断开 |
disconnect |
退出连接 |
18. GDB Server
服务端:
gdbserver :1234 ./app
客户端:
gdb ./app
进入:
target remote :1234
19. 日志与记录
| 命令 | 功能 |
set logging on |
开启日志 |
set logging file xxx.log |
指定文件 |
set logging off |
关闭 |
set pagination off |
关闭分页 |
set confirm off |
关闭确认 |
20. Python 扩展
| 命令 | 功能 |
python |
进入Python |
python print() |
执行Python |
source script.py |
加载脚本 |
pi expr |
Python表达式 |
21. Maintenance 高级调试
| 命令 | 用途 |
maintenance info sections |
段信息 |
maintenance print symbols |
符号 |
maintenance flush register-cache |
刷新缓存 |
maintenance packet |
远程包 |
22. 线上故障最常用组合
进程卡死
gdb -p PID
thread apply all bt full
CPU 100%
top
info threads
thread N
bt
死锁
thread apply all bt full
重点:
pthread_mutex_lock
futex_wait
崩溃
bt full
info registers
x/i $pc
内存踩踏
watch *(type*)address
这版覆盖 GDB 14/15 常用命令体系约 90%+,适用于:
-
C/C++ 服务
-
Nginx/HAProxy 类网络程序
-
Go/C 混合程序底层排查
-
Linux 线上 core 分析
-
死锁、段错误、hang 定位
如果需要,还可以继续整理一份 《GDB 反汇编 + 汇编指令 + x86寄存器 + Linux内核调试命令大全》。