Ich logge mich mit PuTTY in ein entferntes CentOS-System ein und mache meine Entwicklung mit g ++ und gdb. My PuTTY ist so eingestellt, dass die Terminalausgabe als UTF-8 interpretiert und entsprechend gerendert wird. Diese Einstellung ist wie folgt konfiguriert.
Beim Debuggen mit gdb --tui
beobachte ich, dass die Rahmen um den Quellcodebereich nicht korrekt mit Linien gezeichnet sind. Es sieht aus wie ein Terminal-Zeichencodierungsproblem.
Das Terminal kann Unicode-Zeichen korrekt anzeigen. Hier sind einige Beispielausgaben:
%Vor%Hier sind meine Terminaleinstellungen:
%Vor% Wenn ich jedoch gdb -tui
starte,
Sie können sehen, dass der Rahmen um den Quellcodebereich mit qs und xs gezeichnet wird.
Wie kann ich dieses Problem beheben, sodass gdb -tui
output die Rahmen mit den richtigen Zeilen zeichnet?
Im Moment arbeite ich an dem Problem, indem ich PuTTY so konfiguriere, dass die Terminal-Daten wie unten gezeigt als ISO-8859-1 interpretiert werden. Mit dieser Einstellung sieht die Terminalausgabe wie folgt aus.
%Vor%
Mit dieser Einstellung sieht gdb --tui
output korrekt aus.
Laut dieser Antwort (verlinkt in @jpes Kommentar) besteht das Problem darin, dass "einige Terminalemulatoren (z. B. Putty ) respektiere die ACS-Kontrollsequenzen nicht, wenn sie im UTF-8-Modus sind ". Dies legt zwei mögliche Lösungen nahe:
Nehmen Sie PuTTY aus dem UTF-8-Modus heraus. Dies scheint der Effekt Ihrer Problemumgehung zu sein.
Stoppen Sie GDB, ACS-Kontrollsequenzen zu verwenden. Laut der Dokumentation kann dies mit dem Befehl set tui border-kind ascii
geschehen. In der Dokumentation wird nicht beachtet, dass dieser Befehl eingegeben werden muss, bevor der TUI-Modus aufgerufen wird.
Tags und Links character-encoding gdb putty