Errors and Break Loops
break. The process that was running is suspended, and a new process--the break loop--is activated. A break loop acts like the normal read-eval-print loop except that it runs on top of your suspended program, allowing you to interact with MCL on top of your program. From a break loop you can examine your program state (including the stack), make changes, and then either resume or cancel the operation of your program.Break loops themselves can have break loops. That is, from the normal read-eval-print loop you can break to a break loop, from that loop to another break loop, and so on. Each level of break loop adds a new area to the stack; canceling or continuing out of a break loop removes its stack area (Figure 4-5).
Figure 4-5 Effects on the stack of break, abort, and continue

Break loops add new areas to the stack, whereas Abort and Continue remove areas from the stack. Within a break loop, the normal question mark prompt is replaced by a number and an angle bracket. The number of the prompt represents the level of the break loop.
Because the break loop runs on top of the interrupted program, all globally defined and special variables have the values they had when the interrupted program was suspended. Within the break loop you can redefine functions, write methods, and change the values of global and special variables. You can also edit the values of local variables, though by doing so you risk corrupting your Lisp runtime.
By changing values within the break loop, you can often continue from an error.
Generated with Harlequin WebMaker