Académique Documents
Professionnel Documents
Culture Documents
Der Debugger ist ein Programmierwerkzeug, mit dem ABAP-Programme zeilen- oder abschnittsweise
ausgefhrt werden. Durch seinen Einsatz ist es mglich, sich die Inhalte von Datenobjekten anzeigen
zu lassen und die Ablauflogik von Programmen zu berprfen.
Im Moment sind zwei Arten des Debugging mglich, nmlich Debugging mit
dem Klassischen Debugger fr Release-Stnde 6.40 oder Debugging mit dem Neuen Debugger,
der ab Release 6.40 verfgbar ist. Die Hauptunterschiede zwischen Klassischem und Neuem ABAPDebugger sind folgende:
Der klassische Debugger luft im selben Rollbereich wie die zu analysierende Anwendung
(Debuggee). Er wird daher im selben Fenster wie die Anwendung angezeigt. Mit dieser Technologie
sind jedoch einige Restriktionen verbunden. So knnen beispielsweise aus technischen Grnden
einige ABAP Programme (z.B. Konvertierungs-Exits) nicht im Debug-Modus analysiert werden. Die
schwerwiegenste Restriktion aber ist, dass zur Gestaltung der Debugger-Oberflche keine ABAPTechnologie verwendet werden kann und damit der Weg zur Gestaltung einer modernen
Benutzeroberflche verbaut ist.
Der neue Debugger wird dagegen in einem eigenen externen Modus (Debugger) ausgefhrt,
whrend die zu analysierende Anwendung (Debuggee) einen zweiten externen Modus belegt. Durch
diese Technologie bietet sich die Mglichkeit, die Benutzeroberflche des Debuggers mit ABAP-Mitteln
frei zu gestalten.
Der Neue Debugger bietet dem Benutzer eine flexible und frei konfigurierbare Oberflche mit mehr als
acht Desktops. Auf diesen knnen je nach Wahl des Benutzers gleichzeitig bis zu vier Werkzeuge frei
platziert und arrangiert werden, zum Beispiel die Anzeigen von Quelltexten oder Strukturen. Damit hat
der Anwender die Mglichkeit, die Oberflche des Debuggers nach seinen individuellen
Anforderungen zu gestalten.
Ab Release 6.40 kann man die Art des Debugging frei whlen, indem im ABAP-Editor
unter Hilfsmittel Einstellungender Klassische oder der Neue Debugger ausgewhlt wird.
Auch das Umschalten whrend ein Debugger-Sitzung ist jederzeit im Men Debugging mglich.
Ab Release 7.00 ist der Neue ABAP Debugger der Default-Debugger.
In der folgenden Uebung wird der Debugger durch Eingabe von /h gestartet und ist danach so lange
aktiv, bis die Kontrolle in Folge einer Benutzeraktion wieder an die Anwendung bergeht. Der
Debugger bekommt erneut die Kontrolle, wenn ein Breakpoint erreicht wird oder wenn die Anwendung
den Debugger explizit durch /h aktiviert. Der Modus der Anwendung unterliegt dann so lange der
Kontrolle des Debugger-Modus, bis der Anwendungs-Modus geschlossen oder der Debugger-Modus
explizit durch /hx beendet wird.
Transaktion
Programm
: SA38
: sapbc_data_generator
=================================================================================================
Mit der Einstellung "Session-Breakpoints sofort aktiv" werden auch bereits laufende Transaktionen und Programme sofort mit
den neu gesetzten Session-Breakpoints synchronisiert. Damit kann man dann z.B. ein lang laufendes Programm unterbrechen
und in den Debugger zwingen, indem man in einem parallelen Externen Modus derselben Anmeldung einen
Session-Breakpoint an der richtigen Stelle setzt. (Testen wir spter)
=================================================================================================
Einzelschritt
Ausfhren
Return
Weiter
Vorgehen
Transaktion
Programm
>
: SE38
: Z_KAUFLAND_UEBUNG_1
<
>
>
<>
<
<
>
<>
<
===========================================================================
Die Zeit, die der auf Eingabe wartende Neue Debugger aktiv ist, wird durch den Profilparameter
rdisp/max_debug_lazy_time begrenzt, der standardmssig auf 600 Sekunden eingestellt ist.
Nach Ablauf dieser Zeitspanne wird der Debugger-Prozess automatisch beendet und die Kontrolle
wieder an die Anwendung bergeben. Mit Hilfe der Transaktion RZ11 kann der Systemadministrator
den Wert dieses Parameters ndern, indem er die Funktionen ndern Wert ndern aufruft.
===========================================================================
>
<>
<
Startmglichkeit 1
Ggf startet der Debugger in einer Routine die Sie nicht zuordnen knnen.
Passiert sehr oft bei Selektions-Options
10
11
Vorgehen :
weiter mit
/h
>
< oder F8
<
weiter mit
2 x zurck
Startmglichkeit 2
12
13
5. Break-Points
Neben dem direkten Ausfhren eines ABAP-Programms im Debugger ist es mglich, durch exakte
Wahl eines Haltepunktes den Debugger-Aufruf zu starten. Dies wird durch die Platzierung eines oder
mehrer Haltepunkte im Programm, den sogenannten Breakpoints, erreicht. Ein Breakpoint ist ein
Signal im Programm, das den ABAP-Laufzeitprozessor anweist, die Ausfhrung an einer bestimmten
Position im Quelltext zu unterbrechen. Erst beim Erreichen dieser Position wird der Debugger aktiviert.
Statische Breakpoints
Statische Breakpoints sind ohne Angabe eines Benutzernamens immer benutzerunabhngig. Sobald
ein Benutzer einen statischen Breakpoint im ABAP-Quelltext mit der Anweisung BREAK-POINT oder
BREAK name gesetzt hat, hlt das Programm bei jedem Benutzer oder nur beim Benutzer name an
dieser Stelle an. Dieses Vorgehen ist nur in der Entwicklungsphase einer Anwendung sinnvoll, wenn
die Programmausfhrung stets an der gleichen Stelle unterbrochen werden soll.
Test
14
Ein statischer Breakpoint bleibt immer erhalten, so lange die Anweisungen BREAKPOINT oder BREAK-POINT namenicht aus dem Quelltext entfernt werden
Dynamische Breakpoints
Dynamische Breakpoints sind benutzerabhngig. Sie sollten daher verwendet werden, wenn das
Programm nur unterbrochen werden soll, solange Sie es selbst ausfhren, nicht jedoch bei der
Ausfhrung durch andere Benutzer. Beim Abmelden vom SAP-System werden alle dynamischen
Breakpoints automatisch gelscht.
Dynamische Breakpoints sind flexibler als statische Breakpoints, da sie zur Laufzeit gelscht oder
deaktiviert werden knnen. Sie knnen bis zu 30 dynamische Breakpoints setzen, ohne den
Programm-Quelltext zu verndern. Es gibt dabei sowohl die Mglichkeit Breakpoints im ABAP Editor
oder direkt im Debugger zu setzen:
Test
Entfernen Sie den statischen Break-Point und aktivieren Sie ihr Programm
15
mit dem Setzen eines Session-Breakpoints in einem Externen Modus einer Anmeldung ein laufendes
Programm in den Debugger gezwungen werden, das in der selben Anmeldung ( z.B. in einem anderen
Externen Modus) luft und das im weiteren Verlauf die Stelle an der der Session-Breakpoint gesetzt
wurde ausfhren will.
User-Breakpoints
User-Breakpoints (frher Externe Breakpoints) gelten fr alle Anmeldungen des Benutzers auf dem
aktuellen Server des aktuellen Systems. User-Breakpoints werden speziell bentigt, wenn man BSPoder Web-Dynpro-Anwendungen debuggen mchte. Die Anmeldung erfolgt in diesen Fllen ja nicht
ber das SAP-Gui sondern z.B. ber einen Browser. Daher muss der Breakpoint schon vor der
Anmeldung gesetzt worden sein.
Die Gltigkeit von User-Breakpoints ist zeitlich begrenzt und betrgt 2 Stunden.
Test
Entfernen Sie den statischen Break-Point und aktivieren Sie ihr Programm
Setzen Sie einen Session-Breakpoint im neuen Editor
16
17
Erffnen Sie jetzt einen 2.Modus und starten die Transaktion SE38
>
<
18
19
20
21
Test
Setzen Sie einen Session-Breakpoint in Zeile 14 und starten ihr Programm bis zum 1.Breakpoint
Dann ber den Pfad
Pfad Selektieren
22
23
Statement Do eingeben
Block oder Zeile wird markiert. Testen Sie . beenden Sie dann den Debugger und die Applikation und
entfernen die Endlosschleife
Breakpoints bei Quellcode
Mit dieser speziellen Form von dynamischen Breakpoints knnen Sie ein Programm unterbrechen,
unmittelbar bevor eine ABAP-Anweisung in Zeile ...durchgefhrt wird. Voraussetzung ist das Das
definierende Programm im Debug-Modus ausgefhrt wird
testen Sie
In der Write-Ausgabe soll bei Flug 1699 gestoppt werden . Realisieren Sie dieses Vorhaben
24
25
Testen Sie
26
27
6. Watchpoints
hnlich dem Breakpoint ist der Watchpoint ein Haltepunkt im Programm, der den ABAPLaufzeitprozessor anweist, die Ausfhrung einer bestimmten Position im Quelltext zu unterbrechen. Im
Unterschied zum Breakpoint aktiviert ein Watchpoint den Debug-Modus jedoch erst, wenn sich der
Inhalt eines Feldes ndert. Wie auch dynamische Breakpoints sind Watchpoints benutzerabhngig, so
dass die Programmausfhrung anderer Benutzer nicht beeintrchtigt wird. Watchpoints knnen Sie
nur im Debugger definieren.
Watchpoints werden im Debugger fr spezifische Felder gesetzt. Mit einem Watchpoint knnen Sie
nderungen eines bestimmten Feldes feststellen. Der Debugger unterbricht die Ausfhrung des
Programms, sobald sich der Feldinhalt ndert. Sie knnen insgesamt bis zu fnf Watchpoints im
Programm setzten , wobei auch Watch-points fr Strings mglich sind.
Das Setzen eines Watchpoints auf eine Interne Tabelle ist u.U. mit Performance-Einbuen bei der
Laufzeit des Programms und mit erhhtem Speicherverbauch zu rechnen.
Grund dafr ist, dass fr den Watchpoint auf eine Tabelle (wie fr jeden anderen Watchpoint auch) ein
Clone des ursprnglichen Datenobjektes angelegt wird. Ist die Tabelle, auf die der Watchpoints
gesetzt wurde sehr gro, so muss bercksichtigt werden, dass der Clone dieselbe Gre haben
wird. Bei sehr groen Internen Tabellen kann dies zu Speicherengpssen fhren.
Test
Legen Sie einen lokalen Watchpoint an der ohne Bedingung wie ein Break-Point fungiert
Testen Sie
Stoppen Sie bei Carrid = LH + Connid = 0401
28
29
Ikone anklicken
<
8. Quelltext
Mit dem Quelltextwerkzeug knnen Sie sich den aktuellen Quelltext eines Programms oder Dynpros
anzeigen lassen.
Quellcode mit den Optionen:
Automatische Sourceerkennung
Dieser Service erkennt die bequemste Anzeigeart fr den Quelltext und zeigt ihn
entsprechend an.
ABAP Bytecode
Dieser Service zeigt den Quelltext in ABAP-Bytecode an. Er wird nur von SAPMitarbeitern verwendet.
30
9. Data Explorer
Der Data Explorer ist ein Werkzeug zur Darstellung beliebiger Variableninhalte und Datenobjekte
eines ABAP-Programms im Debugger. Die Anzeige erfolgt in einer Baumstruktur, was die
hierarchische Darstellung von tiefen Strukturen, Tabellen und Objekten innerhalb eines Werkzeugs
ermglicht.
31
10.
32
Stack
Im Werkzeug Stack wird der aktuelle Aufrufstack angezeigt. Es kann der reine ABAP-Stack, der
Dynpro-Stack oder - wie in der Abbildung - Dynpro- und ABAP-Stack zusammen angezeigt werden.
Von jeder ABAP-Stackzeile kann zum Editor wie auch zum Kontext des Stackeintrags navigiert
werden.
Wie aus der obigen Abbildung hervorgeht, werden fr jede Stackstufe folgende Informationen bereit
gehalten:
Stacktiefe
Ereignistyp
Ereignisname
Programmname
Includename
Zeile
Ein Doppelklick mit der linken Maustaste innerhalb einer Zeile, jedoch auerhalb der
SpalteNavigation, setzt den Debugger in den Kontext dieser Stackstufe. Danach sind zum Beispiel die
lokalen Variablen sichtbar, die dort definiert wurden. Ist der Editor in diesem Arbeitsbereich aktiv, dann
wird der zu dieser Stufe gehrende Quelltext angezeigt.
Ein Doppelklick auf die Ikone der Funktion Navigiere zum Editor, die sich in der
Spalte Navigationbefindet, verzweigt in den ABAP-Editor bzw. fr ein Dynpro zum Screen Painter und
zeigt dort den Quelltext der zuletzt durchlaufenen Position dieser Programmeinheit an.
11.
In der Variablenschnellanzeige knnen Sie sich beliebige Datenobjekte samt aktuellen Inhalten und
technischen Eigenschaften anzeigen lassen. Auerdem knnen Sie dieses Werkzeug benutzen, um
den Inhalt von Einzelfeldern zu ndern.
12.
Speicheranalyse
Mit dem Werkzeug Speicheranalyse knnen Sie sich den aktuellen Grad der Speicherausnutzung
anzeigen lassen.Hierzu bietet das Werkzeug zwei Anzeigebilder mit verschiedenen Informationen.
Erkennen Sie Ihre Speicherbelegung durch eine Speicheranalyse
Starten Sie ihr Programm im Debug-Mode
Holen Sie sich das neue Werkzeug
33
34
13.
Wenn der Trace noch nicht eingeschaltet ist schalten Sie den Trace ein
35
36
Klicken Sie das Fernglas an und suchen Sie die Tabelle SPFLI
37
<
<
38
Inhalt >
<
39
40
14.
- Select
- Loop
Starten Sie ihr Programm im Debug-Mode
Whlen Sie das neue Werkzeug Trace
41
Stoppen Sie ihren Trace und lassen sich die Daten anzegen
15.
42