System Debug Reference Manual (32650-90888)

Chapter 2 47
User Interface
Error Handling
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