[gelöst] Dump von QString wg. Zeichensatz-/Font-Problem

Alles rund um die Programmierung mit Qt
Antworten
Tilman Räger
Beiträge: 189
Registriert: 6. Juni 2007 15:23
Wohnort: Göttingen

[gelöst] Dump von QString wg. Zeichensatz-/Font-Problem

Beitrag von Tilman Räger »

Hallo,

Gibt es eine Möglichkeit, einen QString OHNE jede Umwandlung als Byte-Array auszugeben (für Debugzwecke).

Hintergrund:
Unser Programm erhält über Netz UTF8-codierte Daten. Die interne Verarbeitung dieser Daten erfolgt fehlerfrei, nur wenn die Daten auf dem Bildschirm angezeigt werden sollen knallt es in 95% der Fälle. In den restlichen 5 %, bei denen es erst bei der 2. Anzeige (invertiert, bei Auswahl des Strings) klappert, ist zu erkennen, das diverse Zeichen nicht dargestellt werden könnnen (trotz vorher erfolgter Umwandlung per toLatin1()).
Der Absturz erfolgt direkt nach dem Aufruf von repaint(), der Debugger gibt als letzte erkennbare Stelle ein unbekannter Ort in libfontconfig an.
Jetzt würde mich natürlich interessieren, welche Zeichen für das Problem zuständig sind, am besten indem ich mir den anzuzeigenden String per trace ausgeben lasse.

System: LINUX (embedded), Debugger nur nach übertragen des Corefiles auf den PC möglich, Debug-Version nicht lauffähig (Platzmangel). Ich kann also nur mit den spärlichen Hinweisen in einer Release-Version arbeiten :-(

Interessant wäre natürlich auch, ob jemand schon einmal ähnliche Probleme hatte (und vielleicht gefixt bekommen hat.

Für alle Antworten schon im Voraus vielen Dank.

Gruß
Tilman Räger
Zuletzt geändert von Tilman Räger am 22. September 2010 16:58, insgesamt 1-mal geändert.
ScyllaIllciz
Beiträge: 200
Registriert: 9. Juli 2010 19:31

Beitrag von ScyllaIllciz »

Du kannst doch aber bestimmt Deine App mit "strace" laufen lassen, damit habe ich schon Fehler gefunden (fontconfig Pfade usw.). Debuggen geht bei uns auch nicht (Platzmangel). Ich gebe alles um die "empfindliche / verdächtige" Stelle mittels qDebug raus und starte mein App mit "meineApp >/tmp/meineApp.log 2>&1". So kann ich dann via Konsole (putty) die Ausgabedaten ansehen.
Tilman Räger
Beiträge: 189
Registriert: 6. Juni 2007 15:23
Wohnort: Göttingen

Beitrag von Tilman Räger »

Hallo,

den Tip mit strace werde ich Montag mal versuchen. qDebug habe ich natürlich schon verwendet - leider kann ich den Absturz nun auf exact den Befehl repaint() eingrenzen, nur weshalb kann ich bisher noch nicht sagen, deshalb der Versuch, den Inhalt der Strings exact via qDebug anzuzeigen.

Gruß
Tilman Räger
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

valgrind sollte hier auch helfen. Werden die Daten auch korrekt von UTF-8 nach QString konvertiert? Sind die übertragenen UTF-8-Daten korrekt?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Tilman Räger
Beiträge: 189
Registriert: 6. Juni 2007 15:23
Wohnort: Göttingen

Beitrag von Tilman Räger »

Christian81 hat geschrieben:valgrind sollte hier auch helfen. Werden die Daten auch korrekt von UTF-8 nach QString konvertiert? Sind die übertragenen UTF-8-Daten korrekt?
Valgrind werde ich auch mal ausprobieren - falls ich es denn auf unserem Display zum Laufen bekomme.

Die eingehenden Daten (Byte-Array mit UTF8-Daten) werden mittels fromUtf8 in einen String konvertiert. Gerade um nachzuvollziehen, ob die Konvertierung korrekt läuft, suche ich nach einer Möglichkeit, die enthaltenen Daten ohne irgendwelche Konvertierung auszugeben.

Gruß
Tilman Räger
Antworten