Seite 1 von 1

Kein Verlass mehr auf Debugger (wegen Threads)

Verfasst: 11.10.2006 19:04
von Kekskiller
Mein Problem ist sehr unangenehm und erschwert mir die Entwicklung meines Programmes ungemein...

Programm: Ich habe ein Hauptprogramm, welches Bilder mit DirectX und Sprite3D zeichnet, zeitgleich läuft ein Thread, der die zu zeichnenden Objekte bewegt und in einem Datenfeld arbeitet. Es sind ganz einfache mathematische Sachen und Funktionsaufrufe, die keine DirectX oder 2DDrawing-Sachen benutzen.

Problem: Der Debugger zickt rum. Und zwar ständig. Er gibt nicht mal einen Befehl an, beendet sich einfach so, ohne dass ich auch nur ansatzweise in die Variablen-Werte einsehen kann. Zack und weg! Ich verstehe nur noch Bahnhof. Er hält willkürlich im Programm an und mein, es wurde beendet.

Ich krieg ne Krise @_@ ... Ich würde ja gerne den Programmcode posten, aber er ist über viele Includes verteilt und doch recht komplex, daher sehe ich darin keine so gute Möglichkeit. Habe mir auf einen eigenen Debuglogger geschrieben, der recht zuverlässig funktioniert. Nur stört es mich wirklich sehr, dass ich nicht alles sehen kann, was ich sehen will - ich kann ja nicht mal einen potenziellen Grund für all den Kram erkennen :evil: .


Einzige Ursache ist wohl der Thread... Ohne Thread hats immer sooo toll funktioniert. Forumssuche hab ich auch schon benutzt -> nichts sinnvolles gefunden...

Verfasst: 11.10.2006 22:12
von Zaphod
Synchroniserst du die Datenzugriffe denn ordentlich? Multithreaded Programmieren ist manchmal ganz schön Haarig.

Wenn du dazu etwas lesen willst, da gab es an der FU Berlin eine gute Vorlesung zu, deren Folien online stehen: http://www.inf.fu-berlin.de/lehre/SS06/ALP4/

Verfasst: 12.10.2006 09:28
von NicTheQuick
Schau dir mal die Mutex-Funktionen an. Vielleicht helfen die dir bei deinem
Problem. Damit kannst du gleichzeitige Zugriffe auf die selben Objekte von
zwei verschiedenen Threads aus unterbinden.

Verfasst: 12.10.2006 17:37
von MVXA
Wenn man im Debuggermodus ist, muss man halt alles etwas bremsen.
Da kommen Sachen wie Mutex Objekte doch sehr gelegen. Dann klappt
es auch mit dem Debuggen. Der Debugger ist halt nicht so fehlerfrei wie
es der Programmierer sich erhofft hat /:->. Gibt auch diverse andere Bugs,
die ich aber z.b. nicht rekonstruiert bekomme

Verfasst: 12.10.2006 19:52
von AND51
Checkliste:
(Unter Berufung auf die PB-Hilfe, in der alles steht!)
  • DirectX ist in Threads verboten unter Windows (MS einschränkung!)
  • Mutex Befehle intensiv nutzen
  • Man sollte bei gleichzeitiger Verwendung von Threads und einem Debugger den Threadsafe-Modus aktivieren!