GDB 命令表
命令 | 全称 | 说明 |
---|---|---|
b | break | 打断点,可接行号或函数名(b 22 或 b func) |
r | run | 运行程序 |
l | list | 显示最近源码 |
i | info | 显示信息,可查看当前断点信息(i break) |
s | step | 逐步调试,进函数 |
n | next | 逐步调试,不进函数 |
c | continue | 继续执行,直到下个断点 |
p | 查看变量值 | |
bt | backtrace | 查看函数堆栈信息 |
disp | display | 追踪变量,每步都显示变量值 |
und | undisplay | 取消追踪变量 |
where | where | 显示当前位置 |
q | quit | 退出GDB |
TUI 命令表
命令 | 说明 |
---|---|
info win | 显示窗口大小信息 |
layout prev | 显示上一个窗口 |
layout next | 显示下一个窗口 |
layout src/asm/regs | 显示指定窗口(源码/汇编/寄存器) |
layout split | 显示源码和汇编窗口 |
focus src/asm/reg/cmd | 切换光标到指定窗口(源码/汇编/寄存器/命令行) |
tui reg next | 显示下一组寄存器 |
tui reg float/general/system | 寄存器窗口 显示指定寄存器(浮点/通用/系统) |
其他
- TUI模式打开GDB:gdb -tui -q program_name
- GDB不按顺序执行/乱跳的原因:GCC编译优化的问题,用-O0编译就好了