Previous: , Up: Session Support   [Contents][Index]


7.5.5 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
Function: trackf proc
Function: trackf proc name
Function: stackf proc
Function: stackf 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))

Previous: , Up: Session Support   [Contents][Index]