Ich verwende GDB 7.6 auf einem Remote-Server.
Wenn ich starte gdb
, ist alles in Ordnung, solange das zu debuggende Programm nicht ausgeführt wird. Ich kann die Auf- und Ab-Pfeile verwenden, um durch den GDB-Verlauf usw. zu navigieren. Kein Anzeigefehler zu melden.
Wenn ich irgendwo in meinem Programm einen Haltepunkt erstelle und dann run
das Programm debugge, weist die Anzeige viele Artefakte auf (Zeichen werden an der falschen Stelle angezeigt), bis ich ausführe refresh
. Von da an funktionieren , next
, stepi
, nexti
Auf- und Ab-Pfeile usw.Aberdie Anzeige zeichnet weiterhin Zeichen an den falschen Stellen. Wenn ich nicht refresh
jeden Schritt ausführe, ist die Anzeige nicht so, wie sie sein sollte. Wenn ich außerdem die Auf- oder Ab-Pfeiltaste drücke, werden die Roh-Charcodes angezeigt, ^[[A
sodass ^[[B
nicht erkennbar ist, welcher Verlaufsbefehl ausgeführt wird.
Ich habe versucht, Hooks zu definieren wie
define hook-nexti
refresh
end
Dadurch wird der Bildschirm tatsächlich aktualisiert, es können jedoch manchmal immer noch unerwünschte Artefakte auftreten (insbesondere in der hervorgehobenen Zeile des ausgeführten Codes). Dies ist keine akzeptable Lösung, da ich auf meinem lokalen Computer (GDB 7.11, zsh 5.0.2) keine Hooks benötige.
Ich habe zufällig auch GDB 7.7 auf meinem Rechner, mit dem das Problem reproduziert werden kann. Handelt es sich hierbei um einen Fehler, der zwischen GDB 7.7 und GDB 7.11 behoben wurde? Falls ja, werde ich einfach binutils-gdb
aus dem Quellcode kompilieren, da ich keinen Root-Zugriff auf den Remote-Server habe.