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
BROKEN PIPE
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.
Go to the first, previous, next, last section, table of contents.