Debugging-Problem (nicht 100% Qt) [telw. gelöst]

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

Debugging-Problem (nicht 100% Qt) [telw. gelöst]

Beitrag von Tilman Räger »

Hallo,

ich habe hier momentan ein etwas unverständliches Verhalten, wo mir unter Windows ein wenig das Wissen fehlt mit welchen Tools ich dem ganzen auf den Grund gehen kann.

Beim Beenden meiner Anwendung werden eine Reihe von Sockets geschlossen. Das disconnected Signal dieser Sockets ist mit einer Funktion verknüpft, die der Anwendung mitteilt, wann alle Sockets geschlossen sind und sie sich beenden darf. Soviel in der Theorie.

In der Praxis werden 2 dieser Funktionen auch korrekt durchlaufen, dann jedoch erhalte ich eine Exception / Zugriffsfehler aus einem der Slots, der mit dem Signal readyRead eines dieser gerade eben geschlossenen und mit deleteLater markierten Sockets verbunden ist. Ein disconnect() vor dem close() des Sockets brachte ebenfalls nichts. Was noch seltsamer ist, ist das der qDebug-Befehl, der in dem betreffenden Slot direkt beim Einsprung ausgegeben werden sollte, fehlt! Es ist also so, als würde mitten in diesen Slot hineingesprungen werden.

Denkbar wäre natürlich ein ganz wüster Speicherzugriffsfehler wie Rücksprungadresse verbogen o.ä. aber ist das denkbar? und wie komme ich so etwas auf die Spur, ohne die ganze Anwendung wieder auf Linux lauffähig zu machen und Valgrind o.ä. daraufloszulassen.

Ich entwickle unter Windows 7 mit dem VC++ 2010 Compiler, wenn ich als Entwicklungsumgebung auch die QtCreator bevorzuge. daher sind mir die Fähigkeiten des VC Debuggers vielleicht auch nicht ganz so geläufig.

Für alle Antworten schon im Voraus mal ein herzliches Danke.

Gruss

Tilman Räger

Ergänzung: Das Problem hat sich halbwegs selbst gelöst - das Programm fährt nun sauber herunter - wie gewünscht (Grund war eine Endlosschleife, in die es reingerauscht ist und dann wohl mit Signals/Slots durcheinander gekommen ist, wie, ist mir noch schleierhaft. Interessant wäre natürlich weiterhin, was für Tools sind für so etwas unter Windows hilfreich?

Tilman (Räger)
Antworten