HPlogo System Debug Reference Manual > Chapter 2 User Interface

Error Handling

MPE documents

Complete PDF
Table of Contents
Index

E0201 Edition 4 ♥
E0300 Edition 3
E0692 Edition 3

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




Command Lookup Precedence


Control-Y