up previous next
5.1.10 ComputationStack
If the ComputationStack option is on, a special variable named ComputationStack contains a list tracing errors that occur during the execution of CoCoA commands. This option is useful for debugging programs.

Example
  Define Test(X)
    If X>=0 Then PrintLn 1/X; EndIf;
  EndDefine;

  Set ComputationStack;
  Test(0);

-------------------------------
ERROR: Division by zero
CONTEXT: 1 / X
-------------------------------
  S := ComputationStack;  -- to save typing later
  S[1];  -- the command that produced the error
PrintLn(1 / X)
-------------------------------
  S[2];  -- S[1] was part of an If-statement
If X >= 0 Then PrintLn(1 / X) EndIf
-------------------------------
  S[3];  -- the command issued by the user
If X >= 0 Then PrintLn(1 / X) EndIf;
-------------------------------