Breakpoints dienen zur Unterbrechung der Programmausführung und Übergabe der Kontrolle an den ABAP Debugger.
Breakpoint-Arten
Es gibt folgende Arten von Breakpoints, die für verschiedenste Anwendungsfälle konzipiert wurden:
Setzt man einen Breakpoint
im ABAP Editor (SE38), so ist dies ein
Session-Breakpoint
oder ein
externer Breakpoint
. Sie können auch eine
Breakpoint-Anweisung im Quelltext des Programms verankern.
Sie können so eine Debugging-Sitzung initiieren (die Ausführung einer Anwendung wird erstmals unterbrochen und der ABAP Debugger startet).
Setzt man einen Breakpoint im Fenster des ABAP Debuggers, so ist es ein
Debugger-Breakpoint
.
Debugger-Breakpoints können während einer bereits bestehenden Debugging-Sitzung ergänzend dazugesetzt werden.
Folgende Rahmenbedingungen gelten:
Es können bis 30 Session-Breakpoints, externe Breakpoints und Debugger-Breakpoints gesetzt werden.
Ein Breakpoint ist entweder
aktiv oder
inaktiv
.
Nur aktive Breakpoints sind wirksam. Inaktive Breakpoints werden zur Laufzeit ignoriert.
Mit Werkzeugen des ABAP Debuggers können Sie externe Breakpoints, Session-Breakpoints und Debugger-Breakpoints verwalten. Siehe Breakpoints im ABAP Debugger verwalten . Breakpoint-Anweisungen werden nicht berücksichtigt.
Die Hauptmerkmale der einzelnen Breakpoint-Arten werden im Folgenden erläutert.
Session-Breakpoints
Mit Session-Breakpoints
können Sie Requests anhalten und debuggen, die Sie innerhalb derselben Benutzersitzung auslösen, in der Sie die Session-Breakpoints setzten. Sie eignen sich daher insbesondere
zum Debuggen von SAP-GUI-basierten Anwendungen.
Sie setzen einen Session-Breakpoint im ABAP Editor (SE38) als Zeilen-Breakpoint , dass heißt bei einer bestimmten Zeile des Quelltextes. Siehe Breakpoints im ABAP Editor verwalten . Darüber hinaus können während einer Debugging-Sitzung andere Breakpoint-Arten in Session-Breakpoints umgewandelt werden. Siehe Breakpoints im ABAP Debugger verwalten
Ein Session-Breakpoint ist gültig innerhalb aller Hauptmodi (externen Modi) der Benutzersitzung, in der er gesetzt wurde.
Wenn Sie die Benutzersitzung beenden (indem Sie sich vom System abmelden), werden alle in dieser Sitzung gesetzten Session-Breakpoints automatisch gelöscht.
Session-Breakpoints stehen insbesondere bei impliziten Neuanmeldungen, zum Beispiel beim Wechsel des Servers über die Transaktion SM51, nicht mehr zur Verfügung.
Allerdings können Sie Session-Breakpoints, die in der aktuellen Benutzersitzung gültig sind, zuvor in der Datenbank speichern und in einer weiteren Benutzersitzung zurückladen. Siehe: Debugger-Sitzungen verwalten.
Externe Breakpoints
Externe Breakpoints
(frühere Bezeichnung: User Breakpoints) gelten für die aktuelle Benutzersitzung in gleicher Weise wie Session-Breakpoints. Darüber hinaus bleiben sie wirksam in künftigen
Benutzersitzungen. Damit sind nicht nur Dialogsitzungen gemeint, sondern auch durch RFC- oder HTTP-Requests initiierte Sitzungen.
Mit externen Breakpoints können Sie Anwendungen debuggen, die RFC-Schnittstelle oder HTTP-Protokoll verwenden ( externes Debugging) . Dazu gehören über RFC gerufene Funktionsbausteine, Web-Services sowie Web-Dynpro-Anwendungen und BSP-Anwendungen.
Ein externer Breakpoint kann gelten:
für einen Benutzer innerhalb des aktuellen SAP-Systems
für einen Benutzer innerhalb des aktuellen Applikationsservers des aktuellen SAP-Systems
für Benutzersitzungen, die durch einen Request entstehen, der eine bestimmte Terminal-ID trägt.
Externe Breakpoints können Sie setzen:
im ABAP Editor (SE38) als Zeilen-Breakpoint , das heißt bei einer bestimmten Zeile des Quelltextes. Siehe Breakpoints im ABAP Editor verwalten .
in der Transaktion SICF
während einer Debugging-Sitzung können andere Breakpoint-Arten in externe Breakpoints umgewandelt werden. Siehe Breakpoints im ABAP Debugger verwalten
Externe Breakpoints sind 2 Stunden lang aktiv. Danach werden sie deaktiviert. Wird ein weiterer externer Breakpoint gesetzt, werden alle bis dahin gesetzten externen Breakpoints wieder aktiviert.
Externe Breakpoints gelten für den Kalendertag, an dem sie gesetzt wurden. Sie werden in der ersten Minute des nächsten Kalendertages (gegen Mitternacht) gelöscht.
Siehe auch: Externes Debugging (HTTP- und RFC-Debugging)
Debugger-Breakpoints
Debugger-Breakpoints
sind Breakpoints, die Sie im Fenster des ABAP Debuggers setzen.
Es gibt folgende Arten von Debugger-Breakpoints:
Zeilen-Breakpoints , die Sie bei bestimmten Zeilen im Quelltext setzen, analog zum Setzen von Breakpoints im ABAP Editor.
Zeilen-Breakpoints , die Sie für bestimmte Situationen definieren und, das System implizit Breakpoints bei der entsprechenden Zeile im Quelltext setzt:
Breakpoint bei Unterprogram
Breakpoint bei Funktionsbaustein
Breakpoint bei Methode
Breakpoint bei Quellcode
Breakpoint bei ST-Programm
Breakpoint bei Web Dynpro
dynamische Breakpoints , die Sie für bestimmte Situationen definieren, die keiner bestimmten Zeile im Quelltext zugeordnet werden. Dazu gehören:
Breakpoint bei Anweisung
Breakpoint bei Ausnahme
Sonstiges:
Breakpoint bei Stack-Änderung (Programm/Prozedurwechsel - Änderung im ABAP + Dynpro Stack)
Breakpoint bei unpräziser DECFLOAT Berechnung
Breakpoint bei Message
Sie setzen Debugger-Breakpoints im Fenster des ABAP Debuggers während einer bereits bestehender Debugging-Sitzung. Siehe Breakpoints im ABAP Debugger verwalten
Ein Debugger-Breakpoint gilt für die gesamte aktuelle Debugging-Sitzung (alle internen Modi und Hauptmodi).
Wird der Debugger geschlossen, so werden alle Debugger-Breakpoints gelöscht. Sie können dies vermeiden, indem Sie sie zuvor in Session-Breakpoints oder externe Breakpoints umwandeln. Siehe Breakpoints im ABAP Debugger verwalten
Breakpoint-Anweisungen
Breakpoint-Anweisungen sind ABAP-Anweisungen, die im Quelltext des Programms enthaltene Breakpoints darstellen.
Ein solcher Breakpoint kann zur Laufzeit aktiv sein:
für alle Benutzer
für einen bestimmten Benutzer
wenn eine bestimmte Checkpoint-Gruppe aktiv ist.
Breakpoint-Anweisungen können Sie nur in der Entwicklungsphase hinzufügen oder löschen, indem Sie den Quelltext des Programms modifizieren. Siehe Breakpoint-Anweisungen
Werkzeuge des ABAP Debuggers verwalten sie nicht.
Session-Breakpoints, externe Breakpoints und Debugger-Breakpoints sind flexibler als Breakpoint-Anweisungen: Sie können zur Laufzeit angelegt und mit Werkzeugen des ABAP Debuggers verwaltet werden (beispielweise aktiviert und deaktiviert). Der Quelltext des Programms muss dabei nicht modifiziert werden.