|[ < ]||[ > ]||[ << ]||[ Up ]||[ >> ]||[Top]||[Contents]||[Index]||[ ? ]|
Get the last exception object that occurred on this thread, or NULL
if there is no exception object on this thread. As far as
is concerned, an exception is just a pointer. The precise meaning of the
data at the pointer is determined by the front end.
Get the last exception object that occurred on this thread and also
clear the exception state to NULL. This combines the effect of
Set the last exception object that occurred on this thread, so that
it can be retrieved by a later call to
This is normally used by
jit_function_apply to save the
exception object before returning to regular code.
Clear the last exception object that occurred on this thread.
This is equivalent to calling
with a parameter of NULL.
Throw an exception object within the current thread. As far as
libjit is concerned, the exception object is just a pointer.
The precise meaning of the data at the pointer is determined
by the front end.
Note: as an exception object works its way back up the stack, it may be temporarily stored in memory that is not normally visible to a garbage collector. The front-end is responsible for taking steps to "pin" the object so that it is uncollectable until explicitly copied back into a location that is visible to the collector once more.
This function is called to report a builtin exception. The JIT will automatically embed calls to this function wherever a builtin exception needs to be reported.
When a builtin exception occurs, the current thread’s exception handler is called to construct an appropriate object, which is then thrown.
If there is no exception handler set, or the handler returns NULL,
libjit will print an error message to stderr and cause
the program to exit with a status of 1. You normally don’t want
this behavior and you should override it if possible.
The following builtin exception types are currently supported:
The operation was performed successfully (value is 1).
The operation resulted in an overflow exception (value is 0).
The operation resulted in an arithmetic exception. i.e. an attempt was made to divide the minimum integer value by -1 (value is -1).
The operation resulted in a division by zero exception (value is -2).
An error occurred when attempting to dynamically compile a function (value is -3).
The system ran out of memory while performing an operation (value is -4).
An attempt was made to dereference a NULL pointer (value is -5).
An attempt was made to call a function with a NULL function pointer (value is -6).
An attempt was made to call a nested function from a non-nested context (value is -7).
The operation resulted in an out of bounds array access (value is -8).
A branch operation used a label that was not defined anywhere in the function (value is -9).
Set the builtin exception handler for the current thread. Returns the previous exception handler.
Get the builtin exception handler for the current thread.
Create an object that represents the current call stack. This is normally used to indicate the location of an exception. Returns NULL if a stack trace is not available, or there is insufficient memory to create it.
Get the size of a stack trace.
Get the function that is at position posn within a stack trace. Position 0 is the function that created the stack trace. If this returns NULL, then it indicates that there is a native callout at posn within the stack trace.
Get the program counter that corresponds to position posn within a stack trace. This is the point within the function where execution had reached at the time of the trace.
Get the bytecode offset that is recorded for position posn
within a stack trace. This will be
JIT_NO_OFFSET if there
is no bytecode offset associated with posn.
Free the memory associated with a stack trace.
|[ << ]||[ >> ]||[Top]||[Contents]||[Index]||[ ? ]|
This document was generated by Aleksey Demakov on October 17, 2013 using texi2html 1.82.