[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
When arguments with illegal types are given to a built-in function, an error will be detected and the execution will be quit. In many cases, when an error is detected in a built-in function, Asir automatically enters debugging mode before coming back to toplevel. At that time, one can examine the state of the program, for example, inspect argument values just before the error occurred. Messages reported there are various depending on cases. They are reported after the internal function name. The internal function name sometimes differs from the built-in function name that is specified by the user program.
In the execution of internal functions, errors may happen by various
reasons. The UNIX version of Asir will report those errors as one of
the following internal error
’s, and enters debugging mode just
like normal errors.
SEGV
BUS ERROR
Some of the built-in functions transmit their arguments to internal operation routines without strict type-checking. In such cases, one of these two errors will be reported when an access violation caused by an illegal pointer or a NULL pointer is detected.
BROKEN PIPE
In the process communication, this error will be reported if a process attempts to read from or to write onto the partner process when the stream to the partner process does not already exist, (e.g., terminated process.)
For UNIX version, even in such a case, the process itself does not
terminate because such an error can be caught by signal()
and
recovered.
To remove this weak point, complete type
checking of all arguments are indispensable at the entry of a built-in
function, which requires an enormous amount of re-making efforts.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] |
This document was generated on December 21, 2024 using texi2html 5.0.