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.