gdb大全

下面给出更完整的 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内核调试命令大全》

posted on 2026-07-10 18:44  小镇-做题家  阅读(4)  评论(0)    收藏  举报

导航