There are continuable and noncontinuable break loops in VLISP. You can enter the continuable break loop at the very first break in program execution by any of the following methods:
- Turning on the Stop Once mode and reaching an expression with debugging information (that is, an expression that is loaded from source code, as opposed to from a compiled .exe file)
- Reaching a function marked for Debug on Entry
- Reaching a breakpoint you set in the program
- Entering a break loop by pressing the Pause button
- Proceeding with a Step Over, Step Into, or Step Out command from the previous break loop state
When the program is interrupted, you enter the break loop. This is apparent if the VLISP Console window is active, because the prompt is changed to reflect the current level of the break loop. In this suspended state, you have read-write access to all variables in the environment in which the break occurred. For example, if the break occurred within a function containing several local variable declarations, those variables are accessible and you can change their values by issuing setq assignments at the Console prompt.
When stopped at a breakpoint, you can control subsequent program execution by choosing one of the following items from the Debug menu, or by pressing the equivalent toolbar button:
- Reset to Top Level terminates
all currently active break loops and returns to the Console top-level
(the top read-eval-print loop).
- Quit
Current Level terminates the current break loop and returns
to a break loop one level up. This may be another break loop or
the top-level read-eval-print loop.
- Continue resumes
normal program execution from the breakpoint.
The Step commands evaluate portions of program code before resuming suspended mode:
- Step
Over looks for the close parenthesis matching the open
parenthesis where the program is currently paused, and evaluates
the expressions in between.
- Step
Into jumps into a nested expression, if any. If there
are no nested expressions, it jumps to the next expression in sequence.
- Step
Out searches for the end of the function where the program
is currently paused, and evaluates all the expressions up to that
point.
After you exit the break loop to the Console top-level, the Console prompt returns to its original form (without a number prefix).