Error Handling [ System Debug Reference Manual ] MPE/iX 5.0 Documentation
System Debug Reference Manual
Error Handling
System Debug employs an error stack for error messages and maintains the
environment variable ERROR for detection of errors by control commands.
When an internal error is detected, appropriate error messages are pushed
onto the error stack and the variable ERROR is set to the error number of
the last error generated.
While the highest-level error messages are typically displayed on the
user's terminal, lower-level (intermediate) errors are usually pushed
silently onto the error stack. All errors can be inspected with the
ERRLIST command:
$nmdebug > dv 1234.98127345
$ VIRT 1234.98127344 $
Display error. Check ERRLIST for details. (error #3800)
$nmdebug > errl
$1: Display error. Check ERRLIST for details. (error # 3800)
$1: data read access error (error #805)
$1: READ_CMWORD bad address: $ VIRT 1234.98127344
$1: Virtual read failed (error #6000)
$1: VADDR= 1234.98127344
$1: A pointer was referenced which contained a virtual address outside
of the bounds of an object.
$nmdebug >
The error stack can be reset (cleared) with the ERRDEL command:
$nmdebug > errd
The System Debug command interpreter (CI) checks the variable ERROR after
each command is executed. When an error condition is detected (ERROR <
0), all pending commands (in loops, command lists, macros, and so on) are
aborted. The command stack is flushed, and the outermost prompt is
issued. Note that only negative ERROR values constitute an error.
Positive values represent warnings, and do not cause command stack
execution to cease.
The IGNORE command protects the next single command, command list, macro,
or use file from being aborted if an error is detected. IGNORE has the
same effect as the CONTINUE command of the MPE XL CI.
Although the IGNORE command prevents abnormal command termination, it
does not automatically prevent generated errors from being displayed.
The QUIET option of the IGNORE command suppresses the error messages as
well.
While the IGNORE command affects just the following command or command
list, the environment variable AUTOIGNORE may be set to TRUE to cause
errors for all commands to be ignored and is equivalent to entering an
IGNORE LOUD command before each one.
User-defined macros can take advantage of the error handling mechanism.
A user error message can be pushed onto the error stack with the ERR
command, and the ERROR variable can be explicitly set to a negative
value. For example,
$nmdebug > ERR "a very nasty error happened"
$nmdebug > ENV error -125
MPE/iX 5.0 Documentation