gdb --tui kann keine Ränder mit korrekten Zeilen anzeigen, wenn das PuTTY-Terminal auf UTF-8 eingestellt ist

9

Problem

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,

%Vor%

Sie können sehen, dass der Rahmen um den Quellcodebereich mit qs und xs gezeichnet wird.

Frage

Wie kann ich dieses Problem beheben, sodass gdb -tui output die Rahmen mit den richtigen Zeilen zeichnet?

Abhilfe

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.

%Vor%     
Lone Learner 03.04.2014, 15:40
quelle

1 Antwort

3

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:

  1. Nehmen Sie PuTTY aus dem UTF-8-Modus heraus. Dies scheint der Effekt Ihrer Problemumgehung zu sein.

  2. 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.

ShadSterling 27.01.2016 06:15
quelle

Tags und Links