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