Seite 1 von 1

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

Verfasst: 10. September 2010 16:13
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

Verfasst: 10. September 2010 17:53
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.

Verfasst: 10. September 2010 21:50
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

Verfasst: 11. September 2010 16:51
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?

Verfasst: 13. September 2010 12:51
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