Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

1.3 update of clojure.contrib.trace

Fetching latest commit…

Cannot retrieve the latest commit at this time

README.md

API for trace (master branch)

by Stuart Sierra, Michel Salim, Luc Préfontaine, Jonathan Fischer Friberg

Compatibility

The trace tool is compatible with Clojure versions 1.2.x and 1.3.

Usage:

(ns your-namespace (:require tools.trace))

Overview

This file defines simple "tracing" macros to help you see what your code is doing.

Public Variables and Functions

trace-depth

var

Current stack depth of traced function calls.

deftrace

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.

dotrace

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/+

trace

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.

trace-fn-call

function

Usage: (trace-fn-call name f args)

Traces a single call to a function f with args. 'name' is the symbol name of the function.

trace-indent

function

Usage: (trace-indent)

Returns an indentation string based on trace-depth

tracer

function

Usage: (tracer name value)

This function is called by trace. Prints to standard output, but may be rebound to do anything you like. 'name' is optional.

trace-forms

macro

Usage: (trace-forms & body)

This macro helps identify which nested form triggered a runtime Exception. However it will not catch compilation exceptions. If a runtime Exception occurs, the message will include a trace back of all the nested forms starting with the innermost one where the exception occurred plus the original exception message.

Something went wrong with that request. Please try again.