Previous: Function Tracing, Up: Debugger



4.11 Single Stepping

SBCL includes an instrumentation based single-stepper for compiled code, that can be invoked via the step macro, or from within the debugger. See Debugger Policy Control, for details on enabling stepping for compiled code.

Compiled code can be unsteppable, partially steppable, or fully steppable.

Unsteppable
Single stepping is not possible.
Partially steppable
Single stepping is possible at sequential function call granularity: nested function calls cannot be stepped into, and no intermediate values are available.
Fully steppable
Single stepping is possible at individual function call argument granularity, nested calls can be stepped into, and intermediate values are available.

— Macro: common-lisp:step form

The form is evaluated with single stepping enabled. Function calls outside the lexical scope of the form can be stepped into only if the functions in question have been compiled with sufficient debug policy to be at least partially steppable.