Debugger

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Siehe Fehlerbehandlung.

Siehe Kategorie:Fehlerverarbeitung.

Siehe Kategorie:Debugging.

Siehe Basis.

Siehe SAP-Codingvorlagen im Editor.

Der Debugger ermöglicht zur Laufzeit eine Codeanalyse von ABAP Programmen, Funktionsbausteinen und Web Dynpros u. a. Das Coding kann hier zeilen- und modulabschnittsweise durchlaufen werden. Der Codingablauf kann während der Laufzeit inklusive der Variablenwerte analysiert werden.

Ab Release 6.40 steht ein Neuer Debugger zur Verfügung. Es kann zwischen dem Neuer Debugger und dem alten Debugger gewählt werden. Der Debugger kann auch während des Debuggens gewechselt werden. Der neue Debugger ist wesentlich mächtiger und flexibler als der alte Debugger und daher sollte immer der neue Debugger gewählt werden als Debuggingwerkzeug.

Ab Release 7.00 ist der neue ABAP Debugger der Standarddebugger. Hier wird der neue Debugger mit seinen wichtigsten Funktionen vorgestellt.

Neuer Debugger

Break-Points

Transaktion SAAB

In der Transaktion SAAB kann man Checkpoint-Gruppen definieren. Im Coding kann man auf diese Checkpoint-Gruppe verweisen

break-point id ZTEST.

In der Transaktion SAAB kann man dann für diese Checkpoint-Gruppe einstellen, ob dieser dynamische Break-Point an dem Tag aktiv sein soll. Das Programm spring dann für den eigenen User an dem heutigen Datum in dem aktuellen System in den Debugger, sofern die Debugging-Berechtigung vorhanden ist.

Ganz praktisch ist es auch, dass SAP viele Checkpoint-Gruppen angelegt hat, die man selber auch im Qualitäts- oder Produktiv-System aktivieren kann.

Modularisierungseinheiten

Ein Programm kann aus lediglichen einem Hauptprogramm bestehen, aber meist wird man ein Programm kapseln in Modularisierungseinheiten, was der Übersicht sehr zugute kommt und ein Programm wesentlich einfacher pflegbar macht. Je nach Anforderung und Detaillierungsgrad in

  • Methode einer globalen Klasse
  • Methode einer lokalen Klasse
  • Funktionsbaustein
  • Form-Routine
  • Module (im PBO/PAI)

Ein Include ist hier ein Spezialfall einer Modularisierung, weil ein Include ein eigenständiges Entwicklungsobjekt ist, aber das Coding sich im Programm zur Laufzeit genauso verhält als wenn das Coding im Hauptprogramm stehen würde.

Tastenkürzel/Shortcuts (F5, F6, F7, F8, strg+f, etc.)

  • F5 = Einzelschritt (in Unterprogramme Form-Routinen, Methoden, Funktionen wird reingesprungen)
  • F6 = Einzelschritt (Unterprogramme werden als Ganzes ausgeführt)
  • F7 = Unterprogramm wird verlassen und nach Aufruf Forsetzung
  • F8 = Ausführen Programmcode oder Sprung bis zum nächsten Breakpoint.
  • STRG + F = Suche im aktuell sichtbaren Programmcode
  • Siehe Tastenkombinationen#Debugger

Suche nach Coding mit strg+f

  • Oft möchte man beim Debuggen spontan eine bestimmte Stelle aufrufen. Hier kann mit der Tastenkombination "strg+f" ein Suchfenster öffnen. Es ist es oft empfehlenswert die Checkbox "Genauer Wortlaut" rauszunehmen, damit nicht nur nach kompletten Worten gesucht wird, sondern auch Teilstrings von Worten. Wenn man den genauen Wortlaut kennt, sollte man diese Checkbox jedoch auswählen, um die Treffenliste kurz zu halten
  • In "Suchen nach" gibt man den gesuchten String ein. Nach ENTER oder "Weiter suchen" sucht er im aktuellen Programm nach dem String und markiert ihn. Mit "weiter" werden weitere Fundstellen angesprungen.
  • Hier im Beispiel wird nach "fill_itab_primaerver" gesucht und er findet die Form-Routine ""fill_itab_primaerverp", da die Checkbox "Genauer Wortlaut" deaktiviert ist.
  • Findet man so eine wichtige Codingstelle ist es oft empfehlenswert hier einen Breakpoint zu setzen.

