Excluding sections of source code from debugging

From m204wiki
Jump to navigation Jump to search

Debugging a large application may involve the scanning of a large volume of code to get to the parts of the program that you need to debug. It can be cumbersome and time consuming to ship so much code to the Client and/or to inspect so many pages of code. To gain some time and space economy, the Debugger lets you debug some sections of your program while omitting others.

Two features let you exclude code from debugging:

Exclude/Include directives let you mark blocks of code of any length to be excluded from display and debugging, but not from execution. You explicitly mark the beginning and ending of such blocks, or if they are procedures, SOUL methods or subroutines, you specify them by name or by name pattern, and you can provide them by list. You can also similarly identify blocks of code within these excluded blocks that will not be excluded from display.  

"Run Until" processing operates on procedures only. You can have the Debugger run your program code without interruption until it reaches a procedure you want to display for debugging. You can identify this procedure by name or name pattern, and you can provide a list of such procedures in a "white list" or a "black list."

Run Until procedure processing differs from Exclude directive processing of procedures in that Run Until excludes complete programs, while Exclude directives (explicitly or implicitly) exclude parts of programs (those called by "inner procedures"). An inner procedure is within a Begin/End block, invoked by an INCLUDE statement. A procedure invoked by a command level INCLUDE is an "outer" procedure. Once a procedure is running in the Debugger and a request Begin is seen, Run Until procedure detection does not stop until after the End of the request. It ignores inner procedures and looks only for outer procedures.

The Proc Selection page in the Client contains most of the controls for both types of code exclusion techniques.

Exclude and Include directives are described in:

Selectively excluding source code blocks

Run Until processing may be invoked once for a single specified procedure, or it may be applied to any of multiple procedures specified in a list. Run Until processing is described in:

Running to a specific procedure
Running only to listed procedures