GDB 7.6 TUI не обновляет дисплей, создавая артефакты

GDB 7.6 TUI не обновляет дисплей, создавая артефакты

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

Связанный контент