A stack element is an individual record or line-item history within a trace stack.
There are five kinds of elements that may appear within a stack:
level (function-name {argument1} ...)
Arguments within this listing are displayed not by their local parameter name, but by the values that were actually passed to the function.
level :keyword - {optional-data}
The keyword indicates the type of the frame. The optional-data displays additional information relating to the state of the program.
level (function-form ...)
As an example, load the following code in Visual LISP, set a breakpoint as indicated in the code comments, and then start the TRACE-10-DEEP command.
(defun stack-tracing (indexVal maxVal)
(princ "At the top of the stack-tracing function, indexVal = ")
(princ indexVal)
(if (< indexVal maxVal)
(stack-tracing (1+ indexVal) maxVal)
(princ "Reached the maximum depth.") ; place a breakpoint
; at the beginning of
; this line
)
)
(defun c:trace-10-deep ()
(terpri)
(stack-tracing 1 10)
)
The Trace Stack window from the previous sample code looks like the following illustration when program execution is interrupted at the set breakpoint.
