ich möchte ein eigenes Java-GUI Programm debuggen.
Das Programm läuft, und reagiert auf die GUI-Elemente wie gewünscht. (Code zu umfangreich um es hier zu posten)
Problem:
Beim setzten der Breakpoints im Eclipse-Debug-Modus reagiert das Programm aber nicht auf die GUI-Elemente!?
Möchte ja sehen welche Werte die Variablen annehmen, wenn man auf die GUI Elemente des eigenen Programms klickt.
(Debugging funktioneirt aber mit den üblichen Debug-Operationen wie "Step over" ...)
Wenn ein Breakpoint den GUI Thread stoppt ist der Event Dispatch Thread erstmal lahm gelegt (das ist ja Sinn der Sache).
Solange du die Ausführung nicht fortsetzt können keine Events verarbeitet werden. Das ist nunmal so :wink:
Hmm, ok, danke, das erklärt dann wieso die Eventlistener nicht im Debugmodus funktionieren.
Aber es wird doch ganz sicherlich irgendeine Möglichkeit geben, trotzdem ein GUI-Programm über seine GUI-Elemente zu steuern und zugleich zumindest in einer Art Debugmodus die Variablenwerte anzusehen. Ansonsten könnte man GUI-Progs nicht professionell debuggen!?
Hmm, sieht also so aus, dass man sich bei GUI-Programmen nur mit System.out.println weiterhelfen kann?
Und die Variablenwerte bekommst du ja auch, das ist kein Problem.
weiterhin kannst du Expression Watches definieren und Conditions für Breakpoints einrichten.
Was fehlt dir denn?
Das ein Breakpoint ungeeignet ist um die x/y koordinaten eines MouseMotionListeners zu überprüfen versteht sich von selbst, aber wer will das denn haben? :wink:
Aber wenn ich die GUI-Elemente anklick, dann ändern sich einige meiner Variablenwerte, aber du meintest ja im Debug-Modus läuft der Event-Thread nicht.
Wie krieg ich also die Variablenwerte?
Wildcard hat gesagt.:
weiterhin kannst du Expression Watches definieren und Conditions für Breakpoints einrichten.
Was fehlt dir denn?
Hmm, "Expression Watches" und "Conditions für Breakpoints" sagt mit leider nichts. Werd wohl danach googeln müssen, sofern es nicht mal eben so schnell erklärbar ist.
Na du machst was, der Breakpoint schlägt an und du schaust dir die Werte an.
Dann lässt du das Programm weiterlaufen.
1. Eine Expression Watch evaluiert Anweisungen aufgrund der aktuellen Objektzustände.
2. Für Breakpoints lassen sich Conditions festlegen, z.B. halte an, wenn i>100
Nehmen wir mal an, mein GUI-Prog führt beim Betätigen eines bestimmten GUI ELementes ein bestimmtes Codestück aus.
Wie kann ich dann dieses Codestück debuggen? Denn im Debugmodus reagiert ja das GUI-Prog net auf meine Eventlistener, ich komm also net an dieses Codestück ran!
Supi, hat funktioniert!! Danke dir! Und vor allem danke für deine Geduld wegen meinen vielen nervigen Fragen..
Also irgendwie hab ich die ganze Zeit ganz falsch gedacht bzw. es nicht gecheckt.
Hab also wie du erzählt hast den Breakpoint in meinen MouseEventlistener gesetzt, und beim Betätigen der Maus wurde ich daraufhin tatsächlich in den Debugmodus versetzt!