previous  next
4.1.6. Trace
If the Trace option is on, then the system echoes every command at
every level.  This is useful for debugging programs.  The following
(toy) user-defined function returns the same error message for N = 3
and N = 6.  Turning the Trace option on makes the sources of the
trouble clear.

Example

Define T(N)
  M := 1/(N-3);
  If N = 6 Then N := 3 EndIf;
  M := 1/(N-3);
  Return M;
EndDefine;
T(3);

-------------------------------
ERROR: Division by zero
CONTEXT: 1 / (N - 3)
-------------------------------
T(6);

-------------------------------
ERROR: Division by zero
CONTEXT: 1 / (N - 3)
-------------------------------
Set Trace;
T(3);
T(3)
M := 1 / (N - 3); IF N = 6 THEN N := 3 END; M := 1 / (N - 3); Return(M); 
M := 1 / (N - 3)

-------------------------------
ERROR: Division by zero
CONTEXT: 1 / (N - 3)
-------------------------------
T(6);
T(6)
M := 1 / (N - 3); IF N = 6 THEN N := 3 END; M := 1 / (N - 3); Return(M); 
M := 1 / (N - 3)
IF N = 6 THEN N := 3 END
N := 3
M := 1 / (N - 3)

-------------------------------
ERROR: Division by zero
CONTEXT: 1 / (N - 3)
-------------------------------
See also: