(require 'trace)
This feature provides three ways to monitor procedure invocations:
If a traced procedure calls itself or untraced procedures which call it, stack, track, and trace will limit the number of stack pushes to debug:max-count.
Prints the call-stack to port or the current-error-port.
Traces the top-level named procedures given as arguments. — Macro: trace
With no arguments, makes sure that all the currently traced identifiers are traced (even if those identifiers have been redefined) and returns a list of the traced identifiers.
Traces the top-level named procedures given as arguments. — Macro: track
With no arguments, makes sure that all the currently tracked identifiers are tracked (even if those identifiers have been redefined) and returns a list of the tracked identifiers.
Traces the top-level named procedures given as arguments. — Macro: stack
With no arguments, makes sure that all the currently stacked identifiers are stacked (even if those identifiers have been redefined) and returns a list of the stacked identifiers.
Turns tracing, tracking, and off for its arguments. — Macro: untrace
With no arguments, untraces all currently traced identifiers and returns a list of these formerly traced identifiers.
Turns tracing, tracking, and off for its arguments. — Macro: untrack
With no arguments, untracks all currently tracked identifiers and returns a list of these formerly tracked identifiers.
Turns tracing, stacking, and off for its arguments. — Macro: unstack
With no arguments, unstacks all currently stacked identifiers and returns a list of these formerly stacked identifiers.
These are procedures for tracing. If defmacros are not natively supported by your implementation, these might be more convenient to use.
To trace, type
(set! symbol (tracef symbol))or
(set! symbol (tracef symbol 'symbol))or
(define symbol (tracef function))or
(define symbol (tracef function 'symbol))