# trace¶

## Purpose¶

Allows the user to trace program execution for debugging purposes.

## Format¶

trace new;


Parameters

new: (scalar) new value for trace flag. (scalar) optional mask to allow leaving some bits of the trace flag unchanged.

## Examples¶

trace 1+8;    // trace fn/proc calls/returns to standard
// output
trace 2+8;    // trace line numbers to standard output
trace 1+2+8;  // trace line numbers and fn/proc calls/
// returns to standard output
trace 1+16;   // trace fn/proc calls/returns to printer
trace 2+16;   // trace line numbers to printer
trace 1+2+16; // trace line numbers and fn/proc calls/
// returns to printer


## Remarks¶

The trace command has no effect unless you are running your program under GAUSS’s source level debugger. Setting the trace flag will not generate any debugging output during normal execution of a program.

The argument is converted to a binary integer with the following meanings:

 bit decimal meaning ones 1 trace calls/returns twos 2 trace line numbers fours 4 unused eights 8 output to window sixteens 16 output to print thirty-twos 32 output to auxiliary output sixty-fours 64 output to error log

You must set one or more of the output bits to get any output from trace. If you set trace to 2, you’ll be doing a line number trace of your program, but the output will not be displayed anywhere.

The trace output as a program executes will be as follows:

 trace 16,16; turn on output to printer trace 0,16; turn off output to printer
Functions lineson()