
External debugging makes it possible for you to stop and debug ABAP programs that are running in the context of another user's session by setting breakpoints. External debugging covers both situations:
The program to be checked is running in another user session of the user who set the breakpoints.
The program to be checked is running in a user session of another user other than the one who set the breakpoints.
External debugging is specifically intended for debugging ABAP programs that process the following request types:
HTTP requests (HTTP debugging)
RFC requests (RFC debugging)
Processing an inbound RFC or HTTP request always takes place in the context of a newly-opened user session (HTTP/RFC session). This has the following consequences for debugging:
Programs don't run in the context of the user sessions where you set breakpoints.
Session breakpoints have no effect as they are only valid for the user session where they are set (local debugging). Breakpoint statements have no effect.
In the case of HTTP requests, the debugging program automatically closes after each HTTP roundtrip. This is also the case whenever you have a so-called "stateful" HTTP request. This prevents inactive debugging windows from getting stuck, if no more breakpoints can be reached. In contrast to the dialog scenario with the SAP GUI, no OK code can be executed in the browser using "/hx" to close the debugging window.
Therefore, external debugging makes it possible to debug ABAP components of application that use HTTP or RFC-based communication. The following SAP NetWeaver technologies belong to this:
Web browser-based interfaces (BSP, Web Dynpro, SAP EP, …)
ABAP-based Web services, ICF services, remote-enabled function modules
Java-ABAP communication (using SAP JCo, SAP JRA)