trace#
Purpose#
Allows the user to trace program execution for debugging purposes.
Format#
trace new;
trace new, mask;
Parameters
- new:
(scalar) new value for trace flag.
- mask:
(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:
(+GRAD) |
calling function or procedure GRAD |
(-GRAD) |
returning from GRAD |
[47] |
executing line 47 |
Note that the line number trace will only produce output if the program was compiled with line number records.
To set a single bit use two arguments:
|
turn on output to printer |
|
turn off output to printer |
See also
Functions lineson()