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.4 and Section 2.5.10.
See also: TraceDialog, TracePrint, TraceScan.