If an error, keyboard interrupt, or other breakpoint occurs, or the
,push command is used, the command
processor invokes a recursive copy of itself, preserving the dynamic state of
the program when the breakpoint occured.
The recursive invocation creates a new command level.
The command levels form a stack with the current level at the top.
The command prompt indicates the number of stopped levels below the
: for the
base level and
for all other levels,
n is the command-level nesting depth.
described below can be used to disable the automatic pushing of new levels.
The command processor's evaluation package and the value of the
inspect-focus-value switch are local to each command level.
They are preserved when a new level is pushed and restored when
it is discarded.
The settings of all other switches are shared by all command levels.
Dat a Unix shell or control-
Dusing the Emacs
exp ...to the continuation. Interrupt continuations discard any returned values.
,proceedhave the same effect after an interrupt but behave differently after errors.
,Proceedrestarts the erroneous computation from the point where the error occurred (although not all errors are proceedable) while
,pop(and <eof>) discards it and prompts for a new command.
auto-levelsswitch has been used to disable the automatic pushing of new levels for errors and interrupts.
Numberdefaults to zero,
,resetrestarts the command processor, discarding all existing levels.
Whenever moving to an existing level, either by sending
or by using
,reset or the other commands listed above,
the command processor runs all of the
dynamic-wind "after" thunks
belonging to stopped computations on the discarded level(s).
Previous: Current focus value and ## | Next: Logistical commands