DebuggerNew162.jpg

Watchpoint

Reiter "Standard"

DebuggerNew26.jpg

Aufrufhistorie "ABAP und Dynpro-Stack"

Lokale und Globale Variablen

Ist der obere Reiter "Standard" aktiv, dann kann man unten rechts mit dem Reiter "Locals" sich die lokalen Variablen der Modularisierungseinheit (hier Methode) anschauen und mit dem Reiter "Globals" die globalen Variablen.


An diesem Symbol sieht man, dass hier CV_ERROR ein Changing-Parameter der Methode ist.

DebuggerNew21.jpg


ME ist die Selbstreferenz auf das Objekt, in dem das Coding ausgeführt wird.

DebuggerNew22.jpg


Unter "Globals" sieht man die globalen Variablen des Programms. In diesem Fall eine Reihe von internen Tabellen.

DebuggerNew23.jpg


Unter dem Reiter „Locals“ sieht man einige Variablen, die innerhalb der Methode lokal definiert sind, z. B. LT_FCAT und LT_SORT. Bei Methoden ist der Reiter „Lokals“ noch nützlicher, da die Übergabeparameter der Methode nicht direkt im Coding zu sehen sind im Gegensatz z. B. zu den Parametern von Funktionsbausteinen.

DebuggerNew24.jpg


In der Methode ALV_FCAT ist ein Returningparameter FT_FCAT zu sehen.

DebuggerNew25.jpg

Variablenwerte im Debugger ändern

Häufig möchte man im Debugger zu Testzwecken Variablen ändern. Dies ist standardmäßig erlaubt im Debugger, sofern es nicht explizit durch die Berechtigungsvergabe ausgeschlossen wird, was bei manchen Kundensystemen (v. a. im Produktivsystem) aus Sicherheitsgründen gemacht wird.

Hier ist in der Variablen LV_SEE_LUFTFRACHT kein Wert. Durch den Check würde die Routine verlassen. Das möchte man nun nicht.

DebuggerNew12.jpg

Man holt sich die Variable in die Anzeige durch Doppelklick auf die Variable. Nun kann man den Variablenwert ändern durch Klick auf den Bleistift DebuggerNew13.jpg. Im Feld "Wert" wird nun ein "S" eingetragen und mit ENTER bestätigt.

DebuggerNew14.jpg

Der Debugger prüft nun erfolgreich CHECK und der weitere Programmablauf kann ohne Probleme debuggt werden.

DebuggerNew15.jpg

Debuggerdesktop sichern

Debugger - window start max sichten.jpg

Anmerkung: Pro Desktop sind maximal vier Desktopsichten möglich.

Desktop mit arrangierten Sichten sichern/laden

Debugger - Sichten sichern.jpg

Bereits gesicherte Sitzungen, können hier durch den Menüpunkt 'Laden' wieder hergestellt werden.

Debugger - sichten sichern Dialog AnFr.jpg

Der Sitzungsname START_UP ist ein vordefinierter Sitzungsname, der beim Debuggerstart verwendet wird.

Reiter Diff

Debugging Laufzeitfehler/Shortdump (Transaktion ST22)

Debugger Bugs

Hintergrundjob debuggen

SAP-Popupbildschirm debuggen

Tabelleninhalte ändern in SE16/SE16N über Debugger

Werte ändern in SE16N

Werte ändern in SE16

Web-Links

SAP-Bibliothek
Debugger (alt & neu)
  • SAP NetWeaver® Process Integration 7.1 SPS 11, November 2010
SAP-Bibliothek
Debugger (alt & neu)
  • SAP NetWeaver® 7.0 einschließlich Enhancement Package 1 Support Package Stack 07 und BI Content Add-On 4 SP 03, Juli 2010
SAP-Bibliothek
Debugger (alt & neu)
Debugger (alt)

Literatur