Next: Function Names
Up: Stack Frames
Previous: Stack Motion
  Contents
  Index
A frame is printed to look like a function call, but with the actual argument
values in the argument positions. So the frame for this call in the source:
(myfun (+ 3 4) 'a)
would look like this:
(MYFUN 7 A)
All keyword and optional arguments are displayed with their actual
values; if the corresponding argument was not supplied, the value will
be the default. So this call:
(subseq "foo" 1)
would look like this:
(SUBSEQ "foo" 1 3)
And this call:
(string-upcase "test case")
would look like this:
(STRING-UPCASE "test case" :START 0 :END NIL)
The arguments to a function call are displayed by accessing the argument
variables. Although those variables are initialized to the actual argument
values, they can be set inside the function; in this case the new value will be
displayed.
&rest arguments are handled somewhat differently. The value of
the rest argument variable is displayed as the spread-out arguments to
the call, so:
(format t " A is a A." "This" 'test)
would look like this:
(FORMAT T " A is a A." "This" 'TEST)
Rest arguments cause an exception to the normal display of keyword
arguments in functions that have both &rest and &key
arguments. In this case, the keyword argument variables are not
displayed at all; the rest arg is displayed instead. So for these
functions, only the keywords actually supplied will be shown, and the
values displayed will be the argument values, not values of the
(possibly modified) variables.
If the variable for an argument is never referenced by the function, it will be
deleted. The variable value is then unavailable, so the debugger prints<unused-arg> instead of the value. Similarly, if for any of a number of
reasons (described in more detail in section 3.4) the value of the
variable is unavailable or not known to be available, then<unavailable-arg> will be printed instead of the argument value.
Printing of argument values is controlled by *debug-print-level* and
** (page
)debug-print-length.
Next: Function Names
Up: Stack Frames
Previous: Stack Motion
  Contents
  Index
Peter Van Eynde
2000-02-08