Tracing
-------
`(require 'trace)'
This feature provides three ways to monitor procedure invocations:
stack
Pushes the procedure-name when the procedure is called; pops when
it returns.
track
Pushes the procedure-name and arguments when the procedure is
called; pops when it returns.
trace
Pushes the procedure-name and prints `CALL PROCEDURE-NAME ARG1
...' when the procdure is called; pops and prints `RETN
PROCEDURE-NAME VALUE' when the procedure returns.
- Variable: debug:max-count
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.
- Function: print-call-stack
- Function: print-call-stack port
Prints the call-stack to PORT or the current-error-port.
- Macro: trace proc1 ...
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.
- Macro: track proc1 ...
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.
- Macro: stack proc1 ...
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.
- Macro: untrace proc1 ...
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.
- Macro: untrack proc1 ...
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.
- Macro: unstack proc1 ...
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.
- Function: tracef proc
- Function: tracef proc name
To trace, type
(set! SYMBOL (tracef SYMBOL))
or
(set! SYMBOL (tracef SYMBOL 'SYMBOL))
or
(define SYMBOL (tracef FUNCTION))
or
(define SYMBOL (tracef FUNCTION 'SYMBOL))
- Function: untracef proc
Removes tracing, tracking, or stacking for PROC. To untrace, type
(set! SYMBOL (untracef SYMBOL))