ABAP Debugger: Session vs External Breakpoints and Watchpoints
A session breakpoint stops execution only in the current user session, while an external breakpoint can stop code executed in a different HTTP/RFC session for the configured user and is therefore essential for OData, RFC and many Fiori calls. Watchpoints stop when a value/condition changes. Breakpoint type, user, application server and processing context must match the request or the debugger will never attach.
Practical reference for ABAP Debugger: Session vs External Breakpoints and Watchpoints, including how the mechanism works, when it is appropriate, where it fits in SAP runtime/architecture, a realistic example, decision guidance, failure patterns, S/4HANA direction and operational ownership.
Reviewed by an ERPClimb SAP consultant on 20 Sept 2026· 764 words
Esta página aún no está disponible en español.
What it is
The New ABAP Debugger can stop at static BREAK-POINT statements, dynamic session breakpoints, external breakpoints, exception breakpoints, message breakpoints and watchpoints. A session breakpoint is tied to the current internal/external session context and is ideal for SAP GUI dialog execution. External breakpoints are stored so requests entering through ICF/RFC under the same user can trigger debugging even though they run in another session. Debugger settings, system/client/user and request user identity all matter. Update, background and system-user processing require additional techniques beyond simply placing a session breakpoint.
When to use it
Use session breakpoints when you start the transaction/report yourself in the same GUI user session. Use external breakpoints for OData/Fiori/RFC/HTTP requests executed under your user or a user whose debugging authorization/context is intentionally configured. Use watchpoints when the key question is where a variable becomes wrong rather than which code path runs. Prefer conditional breakpoints to stopping thousands of loop iterations. On production, use traces/logs first and attach debugging only under controlled support procedures.
How it fits the stack
Debugger work sits alongside ST22, Gateway error logs, SAT/ST05, application logs and authorization traces. A dump may reveal the failing statement without a debugger; a performance issue may need SAT instead of step-through; an OData 500 often needs /IWFND/ERROR_LOG to identify the backend exception before setting a targeted breakpoint. Remote calls can execute under technical users, which explains why an external breakpoint for the developer's user is ignored.
A worked example
A Fiori save request reaches a RAP behavior implementation but a breakpoint set in ADT never triggers. The browser request is actually executed under a propagated business user different from the developer account. The team identifies the backend user from Gateway/request context, sets the permitted external breakpoint for that user in the correct system/client and repeats the request. The debugger stops immediately. The same logic called from a local test class would have worked with a session breakpoint.
How to choose
- Same GUI/session and user: session breakpoint is simplest.
- HTTP/RFC/Fiori call in another session: use an external breakpoint for the actual backend user.
- Unknown place where data changes: add a watchpoint/conditional breakpoint after narrowing the scope.
- Background/update work: use the dedicated debugging technique rather than waiting for a dialog breakpoint.
- Production: prefer logs/traces and reproduce in non-production before attaching live debugging.
Common pitfalls
- Setting an external breakpoint for the developer while the request runs under a technical or propagated user.
- Debugging the Gateway hub when business logic actually executes in a separate backend system.
- Using an unconditional breakpoint inside a huge loop and making the process unusable.
- Leaving BREAK-POINT statements in productive code paths.
- Stepping through performance problems that need runtime/SQL trace instead.
ECC, S/4HANA and clean core
The debugger remains fundamental in S/4HANA, RAP and classic code. ADT integrates breakpoints for modern ABAP development; OData/RAP requests still require the correct external-user context. ABAP Cloud allows debugging of permitted custom code but not arbitrary modification/access to restricted standard internals. Observability should increasingly complement, not replace, targeted debugging.
Whose problem this is
ABAP developers own breakpoint strategy and must respect debugging authorizations. Basis/security control production debugging access. Integration/Fiori teams supply request correlation and actual execution user/system so development can attach to the right context.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-technical-topics/abap-debugger-session-external-breakpointsERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.