This is documentation for Mathematica 3, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)
 Documentation / Mathematica / Built-in Functions / Programming / Debugging  /
Trace

  • Trace[ expr ] generates a list of all expressions used in the evaluation of expr.
  • Trace[ expr , form ] includes only those expressions which match form.
  • Trace[ expr , s ] includes all evaluations which use transformation rules associated with the symbol s.
  • In general, form in Trace[ expr , form ] is compared both with each complete expression that is evaluated, and with the tag associated with any transformation rule used in the evaluation.
  • Trace[ expr , lhs -> rhs ] picks out expressions which match lhs, then replaces them with rhs in the list returned.
  • All expressions in the list returned by Trace are wrapped in HoldForm.
  • Trace returns a set of nested lists. Each individual list corresponds to a single evaluation chain, which contains the sequence of forms found for a particular expression. The list has sublists which give the histories of subsidiary evaluations.
  • Example: Trace[2 3 + 4].
  • The following options can be given:
  • During the execution of Trace, the settings for the form argument, and for the options TraceOn and TraceOff, can be modified by resetting the values of the global variables $TracePattern, $TraceOn and $TraceOff, respectively.
  • See the Mathematica book: Section 2.5.4Section 2.5.10.
  • See also: TraceDialog, TracePrint, TraceScan.

    Further Examples

    This show the order of operations in a simple arithmetic expression.

    In[1]:=

    Out[1]=

    Here is the recursive definition of the Fibonacci numbers.

    In[2]:=

    Here are the end conditions for the recursion.

    In[3]:=

    Out[3]=

    This tells Trace to return only the arguments of fib used in the evaluation of fib[5].

    In[4]:=

    Out[4]=

    This shows all occurrences of fib in the evaluation of fib[3].

    In[5]:=

    Out[5]=