一、常用窗口布局命令GDB TUI中可以使用layout命令切换不同的窗口布局。命令作用layout src显示源码窗口layout asm显示汇编窗口layout regs显示寄存器窗口layout split同时显示源码窗口和汇编窗口fs src/asm/reg切换窗口焦点i win查看当前拥有焦点的窗口layout next切换到下一个布局layout prev切换到上一个布局ctrlxa退出窗口模式接下来以一个实际的例子来演示这些命令的作用#include stdio.h int add(int a, int b) { int sum a b; return sum; } int main() { int x 10; int y 20; int result add(x, y); printf(result %d\n, result); return 0; }对源代码进行编译以及启动GDB调试后进入调试界面输入layout src打开TUI界面可以看见上方为源码显示区域下方为GDB的命令输入区域上方被绿色的边框选中说明当前的窗口焦点在上方在这种状态下使用方向键是调整的源码区域的内容。也可以使用i win查看当前的窗口焦点信息。如果想要使用方向键快捷使用gdb历史命令需要先将窗口焦点切换到命令行窗口上fs cmd使用b main命令在main函数处添加断点执行r命令之后可以看见程序在第11行处中断下来前面的断点标识变为大写的B说明该断点至少命中过了一次对于在第14行添加的断点可以看见程序还未运行到此处所以目前断点标识为小写的b断点标识后的号标识当前断点为使能状态。同时在源码窗口的下方还会显示当前对应的程序状态。显示信息包括PC指针当前运行线程当前所在函数等信息。使用layout split可以将当前的源码窗口分隔成两块部分可以看见中间部分出现了汇编代码的内容使用layout asm可以将可视化窗口部分切换为汇编代码。GDB的TUI模式可以把普通命令行调试变成多窗口调试界面使源码、汇编、寄存器和命令输入区域分开显示避免信息混杂在一起。常用的命令包括layout src、layout asm、layout regs、layout split等如果需要在不同窗口之间切换操作焦点可以使用focus或其简写fs如果想退出TUI模式可以使用Ctrlxa。对于需要频繁查看源码、寄存器和汇编的调试场景TUI会比普通命令行模式更加直观。