Frames describe a particular call on the stack for a particular thread. This is the environment for name resolution, getting arguments and locals, and returning values. The stack conceptually grows up, so the top of the stack is the most recently called function.
top-frame, frame-down, frame-up, and frame-debug-function can only fail when there is absolutely no debug information available. This can only happen when someone saved a Lisp image specifying that the system dump all debugging data.
[Function]
top-frame
This function never returns the frame for itself, always the frame before calling top-frame.
[Function]
frame-down frame
This returns the frame immediately below frame on the stack. When frame is the bottom of the stack, this returns nil.
[Function]
frame-up frame
This returns the frame immediately above frame on the stack. When frame is the top of the stack, this returns nil.
[Function]
frame-debug-function frame
This function returns the debug-function for the function whose call frame represents.
[Function]
frame-code-location frame
This function returns the code-location where frame's debug-function will continue running when program execution returns to frame. If someone interrupted this frame, the result could be an unknown code-location.
[Function]
frame-catches frame
This function returns an a-list for all active catches in frame mapping catch tags to the code-locations at which the catch re-enters.
[Function]
eval-in-frame frame form
This evaluates form in frame's environment. This can signal several different debug-conditions since its success relies on a variety of inexact debug information: invalid-value, ambiguous-variable-name, frame-function-mismatch. See also preprocess-for-eval (page ).