### The Maxima on-line user's manual

Algebra Calculator

#### Trace

Function: trace (<f_1>, ..., <f_n>)

Function: trace (all)

Function: trace () Given functions <f_1>, ..., <f_n>, `trace` instructs Maxima to print out debugging information whenever those functions are called. `trace(f)\$ trace(g)\$` puts `f` and then `g` onto the list of functions to be traced; the list accumulates from one call to the next.

`trace(all)` puts all user-defined functions (as named by the global variable `functions`) on the list of functions to be traced.

With no arguments, `trace` returns a list of all the functions currently being traced.

The `untrace` function disables tracing. See also `trace_options`.

`trace` quotes its arguments. Thus, `f(x) := x^2\$ g:f\$ trace(g)\$` does not put `f` on the trace list.

When a function is redefined, it is removed from the timer list. Thus after `timer(f)\$ f(x) := x^2\$`, function `f` is no longer on the timer list.

If `timer (f)` is in effect, then `trace (f)` has no effect; `trace` and `timer` cant both be in effect for the same function.

There are also some inexact matches for `trace`. Try `?? trace` to see them.

```(%o1)                                true
(%i2) ```

### Related Examples

##### trace

trace(?sdiff);

diff(f(x)*g(x),x);

Calculate

##### trace

P:(2*x-7*y)^2+(2*x+7*...

trace(?sexpand);

expand(P);

Calculate

? trace;

Calculate

##### trace

trace(?sdiff);

diff(f(x)*g(x),x);

Calculate

##### trace

P:(2*x-7*y)^2+(2*x+7*...

trace(?sexpand);

expand(P);

Calculate

? trace;

Calculate