当前位置: 首页 > news >正文

GDB TUI窗口管理 _

一、常用窗口布局命令

GDB TUI中可以使用layout命令切换不同的窗口布局。

命令作用
layout src显示源码窗口
layout asm显示汇编窗口
layout regs显示寄存器窗口
layout split同时显示源码窗口和汇编窗口
fs src/asm/reg切换窗口焦点
i win查看当前拥有焦点的窗口
layout next切换到下一个布局
layout prev切换到上一个布局
ctrl+x+a退出窗口模式
接下来以一个实际的例子来演示这些命令的作用
#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 srclayout asmlayout regslayout split等;如果需要在不同窗口之间切换操作焦点,可以使用focus或其简写fs;如果想退出TUI模式,可以使用Ctrl+x+a。对于需要频繁查看源码、寄存器和汇编的调试场景,TUI会比普通命令行模式更加直观。

http://www.jsqmd.com/news/1093429/

相关文章:

  • 2026 年广受信赖的高清无线图传芯片方案商实力盘点
  • 计算机毕业设计之基于深度学习的垃圾分类与管理系统
  • 博途plc下载前出现cpu存在无法自动同步的提示
  • 地陪APP平台系统开发公司,陪玩平台酒店渠道价值深度解读
  • 制定工程战略的五个步骤:探索、诊断、完善、方针与运营
  • 数据中心电力模块集成商推荐:从兆瓦级UPS到全栈预制化方案的选型参考
  • Python可哈希与不可哈希对象原理:深入理解dict的键
  • 2026年动柱龙门加工中心厂家推荐榜,长行程加工的首选装备
  • 以太网接口浪涌与ESD防护设计实战:从二级防护架构到器件选型全解析
  • 关于跨区比赛队伍分榜排名比较合理
  • 推送者桌宠软件免费安装:从形象、动作到桌面互动,每一步都为日常陪伴而设计
  • Fiddler抓包实战:从入门到精通的场景化应用指南
  • 2026爆火AI Agent极简实战!30行Python代码实现自主任务执行
  • 响应速度下降47%,上下文窗口缩水60%,模型更新延迟14天——ChatGPT免费版三大隐形代价,你还在硬扛?
  • LeetCode:347. 前 K 个高频元素
  • Home Assistant Voice 应该本地跑还是接云?本地语音链路该怎么判断
  • M3DM 总览:三大模块的数据流
  • python之类和对象
  • Gliding Horse 的 L2 作战地图:让多 Agent 协作从“摸黑”变成“透明”
  • 具身智能2.0时代洗牌局:2026国内头部具身企业第一梯队为何是“宇树、智元、越疆”?
  • 暗黑3终极自动化战斗宏:D3KeyHelper技术解析与实战应用
  • STC8H单片机IAP串口升级实战:告别冷启动,实现远程程序更新
  • 【单片机毕业设计】基于 STM32 的智能感应开盖垃圾桶设计,基于单片机的溢满检测自动垃圾桶控制系统(013101)
  • 应用场景与方案优势
  • 告别会议低效:智能会议系统的本地化部署方案
  • Java毕设项目:基于 SpringBoot+Vue 的网络域名管理系统设计与实现 前后端分离架构下 Web 域名运维管理平台 (源码+文档,讲解、调试运行,定制等)
  • tensorRT整个系列的总结(包括量化,减枝)
  • 立个flag。周四发表一篇文章。
  • Python变量作用域全解析:从局部到全局,彻底掌握LEGB规则
  • 无需备份即可从 iPhone 恢复已删除短信的 4 种方法