ABAP Tools - Arbeiten mit Eclipse (Mehrere Debugging-Sessions)
Wie werden eigentlich mehrere Debugging-Sessions in den ABAP Development Tools in Eclipse verwaltet? Mehr Informationen hier.
Inhaltsverzeichnis
In einem älteren Artikel über das Setzen von Sperren, sind wir in einem Nebensatz auf die Arbeit mit mehreren Debugging Sessions zu einem Stück Quellcode eingegangen. In diesem kurzen Artikel schauen wir uns einmal die Details dazu an.
Einleitung
In der SAP GUI hattest du bisher die Wahl zwischen der gleichen Session oder einer neuen Session, wenn es um den Debugger ging. Dabei wurde in der gleichen Session der klassische Debugger geladen und in einer zusätzlichen Session der neue Debugger, der hübscher ist und mehr Funktionen bietet. In Eclipse startet, je nach Einstellung, die Debugging Perspektive und zeigt dir die entsprechenden Tools an, um mit dem Debuggen zu starten.
Vorbereitung
Damit wir uns im nächsten Schritt den Debugger anschauen können, benötigen wir Quellcode, den wir auch debuggen können. Dazu legen wir eine kleine ausführbare Klasse im System an.
CLASS zcl_bs_demo_debug DEFINITION
PUBLIC FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
ENDCLASS.
CLASS zcl_bs_demo_debug IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
DATA(ld_first) = 5.
DATA(ld_second) = 7.
DATA(ld_result) = ld_first + ld_second.
IF ld_result > 10.
out->write( |The result is: { ld_result }| ).
ENDIF.
ENDMETHOD.
ENDCLASS.
Perspektive
Im rechten oberen Teil von Eclipse findest du verschiedene Perspektiven, die du bereit in der Vergangenheit einmal genutzt hast. In diesem Beispiel findest du verschiedene Perspektiven, die man zu unterschiedlichen Zwecken einsetzen kann.
Eine Perspektive ordnet verschiedene Views auf dem Bildschirm an und speichert die Informationen in der Perspektive. Daher benötigst du nicht unbedingt mehrere Perspektiven für die Arbeit, es wird aber empfohlen, da du unterschiedliche Views für jeweilige Situationen benötigst.
Debugging
Bevor wir Debuggen können, müssen wir einen Breakpoint im Coding setzen. Dazu stehen uns zwei Varianten zur Verfügung, einmal über das Kontextmenü und einmal per Doppelklick. Im Bild werden einmal beide Varianten gezeigt und ausgeführt.
Mit F9 können wir nun die ausführbare Klasse starten. Ist der Breakpoint gesetzt, dann wird nun in die Debugger Perspektive gewechselt oder es kommt zumindest die Meldung, ob du in diese Perspektive wechseln willst. Wir empfehlen die Nutzung der eigenen Perspektive. Nach dem Wechsel erhalten wir die folgende Perspektive.
Hinweis: Die Einstellungen der Perspektive kannst du frei für dich gestalten. Wir haben die Ansicht ähnlich des neuen Debuggers in der SAP GUI konfiguriert, da es den Wechsel einfacher macht.
Sessions
Fokus werden wir in diesem Artikel vor allem auf die View "Debug" setzen, da hier der sogenannte Callstack zu finden ist. Ähnlich wie in der SAP GUI sehen wir den Aufrufstack bis zum aktuellen Zeitpunkt. Gleichzeitig können wir per Doppelklick auf eine andere Stelle dorthin springen und uns die Variablen und den Quellcode darum anschauen, oder einen Breakpoint setzen, wenn wir weiter oben Debuggen wollen.
Anhand des Stacks sehen wir auch, dass wir uns gerade in einer ausführbaren Klasse befinden und diese durch den ADT Endpunkt im System gestartet wurde. Im nächsten Schritt debuggen wir einige Schritte weiter bis in die Output Methode und starten noch einmal die Klasse per F9, damit erzeugen wir eine zweite Debugging-Session im System. In dem View siehst du nun zwei Sessions unter unserem User.
In der nächsten Demo springen wir zwischen den beiden Debugging-Session hin und her und auch einmal im Stack. Die Arbeit mit mehreren Sessions kann leicht über den View durchgeführt werden.
Session beenden
Wie beenden wir nun die Sessions, wenn wir mit dem Debugging fertig sind, und welche Auswirkungen hat das auf den folgenden Ablauf? Du kannst jeweils im View "Debug" auf die einzelne Session per Rechts-Klick drücken und erhältst über das Kontextmenü weitere Optionen.
Folgende Optionen stehen dir zur Verfügung:
- Resume - Ist das klassische F8 im Debugger, lässt die Session weiter laufen bis zum Ende oder bis ein weiterer Breakpoint erreicht wird.
- Terminate - Die Debugging-Session und der Programmablauf wird abgebrochen. Damit wird das restliche Coding nicht mehr ausgeführt.
- Disconnect - Die Debugging-Session wird beendet, der Programmablauf wird fortgesetzt. Damit kannst du deine Session beenden und die Logik wird normal fortgesetzt.
Zusammenfassung
Hier noch eine kure Zusammenfassung der wichtigsten Punkte zur Arbeit mit mehreren Sessions:
- Du findest die verschiedenen offenen Sessions im View "Debug", dazu musst du nicht unbedingt in der Debug-Perspektive sein.
- Die Session stellt auch immer den kompletten Callstack dar, damit du zwischen den verschiedenen Ebenen navigieren kannst.
- Du kannst viele offene Debugging-Sessions halten und musst keine Angst beim Remote-Debugging haben, dass dir die Modi ausgehen.
- Mit Terminate und Disconnect stehen dir zwei Funktionen zur Verfügung, um deine Debugging-Session zu Ende zu bringen.
Fazit
Die Arbeit mit verschiedenen Debugging Sessions ist so einfach wie in der SAP GUI, die Session werden aber einfacher in einem Fenster zusammengefasst und müssen nicht über verschiedene SAP GUI Modi gesucht werden.