GDB 的 TUI 模式提供源码、汇编、寄存器等分窗视图,提升 C++ 调试效率;启用方式为 gdb -tui 或 layout 命令,需编译时加 -g -O0,支持键盘导航与自动高亮,异常时可用 Ctrl+x a 切换或重建布局。

使用 GDB 的 TUI(Text User Interface)模式,可以在终端中获得类似 IDE 的分窗调试体验:源码、汇编、寄存器、命令行等视图并列显示,无需反复敲 list 或 info reg,大幅提升 C++ 调试效率。
启用 TUI 模式
启动时直接进入 TUI:在终端中运行
gdb -tui ./your_program
或在 GDB 启动后输入命令切换:
立即学习“C++免费学习笔记(深入)”;
- layout src —— 显示源码窗口(C++ 文件)
- layout asm —— 切换为汇编视图
- layout reg —— 源码 + 寄存器双窗(寄存器自动随执行更新)
- Ctrl+x a —— 在 TUI 和普通命令行模式间快速切换
常用 TUI 导航与操作
TUI 窗口支持键盘聚焦和滚动,提升交互效率:
- 用 ↑ ↓ ← → 键移动焦点(如从源码窗切到命令窗)
- Ctrl+p / Ctrl+n 在命令历史中上下浏览(同普通 GDB)
- Ctrl+l 重绘界面(修复乱码或错位)
- 在源码窗口中按 Enter 可跳转到光标所在行设置断点(需先用
file或run加载符号)
配合 C++ 调试的关键技巧
TUI 对 C++ 的符号解析、模板、内联函数支持良好,但需注意以下几点:
- 编译时务必加 -g -O0(禁用优化,保留完整调试信息)
- 使用 step(s)或 next(n)时,TUI 会自动高亮当前执行行,并在多线程场景下标出活动线程
- 查看 STL 容器内容?仍需手动用
print vec[0]或print my_map,TUI 不自动展开,但源码窗能准确定位到 vector 构造/赋值等关键行 - 窗口太窄导致代码折行?用 Ctrl+x + 增宽源码窗,Ctrl+x - 缩小
退出与故障处理
TUI 模式下退出 GDB 与普通模式一致:quit 或 q。遇到界面异常(如窗口消失、字符错位):
- 先按 Ctrl+x a 退出 TUI,再输 layout src 重建
- 若提示 “TUI mode is not supported on this terminal”,说明终端不支持 curses(如某些精简 Docker 环境),可换用
TERM=xterm-256color gdb -tui - 远程 SSH 连接时确保开启 ssh -Y 或至少支持 ANSI 转义(一般现代终端默认满足)











