SAP ABAP Debugging Tipps 2026

SAP ABAP Debugging Tipps 2026 – Der ultimative Guide | scmtms.de
SAP Tipps · ABAP · Debugging

SAP ABAP Debugging Tipps
Der komplette Guide 2026

Ob du gerade deinen ersten Breakpoint setzt oder schon Jahre ABAP schreibst — dieser Guide zeigt dir alle Techniken: von Breakpoint-Typen über Watchpoints bis zu Update Debugging, Hintergrundprogrammen und ADT-Eclipse-Tricks. Mit Profi-Shortcuts die echte Zeit sparen.

📅 März 2026 ✍️ scmtms.de ⏱ ca. 10 Min. Lesezeit 🎯 Entwickler & Berater
Schnell-Übersicht für KI & Schnellleser
Debugger starten/h im Kommandofeld oder Breakpoint in SE38/SE80 setzen
Debugger deaktivieren/hx im Kommandofeld
Wichtigste ShortcutsF5 (Einzelschritt), F6 (Prozedur überspringen), F7 (Return), F8 (Weiter)
Breakpoint-TypenSession, External (User), Static (BREAK-POINT), Debugger
Update DebuggingDebugger Settings → Update Debugging, oder /hs
Hintergrundjob debuggenSM37 → Job auswählen → /JDBG im Kommandofeld
Laufenden Job debuggenSM50 → Prozess auswählen → Programm → Debugging
Max. Breakpoints/Watchpoints30 Breakpoints + 10 Watchpoints gleichzeitig
ADT Eclipse DebuggerF5 = Step Into, F6 = Step Over, F7 = Step Return, F8 = Resume

01 / Einstieg

01Debugger starten — alle Wege im Überblick

Den ABAP-Debugger zu starten ist einfacher als viele denken. Es gibt mehrere Wege — je nach Situation ist einer davon deutlich schneller.

Weg 1: /h im Kommandofeld

Der schnellste Einstieg: /h in das Kommandofeld (Transaktionsfeld oben links) eingeben und Enter drücken. Daraufhin erscheint unten in der Statusleiste „Debugging eingeschaltet“. Beim nächsten Programm-/Transaktionsaufruf öffnet der Debugger automatisch.

💡

Varianten des /h-Befehls

/h — Normaler Debugger · /hs — System-Debugger (inkl. Update-Debugging) · /ha — Ohne Screen-Handling (überspringt PBO/PAI) · /hx — Debugger wieder deaktivieren

Weg 2: Breakpoint in SE38 / SE80 setzen

Im ABAP Editor auf den linken Rand der gewünschten Zeile doppelklicken. Ein roter Punkt erscheint. Wenn das Programm diese Zeile erreicht, startet der Debugger automatisch. Alternativ: Cursor in die Zeile setzen und Strg+Shift+F12 drücken.

Weg 3: Direkt aus SE38 / SE80 starten

In SE38 unter Programm → Ausführen → Debugging, oder in SE80 per Rechtsklick auf das Programm → Ausführen → Debugging. Nützlich wenn kein spezifischer Breakpoint bekannt ist.

Weg 4: Aus ST22 (Laufzeitfehler)

Nach einem Dump in ST22: Kurzaufriss anzeigen → Direkt aus dem Fehlerbericht in den Debugger springen. Damit kannst du genau die Codezeile untersuchen, die den Fehler verursacht hat.

⚠️

Niemals im Produktivsystem debuggen

Im Debugger können Datenbankänderungen ausgelöst und Programmzustände verändert werden. Das Setzen von BREAK-POINT-Statements (Static Breakpoints) im Produktiv-Code ist gefährlich — sie halten das Programm für alle User an.


02 / Breakpoints

02Breakpoint-Typen: Session, External, Static & Debugger

Nicht alle Breakpoints sind gleich. Je nach Einsatzszenario ist ein anderer Typ die richtige Wahl. Der Unterschied liegt vor allem in Geltungsbereich und Lebensdauer.

🔵
Typ 1
Session Breakpoint
Gilt nur für die aktuelle SAP-GUI-Session. Wird beim Abmelden automatisch gelöscht. Standard beim Doppelklick im Editor.
Nur aktuelle Session
🟠
Typ 2
External Breakpoint
Bleibt nach dem Abmelden erhalten. Kann auch für andere User gesetzt werden — ideal zum Debuggen von RFC-Aufrufen und HTTP-Requests.
User-spezifisch, persistent
🔴
Typ 3
Static Breakpoint
Direkt im Quellcode: BREAK-POINT. (alle User) oder BREAK user_name. (nur für bestimmten User). Verbleibt im Code bis manuell entfernt.
Im Code hinterlegt
🟢
Typ 4
Debugger Breakpoint
Nur innerhalb einer aktiven Debugger-Session setzbar. Wird gelöscht sobald die Debugger-Session endet. Kann auf unbekannte Positionen gesetzt werden.
Nur in Debugger-Session

