API for clojure.tools.trace
-
by Stuart Sierra, Michel Salim, Luc Préfontaine, Jonathan Fischer Friberg, Michał Marczyk, Don Jackson
Full namespace name:
clojure.tools.trace
Overview
This file defines simple tracing macros to help you see what your code is doing.
Protocols
Protocol
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
throwable information.
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
function
Usage: (clone-throwable this stack-trace args)
Source
Public Variables and Functions
macro
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
tree-like structure.
The first argument of the form definition can be a doc string
Source
macro
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/+
Source
function
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.
Source
macro
Usage: (trace-forms & body)
Trace all the forms in the given body. Returns any underlying uncaught exceptions that may make the forms fail.
Source
macro
Usage: (trace-ns n)
Trace all fns in the given name space. The given name space can be quoted, unquoted or stored in a var.
We must try to resolve the expression passed to us partially to find out if it needs to be quoted or not
when passed to trace-ns*
Source
macro
Usage: (trace-vars & vs)
Trace each of the specified Vars.
The arguments may be Var objects or symbols to be resolved in the current
namespace.
Source
function
Usage: (traceable? v)
Returns true if the given var can be traced, false otherwise
Source
function
Usage: (traced? v)
Returns true if the given var is currently traced, false otherwise
Source
macro
Usage: (untrace-ns n)
Untrace all fns in the given name space. The given name space can be quoted, unquoted or stored in a var.
We must try to resolve the expression passed to us partially to find out if it needs to be quoted or not
when passed to untrace-ns*
Source
macro
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,
untraced versions.
Source