Try OpenEdge Now
skip to main content
Debugging and Troubleshooting
OpenEdge Debugger : Using System Handles for Debugging : Using the DEBUGGER system handle to start and control the Debugger

Using the DEBUGGER system handle to start and control the Debugger

Any technique you use to run the Debugger from an ABL procedure runs the Debugger in either application or stand-alone mode. (For an introduction to application and stand-alone mode, see Introduction.) Each technique allows your application to interact with the Debugger context in a different way, allowing more or less control of the Debugger from your invoking application. These techniques are:
*Application mode — An ABL program calls the INITIATE( ) and SET-BREAK( ) methods. At the first breakpoint specified by the SET-BREAK( ) method, the Debugger runs and takes control of theprocedure in which the breakpoint is set as the initial procedure in the Debugger context. In effect, the invoking procedure debugs itself. You can use this technique to implement a Debugger tool that debugs a specified subprocedure under ABL control, and optionally make the invoking procedure invisible to the Debugger context.
*Stand-alone mode (as a tool of your application) — An ABL program calls the DEBUG( ) method. The invoking procedure blocks until the Debugger returns (exits). In effect, the Debugger runs as a subroutine or tool of the invoking procedure and can debug only procedures you run from the Debugger. In other words, the invoking procedure is not part of the Debugger context.
* Using the DEBUGGER system handle in application mode