External Breakpoint für anderen User setzen

In SE38 oder SE80: Hilfsmittel → Einstellungen → ABAP-Editor → Debugging. Dort den Zielnamen eintragen. Nützlich wenn ein Prozess durch einen anderen User oder durch RFC ausgelöst wird und du ihn abfangen willst.

📌

Limit beachten: max. 30 Breakpoints + 10 Watchpoints

Pro Programm können gleichzeitig maximal 30 Breakpoints und 10 Watchpoints aktiv sein. Bei komplexen Debugging-Sessions lohnt es sich, nicht mehr benötigte Breakpoints zu löschen.


03 / Shortcuts

03Die wichtigsten Shortcuts & Navigationsbefehle

Schnelles Debugging beginnt mit Tastaturkürzeln. Wer die F-Tasten im Schlaf kennt, spart bei jedem Debugging-Einsatz wertvolle Minuten.

ShortcutFunktionWann verwenden?
F5Einzelschritt (Step Into)Jede Codezeile einzeln ausführen, auch in Methoden/FMs hineinspringen
F6Ausführen (Step Over)Methoden/FMs als Block ausführen ohne hineinzuspringen
F7Return (Step Out)Aktuellen FM/Methode verlassen und zurück zum Aufrufer
F8Weiter (Continue)Bis zum nächsten Breakpoint springen oder Programm beenden
Shift+F8Continue to CursorBis zur aktuellen Cursorposition ausführen
Shift+F12Goto StatementDirekt zu einer bestimmten Programmzeile springen (Codeblöcke überspringen)
Strg+Shift+F12Session Breakpoint setzenBreakpoint auf aktueller Cursorposition setzen
F2Display FieldVariableninhalt anzeigen (Cursor auf Variable)

Goto Statement — unterschätzter Turbo-Shortcut

Shift+F12 ist einer der wertvollsten Befehle: Du kannst Codeblöcke überspringen oder rückwärts springen, ohne eine neue Debugger-Session starten zu müssen. Ideal bei Schleifen, die du nicht 100x durchlaufen möchtest.


04 / Watchpoints

04Watchpoints — Variablenänderungen automatisch abfangen

Watchpoints sind das mächtigste Werkzeug wenn du nicht weißt, wo eine Variable gesetzt wird. Statt manuell durch hunderte Zeilen zu steppen, überwacht der Debugger automatisch die Variable und hält an sobald sie geändert wird.

Watchpoint setzen

  1. Im Debugger die Variable in der Variablen-Ansicht auswählen
  2. Rechtsklick → Watchpoint anlegen
  3. Oder: Tab „Watchpoints“ öffnen → Variablenname manuell eingeben
  4. Programm mit F8 weiterlaufen lassen — der Debugger stoppt automatisch bei jeder Wertänderung
🎯

Conditional Watchpoint

Watchpoints können auch mit einer Bedingung kombiniert werden: nur stoppen wenn lv_matnr = 'A0001'. Damit vermeidest du hunderte irrelevante Stopps in Schleifen. Im Watchpoint-Dialog einfach die Bedingung eingeben.


05 / Conditional Breakpoints

05Conditional Breakpoints — nur bei bestimmten Bedingungen stoppen

In Schleifen die tausende Durchläufe haben, ist ein normaler Breakpoint nutzlos. Conditional Breakpoints lösen nur aus, wenn eine definierte Bedingung wahr ist — zum Beispiel wenn eine bestimmte Materialnummer oder Auftragsnummer verarbeitet wird.

Conditional Breakpoint setzen (SAP GUI)

  1. Im ABAP Debugger auf den Breakpoint rechtsklicken → Bedingung ändern
  2. Bedingung in ABAP-Syntax eingeben: z.B. ls_item-matnr = 'TESTMAT001'
  3. Bestätigen — der Breakpoint-Icon ändert sich (Häkchen-Symbol)
„“ Beispiel: Bedingter Breakpoint in einer internen Tabelle
„“ Nur stoppen wenn Materialnummer = TESTMAT001

