4

Я использую 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 на удаленном сервере.

0