Upon entering a function that is being traced, *traced-arglist*
is bound to the list of arguments given to the function. *traced-arglist*
is then printed after the function name in the output from tracing. It is accessible in the :before
and :after
forms to trace. However care should be used when manipulating this variable, since it is the value of *traced-arglist*
itself that is used when calling the traced function. Thus if this value is altered by the :before
forms then the function receives the altered argument list.
USER 14 > (trace (+ :before
((setq *traced-arglist*
(mapcar #'1+
*traced-arglist*)))))
+
USER 15 > (+ 1 2 3)
0 + > (1 2 3)
(2 3 4)
0 + < (9)
9
LispWorks User Guide and Reference Manual - 13 Feb 2015