LOOP AT lt_items INTO ls_item.
  „“ Breakpoint hier mit Bedingung: ls_item-matnr = ‚TESTMAT001‘
  CALL METHOD me->process_item
    EXPORTING is_item = ls_item.
ENDLOOP.
💡

Statement Breakpoint in ADT

In ADT Eclipse gibt es zusätzlich den Statement Breakpoint: nicht an einer Zeile, sondern an einem ABAP-Schlüsselwort. Beispiel: Stopp bei jedem CLEAR-Statement überall im Programm. Im Breakpoints-View → Dropdown → „Add Statement Breakpoint“.


06 / Update Debugging

06Update Debugging — asynchrone Update-Tasks debuggen

Die typische Situation: Du speicherst Daten und bekommst die Meldung „Update wurde abgebrochen“. Der normale Debugger hilft dir hier nicht weiter — denn Update-Tasks laufen in einem separaten Update-Workprozess asynchron ab, an den der Debugger nicht automatisch angehängt ist.

Update Debugging aktivieren

Methode 1 — über Kommandofeld: /hs eingeben und Enter. Das aktiviert den System-Debugger zusammen mit Update Debugging.

Methode 2 — im Debugger selbst:

  1. Im ABAP Debugger: Einstellungen → Debugger-Einstellungen anzeigen/ändern
  2. Häkchen bei Update-Debugging setzen
  3. Speichern

Wenn Update Debugging aktiv ist, öffnet der Debugger automatisch sobald der Update-Workprozess die Update-Function aufruft — du kannst den genauen Fehler analysieren.

⚠️

Update Debugging blockiert den Update-Workprozess

Während du im Debugger bist, ist der Update-Workprozess blockiert. Im Entwicklungssystem kein Problem — im Qualitätssystem solltest du schnell arbeiten, damit andere Buchungen nicht warten müssen.

📘

ABAP Entwicklung — Espresso Tutorials

Das ABAP-Praxishandbuch von Espresso Tutorials — von Debugging über OO-ABAP bis S/4HANA Development. Ideal für Einsteiger und erfahrene Entwickler die tiefer in ABAP einsteigen wollen.

→ Zu Espresso Tutorials * Affiliate-Link — scmtms.de erhält eine Provision bei Kauf, für dich entstehen keine Mehrkosten.

07 / Batch Jobs

07Hintergrundprogramme & Batch Jobs debuggen

Hintergrundjobs laufen ohne User-Interaktion — der normale Debugger kann nicht einfach „attached“ werden. Es gibt aber zwei bewährte Wege.

Abgeschlossene Jobs — JDBG

Für bereits abgeschlossene Hintergrundjobs:

  1. SM37 aufrufen, den betreffenden Job auswählen
  2. Im Kommandofeld /JDBG eingeben und Enter
  3. Der Debugger startet und simuliert das Programm mit exakt denselben Selektionsvarianten wie beim Originallauf

Laufende Jobs — SM50

Für gerade laufende Hintergrundjobs:

  1. SM50 aufrufen (Prozessübersicht)
  2. Den laufenden Batch-Prozess in der Liste markieren
  3. Im Transaktionsmenü: Programm → Debugging
  4. Der Debugger hängt sich an den laufenden Prozess
💡

Job läuft zu schnell durch? Session Breakpoint Trick

Wenn der Job so schnell fertig ist, dass SM50 ihn nicht mehr anzeigt: In SE38 → Hilfsmittel → Einstellungen → Debugging → Session Breakpoint sofort aktiv aktivieren. Dann werden alle offenen Sessions sofort mit dem neuen Breakpoint aktualisiert.


08 / System Debugging

08System Debugging — tief in SAP-Standardcode

Manchmal endet die Debugging-Session an einer Stelle die du nicht mehr weiterverfolgen kannst, weil SAP-Systemprogramme aufgerufen werden. System Debugging gibt dir Zugriff auf diesen normalerweise versteckten Code.

System Debugging aktivieren

  • Im Debugger: Einstellungen → System-Debugging ein/aus
  • Oder: Kommandofeld /hs

Mit aktivem System Debugging ist der gesamte SAP-Systemcode durchstepbar. Nachteil: Der Call Stack wird erheblich größer, weil alle Systemprogramme sichtbar werden. Das kann die Übersicht erschweren.

⚠️

System Debugging benötigt spezielle Berechtigungen

Nicht jeder Entwickler hat automatisch Zugriff auf System Debugging. Das Debugging-Objekt S_DEVELOP mit dem Wert DEBU muss in der Benutzerrolle hinterlegt sein. Bei Bedarf mit dem BASIS-Team abstimmen.


