gdb tui模式下显示混乱解决方案

调查背景: xshell连接远程使用gdb调试后,开启tui模式时代码布局很时常混乱

原因分析: 修复后反思,本来以为gdb的tui模式下代码是局部刷新的,后面百度到:GDBTUI (Text User Interface) 模式提供了一个文本界面,它允许你在同一个终端窗口中同时查看源代码、汇编代码、寄存器和变量值等信息。TUI 模式下的刷新机制并不是真正的“局部刷新”(即只更新屏幕上的部分内容),而是整个屏幕的重绘。当时使用的是xshell,只能考虑是xshell的兼容性问题。

研究过程: gdb反正因为兼容性问题一定会混乱,预期把目标设置为避免gdb的tui模式下出现混乱,不如调整为gdb出现混乱后执行某些操作使其恢复正常,后者更具有普适性。经研究,gdb的refresh命令可以重新对界面进行刷新操作,执行命令后,界面恢复正常显示。我们只要每次乱的时候refresh一次就行了,这就是最终解决方案吗???不满意的题主希望重复的事情可以自动化,最终研究出以下解决方案

解决方案
方案依据: 在gdb启动前会读取.gdbinit文件,而在 .gdbinit 文件中,你可以使用 define 关键字来创建自定义命令。这些自定义命令可以包含一系列的 GDB 命令,当你调用这个自定义命令时,GDB 会依次执行这些命令。我们只需要自定义原本的下一步的命令快捷键c,n,使其附带刷新功能就行了。
操作过程:

vi ~/.gdbinit

我们只需要将以下代码复制过去就行了

define c
continue
refresh
end

define n
next
refresh
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值