There is a data inspector available via the
,debug commands or by setting the
The inspector is particularly useful with procedures, continuations,
The command processor can be taken out of inspection mode by
q command, by unsetting the
or by going to a command level where the
inspect-focus-value is not
When in inspection mode, input that begins with
a letter or digit is read as a command, not as an expression.
To see the value of a variable or number, do
or use the
In inspection mode the command processor prints out a menu of selectable components for the current focus object. To inspect a particular component, just type the corresponding number in the menu. That component becomes the new focus object. For example:
> ,inspect '(a (b c) d) (a (b c) d)  a  (b c)  d : 1 (b c)  b  c :
When a new focus object is selected the previous one is pushed onto a
You can pop the stack, reverting to the previous object, with
u command, or use the
stack command to move to
an earlier object.
Commands useful when in inspection mode:
u(up) pop object stack
m(more) print more of a long menu
(...)evaluate a form and select result
templateselect a closure or continuation's template (Templates are the static components of procedures; these are found inside of procedures and continuations, and contain the quoted constants and top-level variables referred to by byte-compiled code.)
d(down) move to the next continuation (current object must be a continuation)
menuprint the selection menu for the focus object
Multiple selection commands (
d, and menu indexes)
may be put on a single line.
All ordinary commands are available when in inspection mode. Similarly, the inspection commands can be used when not in inspection mode. For example:
> (list 'a '(b c) 'd) '(a (b c) d) > ,0 '(b c) > ,menu  b  c >
If the current command level was initiated because of
a breakpoint in the next level down, then
,debug will invoke the inspector on the
continuation at the point of the error.
d (up and down)
commands then make the inspected-value stack look like a conventional stack
debugger, with continuations playing the role of stack frames.
to older or deeper continuations (frames), and
u goes back up to more
Previous: Switches | Next: Command programs