Advanced Java Services | Debugging |
Durch Anklicken des Käfersymbols oder einfacher mit F11 startet man das Debuggen direkt. In diesem Fall übernimmt man die Standardkonfiguration. Eclipse fragt dann, ob es in die Debug-Ansicht wechseln soll und kann sich die Antwort merken. Zuerst sollte man aber im zuständigen Konnfigurationsdialog Stop on main anhaken, sonst wird der Einzelschrittmodus nicht eingeschaltet und Eclipse sprint sofort zum ersten Breakpoint - falls man einen gesetzt hat.
Durch Mausklick auf den schwarzen Pfeil rechts vom Käfersymbol gelangt zum Konfigurationsdialog, in dem man Parameter zum Debuggen einstellen kann. Hier kann man dann Stop on main anwählen. Nur für spezielle Debugsituationen sind weitere Einstellungen notwendig.
Die erste Zeile enthält links die Registerkarten Debug (im Vordergrund) und Servers, sowie rechts die Registerkarten Variables (im Vordergrund) und Breakpoints. Die Karte Debug zeigt den Stack und damit die Teile des Programms, die gerade ausgeführt werden. Wichtig wird diese Ansicht vor allen Dingen dann, wenn man auf eine Exception läuft.
Die zweite Zeile übernimmt aus der Standardjavaansicht den mittleren Teil und das outline-Fenster
Die letze Zeile schließlich bringt die beiden Karten Console und Tasks.
In der Karte Variables trägt Eclipse nicht nur selbständig die Namen und Werte der Variablen ein, die bei den Einzelschritten aufgefunden werden, man kann auch in den Ablauf eingreifen, indem man die Variablen manipuliert. Ein notwendiges Feature, denn wer will schon durch alle Iterationen einer Schleife gehen, wenn der Fehler, wie es oft der Fall ist, am Ende liegt. Links daneben im Debugfenster wird der laufende Thread angezeigt. Darunter befindet sich das Codefenster. Die aktuelle Zeile wird hier grün angezeigt. Ist die letzte Anweisung überschritten so wird der Debugvorgang nicht automatisch beendet, was man am kleinen roten Quadrat am oberen Rand des Debugfensters erkennt. Will man das Programm erneut Debuggen, so beendet man das Debuggen händisch durch einen Mausclick auf das rote Quadrat und startet das Debuggen wieder mit F11. Will man wieder codieren, so schließt man die Debug-Ansicht über Window -> Close Perspective. Beim Wechsel zur früheren Ansicht wird auch der Debugmodus beendet.
Statt mit dem Tastenkürzels kann man das Debuggen auch durch Anklicken des kleinen roten Quadrats in der Registerkarte Debug links oben beenden. Das kleine rote Quadrat findet man nochmal auf der Registerkarte Console in der untersten Zeile.
Window -> Close Perspective
Zwei Varianten bieten sich an. Man kann zum einen ein Kürzel für Window -> Close Perspective einführen, etwa Ctrl+C, Ctrl+P oder - vielleicht besser - man sucht sich unter
Windows -> Preferences -> General -> Keys
den Eintrag Close Perspective (Debug) heraus und trägt dort das Kürzel Ctrl+C, Ctrl+D ein (C wie close, D wie debug).
Es gibt ganz einfach zu merkende Hotkeys:
Vorsicht bei step into: Eclipse kann nicht in den Quellcode von Methoden aus der API springen. Gibt es in einer grün markierten Zeile einen Aufruf einer Methode aus der API muß man F6 verwenden.
An Stelle der Hotkeys F5, F6, F7, F8 kann man auch die Symbole auf der Toolbar auf dem Debug-Tab anklicken.
Man beachte auch, daß es zum Beenden des Debug-Modus auch das Shortcut CTRL + F2 gibt.
Es ist sehr einfach einen Breakpoint zu setzten. Man geht zur entsprechenden Codezeile, setzt die Maus auf den linken grauen Rand und macht einen Doppelklick. Will man den Breakpoint löschen, wiederholt man den Vorgang.
F8
Es kann vorkommen, daß ein Breakpoint mehrmals erreicht wird, aber man ihn nicht immer braucht. Wechselt man vom Tab Variables zum Tab Breakpoints so sieht man eine Liste der Breakpoints die man gesetzt hat. Mit der Checkbox links vom Text kann man sie ein- und ausschalten.
Läuft man auf eine Exception, so wird das Debugfenster wichtig. Gemeldet wird die erste Exception des Stack Traces, meist braucht man aber die letzte. Die findet man dann im Debugfenster ganz unten. Hier bietet Eclipse das Setzen von Exceptionbrakpoints an, die man in der Registerkarte Breakpoints rechts oben eintragen kann.
Das Symbol mit dem J und dem Ausrufezeichen ist das richtige. Man erhält damit einen Dialog, indem man die Exception auswählen kann. Über die beiden Checkboxen kann man angeben, ob man bei auftretenden Exceptions das Debuggen beenden will.
Die Klasse Exception selbst zu wählen ist keine so schlechte Idee. Zudem hat man die Möglichkeit bestehende catch()-Zweige zu berücksichtigen oder nicht.