如何解决如何通过自定义命令禁用GDB TUI更新src窗口?
为允许在内部跟踪功能后移至下一条语句,我将以下gdb extension放入gdbinit中(也可以在用gdb -x
或由{从运行中的gdb手动进行一次source mystep.cmd
的操作):
define mystep
set $steps = 1
if $argc == 1
set $steps = $arg0
end
set $i = 0
while $i < $steps
advance trace_func
finish
set $i = $i + 1
end
refresh
end
document mystep
Step program until it reaches a different traced source line.
Usage: mystep [N]
Argument N means step N times (or till program stops for another reason).
end
它本身就像一个咒语,但是有两个问题:
- 最后一个
refresh
(作为command file)将始终启用tui模式(如果尚未启用)。 - TUI的源窗口有时会闪烁,因为它试图显示我不感兴趣的trace_func(因为用户定义的命令使用
advance
来继续直到到达),然后转到后面的实际陈述。mystep 3
尤其如此(并且在更高的位置,因为tui在其中停留的时间更长)。
问题:
- 有没有一种方法可以通过命令文件进行检查(我猜一个人可以查询tui状态,并根据结果进行刷新,或者通过
if ... end
不执行任何操作)。 - 是否有防止更新源窗口的选项(=它应保留在当前帧中)?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。