我在远程服务器上使用 GDB 7.6。
当我启动时gdb
,只要要调试的程序未运行,一切都很好。我可以使用上下箭头浏览 GDB 历史记录等。没有显示错误需要报告。
当我在程序的某个地方创建断点,然后run
调试程序时,显示屏上会出现许多伪影(字符显示在错误的位置),直到我运行。refresh
从那时起next
,、、、上下箭头等都可以工作stepi
nexti
但显示器继续在错误的位置绘制字符。如果我不在refresh
每个步骤中运行,则显示内容就不是应有的样子。此外,当我按下向上或向下箭头键时,会显示原始字符代码,^[[A
而^[[B
无法知道将执行哪个历史命令。
我尝试定义钩子,例如
define hook-nexti
refresh
end
这实际上会刷新屏幕,但有时仍然会出现不必要的瑕疵(尤其是在突出显示的执行代码行上),并且这不是一个可接受的解决方案,因为我的本地机器上不需要钩子(GDB 7.11,zsh 5.0.2)。
我的机器上恰好也有 GDB 7.7,用它可以重现这个问题。这是 GDB 7.7 和 GDB 7.11 之间修复的一个错误吗?如果是,我将从binutils-gdb
源代码进行编译,因为我在远程服务器上没有 root 访问权限。