GDB 的 TUI 模式提供源码、汇编、寄存器等分窗视图,提升 C++ 调试效率;启用方式为 gdb -tui 或 layout 命令,需编译时加 -g -O0,支持键盘导航与自动高亮,异常时可用 Ctrl+x a 切换或重建布局。
使用 GDB 的 TUI(Text User Interface)模式,可以在终端中获得类似 IDE 的分窗调试体验:源码、汇编、寄存器、命令行等视图并列显示,无需反复敲
或
,大幅提升 C++ 调试效率。
启用 TUI 模式
启动时直接进入 TUI:在终端中运行
gdb -tui ./your_program
或在 GDB 启动后输入命令切换:
立即学习
“
C++免费学习笔记(深入)
”;
C函数速查手册(CHM版)
C函数速查手册(CHM版)
下载
layout src
—— 显示源码窗口(C++ 文件)
layout asm
—— 切换为汇编视图
layout reg
—— 源码 + 寄存器双窗(寄存器自动随执行更新)
Ctrl+x a
—— 在 TUI 和普通命令行模式间快速切换
常用 TUI 导航与操作
TUI 窗口支持键盘聚焦和滚动,提升交互效率:
用
↑ ↓ ← →
键移动焦点(如从源码窗切到命令窗)
Ctrl+p / Ctrl+n
在命令历史中上下浏览(同普通 GDB)
Ctrl+l
重绘
界面(修复乱码或错位)
在源码窗口中按
Enter
可跳转到光标所在行设置断点(需先用
或
加载符号)
配合 C++ 调试的关键技巧
TUI 对 C++ 的符号解析、模板、内联函数支持良好,但需注意以下几点:
编译时务必加
-g -O0
(禁用优化,保留完整调试信息)
使用
step
(s)或
next
(n)时,TUI 会自动高亮当前执行行,并在多线程场景下标出活动线程
查看 STL 容器内容?仍需手动用
或
,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 环境),可换用
远程 SSH 连接时确保开启
ssh -Y
或至少支持 ANSI 转义(一般现代终端默认满足)
listinfo regfilerunprint vec[0]print my_mapTERM=xterm-256color gdb -tui