09 / ADT Eclipse

09ABAP Debugger in ADT (Eclipse)

Wer mit den ABAP Development Tools (ADT) in Eclipse arbeitet, bekommt einen modernen, deutlich leistungsfähigeren Debugger als in der klassischen SAP GUI. Wichtig: Die Grundkonzepte sind gleich, die Oberfläche und einige Features unterscheiden sich.

Breakpoint in ADT setzen

  • Rechtsklick auf den linken Rand der Zeile → Toggle Breakpoint
  • Oder: Doppelklick auf den linken Rand
  • Breakpoints in ADT sind user-spezifisch und persistent — sie bleiben auch nach dem Abmelden erhalten
  • Programm muss aktiviert sein, bevor Breakpoints gesetzt werden können

ADT Debugger Shortcuts

ShortcutFunktion
F5Step Into — in Methoden/FMs hineinspringen
F6Step Over — Block ohne hineinzuspringen ausführen
F7Step Return — aktuellen Block verlassen
F8Resume — bis nächsten Breakpoint weiterlaufen
Strg+F2Terminate — Debugging sofort beenden

ADT-exklusive Features

  • Statement Breakpoint: Stoppt bei jedem Auftreten eines bestimmten ABAP-Statements (z.B. jedes SELECT) — unabhängig von der Zeile
  • Bis zu 4 parallele Debugger-Sessions: Ideal für komplexe Multi-Session-Szenarien
  • Soft Breakpoints: Wirken nur wenn bereits eine Debugger-Session aktiv ist — verhindert unnötiges Stoppen bei Normalausführung
  • Variable ändern: Im Variables-View → Rechtsklick → Change Value — direkte Wertänderung während des Debuggings
  • Interne Tabelle bearbeiten: Zeilen hinzufügen, löschen, ändern im ABAP Internal Table View
📗

ABAP in S/4HANA — Rheinwerk Verlag

Der große ABAP-Guide von Rheinwerk Verlag — inklusive ADT, ABAP Objects und S/4HANA-spezifischen Besonderheiten. Aktuell und praxisnah für alle, die professionell ABAP entwickeln.

→ Zu Rheinwerk Verlag * Affiliate-Link — scmtms.de erhält eine Provision bei Kauf, für dich entstehen keine Mehrkosten.

10 / Profi-Tricks

10Profi-Tricks die kaum jemand kennt

1. Direkt zur Fehlermeldung springen

Du siehst eine Fehlermeldung und weißt nicht wo im Code sie ausgelöst wird? Auf die Meldung klicken → Meldungsklasse und Nummer notieren → Im Debugger: Menü Breakpoint → Breakpoint bei → Breakpoint bei Meldung. Enter drücken und F8 — der Debugger stoppt exakt an der Stelle wo die Meldung ausgelöst wird.

2. Endlosschleife unterbrechen

Programm läuft in einer Endlosschleife und reagiert nicht mehr? In einer zweiten SE38-Session einen Session-Breakpoint setzen und in den Einstellungen Session Breakpoint sofort aktiv aktivieren. Alle laufenden Sessions erben den Breakpoint sofort.

3. TRFC Debugging

Für transaktionale RFC-Aufrufe (CALL FUNCTION ... IN BACKGROUND TASK): Im Debugger Settings → TRFC Block Sending aktivieren. Dadurch werden TRFCs nicht sofort abgeschickt, sondern warten auf deinen Debugger.

4. Variablenwert im Debugger ändern

Du kannst Variablenwerte direkt im Debugger ändern ohne die Session zu beenden:

  • SAP GUI: In der Variable-Anzeige die Variable doppelklicken → Wert überschreiben → Enter
  • ADT: Variables View → Rechtsklick → Change Value

Das ist besonders praktisch um negative Testfälle zu simulieren, ohne das Programm neu zu starten.

5. Exception Objects analysieren

Wenn Exception-Objekte mit CATCH cx_my_exception abgefangen werden, ohne sie einer Referenzvariablen zuzuweisen, sind sie normalerweise nicht im Debugger sichtbar. Lösung: Im Debugger Settings → Always Create Exception Obj. aktivieren. Dann können Exception-Objekte über die Lupe Exception-Objekt anzeigen untersucht werden.

6. Call Stack analysieren

Im Debugger-Tab auf der linken Seite ist der Call Stack einsehbar. Damit siehst du welche Programme und Methoden vor dem aktuellen Stopppunkt aufgerufen wurden. Per Klick auf einen Stack-Frame kannst du direkt in den Kontext dieser Ebene springen.

