API for clojure.tools.trace
Full namespace name: clojure.tools.trace
This file defines simple tracing macros to help you see what your code is doing.
Protocol to isolate trace-form from convoluted throwables that
do not have a constructor with a single string argument.
clone-throwable attempts to clone a throwable with a human readable stack trace
and message :)
It must return a throwable of the same class. If not clonable, the original
throwable should be returned. At least this will preserve the original
Cloning should be non-obtrusive hence internal exceptions should be silently
swallowed and return the original throwable.
Known implementations: java.io.IOError, java.lang.AssertionError, java.lang.ThreadDeath, java.lang.Throwable, java.nio.charset.CoderMalfunctionError, nil, Object
Usage: (clone-throwable this stack-trace args)
Public Variables and Functions
Usage: (deftrace name & definition)
Use in place of defn; traces each call/return of this fn, including
arguments. Nested calls to deftrace'd functions will print a
The first argument of the form definition can be a doc string
Usage: (dotrace fnames & exprs)
Given a sequence of function identifiers, evaluate the body
expressions in an environment in which the identifiers are bound to
the traced functions. Does not work on inlined functions,
such as clojure.core/+
Usage: (trace value)
(trace name value)
Sends name (optional) and value to the tracer function, then
returns value. May be wrapped around any expression without
affecting the result.
Usage: (trace-forms & body)
Trace all the forms in the given body. Returns any underlying uncaught exceptions that may make the forms fail.
Usage: (trace-ns ns)
Trace all fns in the given name space.
Usage: (trace-vars & vs)
Trace each of the specified Vars.
The arguments may be Var objects or symbols to be resolved in the current
Usage: (traceable? v)
Returns true if the given var can be traced, false otherwise
Usage: (traced? v)
Returns true if the given var is currently traced, false otherwise
Usage: (untrace-ns ns)
Untrace all fns in the given name space.
Usage: (untrace-vars & vs)
Untrace each of the specified Vars.
Reverses the effect of trace-var / trace-vars / trace-ns for each
of the arguments, replacing the traced functions with the original,