问题描述
为允许在内部跟踪功能后移至下一条语句,我将以下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在其中停留的时间更长)。
问题:
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)