Arguments: &key from-read-eval-print-loop brief moderate verbose top bottom count specials function relative all
This command prints the evaluation stack. It uses the current stack
frame as the center of attention, and prints some number of frames on
either side of the current frame. The value of the variable *zoom-display* is the
total number of frames to display, and an equal number of frames are
printed above and below the current stack frame, if possible. The
arguments to the :zoom command
control the type and quantity of the displayed stack.
After a :zoom or any of its
analogs (such as :top or :bottom) the special variable
cl:* contains the lisp expression representing the
current frame. That expression is approximately what is shown in a
moderate display with :function nil, regardless of the
mode in which :zoom itself
displays.
This command operates on the focused process when multiprocessing is active.
The minimal abbreviation of :zoom is :zo.
The from-read-eval-print-loop argument controls whether
frames after the most recent entry to the Lisp read-eval-print-loop
are ignored (when this argument is true, the default) or not (when
this argument is nil). This argument should be specified
nil when :zoom is called
programmatically. It should be left t when
:zoom is called interactively.
The remaining keyword arguments to :zoom are described in the following table.
:zoom Keyword Arguments
:zoom keyword
Functionality
Keyword argument value
nil
non-nil
:brief
These control the amount of information :zoom
prints.Specify only one at a time. Chosen value sticks from one call of :zoom to the next.
See examples of the output styles in :brief, :moderate, and :verbose modes of :zoom in debugging.htm.
:moderate is used.
:zoom will print the function names of the
stack frames only. Frames will be separated by `<-' and more than one will appear on a
line. The current frame will be displayed specially.
:moderate
has no effect on mode of the display
:zoom will print function names and actual
parameters. :moderate is the initial default display mode.
:verbose
:moderate is used
:zoom will print function names, formals
(the names of the parameters in the function definition) and actual parameters.
:top
These arguments control where :zoom places the
current stack frame pointer. Specify only one at a time.
has no effect.
current stack frame pointer will be at the top of the stack.
:bottom
has no effect.
current stack frame pointer will be at the bottom of the
stack.
:count
Integer number of frames to print. Initial default value is
controlled by *zoom-display*.
Specifying a value sets that variable so the value sticks.
Not applicable.
The value t (but not other true values) means
display all applicable frames.
:specials
If specified, sets (not binds) the value of *zoom-print-special-bindings*.The value of this argument sticks between :zooms.
Specials bound by active functions will not be printed. If*zoom-print-special-bindings*
is true, :zoom will print any specials bound by active
functions.
:function
Affects how frames are printed. The value of this arguments
sticks from one call of :zoom to another.
Frames will be printed as(funcall #<function . . .> . . .).
Frames will be printed as(foo . . .).
This is the initial default.
:relative
Print line numbers relative to the current frame for
:moderate and :verbose :zoom displays (has no effect on :brief display). The value of this
argument sticks from one call of :zoom to the next.
Do not print relative identifiers. This is the initial
default.
An identifier is printed on each line output giving the
location of that line relative to the current frame.
:all
Provides override to the :hide command.:all
differs from the command :unhide in the following way. :unhide (called with no arguments) reverts the list of hidden frames
to the original list of hidden frames. Specifying the :all argument as true
causes all frames to be displayed. The value of this argument sticks from one call of :zoom
to another.
nil, the frames specified by :hide will be hidden. This is the initial default.
If specified and true, then the list
associated with the :hide command is ignored and all frames are
displayed.
:length
Bind the value of
*zoom-print-length*
to the specified value when printing the backtrace. This argument
is not sticky, that is it does not affect that value of
*zoom-print-level*.
Place no restrictions on the length of
data printed in a frame. Note that in some cases, very long lists
are printed, making reading the backtrace difficult. If that happens
call :zoom again with a numeric
value for this argument (or with this argument unspecified so the
value of
*zoom-print-length*
is used).
The value should be a postive integer.
*zoom-print-length*
will be bound to this value while the output is printed.
:level
Bind the value of
*zoom-print-level*
to the specified value when printing the backtrace. This argument
is not sticky, that is it does not affect that value of
*zoom-print-level*.
Place no restrictions on the level
(depth within lists) of
data printed in a frame.
The value should be a postive integer.
*zoom-print-level*
will be bound to this value while the output is printed.
The Debug window in the Integrated Development Environment, supplied with Allegro CL on Windows, also provides a view of the stack similar to :zoom. See the description of the Debug Windows after an error for details. Note that these two views (that in the Debug window and that displayed by :zoom) are independent, meaning each view controls how it is displayed (for example, whether hidden frames are shown or left out, how many frames are shown, etc.) independently from the other.
See top-level.htm for more information on top-level commands. See debugging.htm for information on the debugger and examples of tracing.
Copyright (c) 1998-2016, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 8.1 page.
Created 2010年1月21日.