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).