Qt Debuggen

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
Jonathan
Establishment
Beiträge: 2658
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Qt Debuggen

Beitrag von Jonathan »

Ich benutze VS2010 prof. und versuche gerade meine Qt Anwendung zu debuggen. Mein Problem ist, dass es irgendwo knallt, aber mit Visual Studio nix vernünftiges anzeigt. Laut CallStack irgendwo in einer ntdll.dll und angezeigt wird die qtrhead_win.cpp.
Ich hab eine Funktion mit einer Schleife, die so an die 100k Durchläufe macht. Jetzt setze ich vor der Schleife einen Breakpoint und dahinter einen. Irgendwo in der Schleife knallt es dann und ich weiß nicht wo. Solche Probleme hatte ich schon öfters, das irgendwo etwas abstürzt und mir nichts brauchbares angezeigt wird, soweit ich mich erinnern kann immer in Zusammenhang mit Qt. Im Thread Fenster werden noch 3 andere Threads angezeigt, aber da find ich auch nichts verwertbares. Interessant ist, dass der Callstack zwar nie etwas brauchbares liefert, aber ab und zu schonmal unterschiedlich aussieht, wenn ich das Programm mehrmals ausführe. Irgendeine Idee, was man machen könnte?
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Qt Debuggen

Beitrag von eXile »

Das Hauptproblem liegt darin, zu erkennen, ab wann das Programm in einen ungültigen Zustand gerät. Normalerweise, wie du schon sagtest, debuggt man das post-mortem via Call-Stack. Sollte der Call-Stack ungültig sein, fiele mir auf die Schnelle ein, die Schleifenindizes in die Konsole oder mittels OutputDebugString auszugeben. Wenn du Glück hast, kracht es immer beim gleichen Index, und kannst dann was rumpopeln.
Antworten