如何配置GDB TUI窗口以自动显示原始内存内容?
配置GDB TUI自动显示内存内容
完全可以配置GDB TUI实现自动显示指定内存地址(如栈指针$sp)的内容并实时更新,无需每次手动执行x/20x类命令,具体操作如下:
1. 进入GDB TUI模式
- 启动GDB时直接开启TUI:
gdb -tui <可执行文件> - 若已在普通GDB会话中,执行命令切换到TUI:
layout split # 同时显示源码和汇编窗口 # 或选择单一窗口:layout src(源码)/ layout asm(汇编)
2. 设置自动更新的内存显示
使用display命令指定要监控的内存范围和格式,该命令会在程序每次停止(如单步、断点触发)时自动刷新内容:
- 监控栈指针处的20个双字(与示例格式一致):
display/20x $sp - 监控固定地址的内存:
display/20x 0x7fffffffe270
执行后,TUI界面的命令输出区域上方会自动新增一个显示块,每次程序状态变化时都会同步更新内存内容,效果和你给出的示例一致。
3. 调整显示体验
- 查看当前自动显示项:
info display - 移除不需要的自动显示项:
undisplay <编号>(编号来自info display的输出) - 调整窗口高度(比如让内存显示区域更大):
winheight cmd 10 # 将命令窗口高度设为10行,腾出更多空间给自动显示区 - 关闭自动显示的重复内容提示:
set print repeats 0
示例效果
当你执行display/20x $sp后,每次单步执行next或step,内存区域会自动刷新为当前栈指针处的最新内容,类似你提供的输出:
0x7fffffffe270: 0x00000000 0x00000000 0x55555250 0x00005555 0x7fffffffe280: 0x00000000 0x00000000 0x55555070 0x00005555 ...
内容的提问来源于stack exchange,提问作者traveh
相关产品推荐
相关产品推荐