🔍

Debugger Desktop 3 — der bevorzugte Layout-Tipp

Im SAP GUI Debugger gibt es mehrere Layout-Ansichten (Desktops). Desktop 3 zeigt Code und Variablen gleichzeitig ohne Scrollen — besonders hilfreich bei Schleifen, internen Tabellen und verschachtelter Logik. Umschalten: im Debugger oben rechts zwischen Desktop 1–3 wählen.


11 / FAQ

11FAQ – Häufige Fragen zum SAP ABAP Debugging

Wie starte ich den SAP ABAP Debugger?
Den Debugger starten: (1) /h im Kommandofeld eingeben und Enter drücken — beim nächsten Programmaufruf öffnet er automatisch. (2) In SE38/SE80 einen Breakpoint per Doppelklick auf den Zeilenrand setzen und das Programm ausführen. (3) In ADT Eclipse: Rechtsklick auf Zeilenrand → Toggle Breakpoint, dann F9 (Run as ABAP Application in Debug Mode).
Was ist der Unterschied zwischen Session-Breakpoint und External Breakpoint?
Session-Breakpoints gelten nur für die aktuelle SAP-GUI-Session und werden beim Abmelden gelöscht — ideal für kurzfristiges Debugging. External Breakpoints (User-Breakpoints) bleiben nach dem Abmelden erhalten und können auch für andere User gesetzt werden — ideal zum Debuggen von RFC-Aufrufen oder HTTP-Requests die durch andere User oder externe Systeme ausgelöst werden.
Wie debug ich Hintergrundprogramme (Batch Jobs) in SAP?
Für abgeschlossene Jobs: In SM37 den Job auswählen, dann /JDBG im Kommandofeld eingeben — der Debugger simuliert das Programm mit den Originalvarianten. Für laufende Jobs: In SM50 (Prozessübersicht) den Batch-Prozess selektieren → Programm → Debugging. Bei sehr schnell abgeschlossenen Jobs empfiehlt sich das Aktivieren von „Session Breakpoint sofort aktiv“ in den Debugging-Einstellungen (SE38 → Hilfsmittel → Einstellungen).
Was ist Update Debugging und wann brauche ich es?
Update Debugging wird benötigt wenn Fehler in asynchronen Update-Tasks auftreten — erkennbar an der Meldung „Update wurde abgebrochen“. Diese Tasks laufen in einem separaten Workprozess und sind vom normalen Debugger nicht erreichbar. Aktivierung: Im Debugger Settings → Update Debugging einschalten, oder /hs im Kommandofeld eingeben. Danach öffnet der Debugger sobald der Update-Workprozess die Update-Function ausführt.
Was sind Watchpoints im ABAP Debugger?
Watchpoints halten das Programm automatisch an sobald sich der Wert einer bestimmten Variable ändert — unabhängig davon wo im Code. Ideal wenn unbekannt ist wo eine Variable gesetzt wird. Setzen: Im Debugger die Variable auswählen → Rechtsklick → Watchpoint anlegen, oder im Tab „Watchpoints“ manuell. Watchpoints können auch konditional sein: nur stoppen wenn z.B. lv_matnr = 'TESTMAT001'. Maximal 10 Watchpoints gleichzeitig möglich.
Wie finde ich schnell die Zeile die eine bestimmte Fehlermeldung auslöst?
Fehlermeldung anklicken → Meldungsklasse und Nummer notieren. Dann im laufenden Debugger: Breakpoint → Breakpoint bei → Breakpoint bei Meldung → Klasse und Nummer eingeben → OK. Dann F8 drücken. Der Debugger stoppt exakt an der Stelle im Code wo diese Meldung ausgelöst wird — ohne langes manuelles Durchsuchen.

💬 Noch Fragen zum SAP Debugging?

Lass es uns in den Kommentaren wissen — oder schau dir weitere ABAP-Guides auf scmtms.de an.

Quellen: SAP Community (ABAP Debugger Guide · New ABAP Debugger Tips and Tricks · Advanced ABAP Debugging) · SAP Learning Hub · SAP Help Portal ABAP Development Tools.

* Einige Links in diesem Artikel sind Affiliate-Links. Bei einem Kauf über diese Links erhält scmtms.de eine kleine Provision — für dich entstehen keine Mehrkosten. Wir empfehlen nur Produkte die wir selbst kennen und für gut befinden.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen
WordPress Cookie Plugin von Real Cookie Banner