The Decode Instruction Stream During Fault routine is a tool for building condition handlers that process instruction fault exceptions. It is called from a condition handler. This routine is not available to native OpenVMS Alpha and I64 programs but is available to translated VAX images. Format LIB$DECODE_FAULT signal-arguments ,mechanism-arguments ,user-procedure [,unspecified-user-argument] [,instruction-definitions]
1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value
2 – Arguments
signal-arguments OpenVMS usage:vector_longword_unsigned type: unspecified access: read only mechanism: by reference, array reference Signal arguments array that was passed from the OpenVMS operating system to your condition handler. The signal-arguments argument is the address of the signal arguments array. mechanism-arguments OpenVMS usage:vector_longword_unsigned type: unspecified access: read only mechanism: by reference, array reference Mechanism arguments array that was passed from OpenVMS to your condition handler. The mechanism-arguments argument is the address of the mechanism arguments array. user-procedure OpenVMS usage:procedure type: procedure value access: call after stack unwind mechanism: by descriptor, procedure descriptor User-supplied action routine that LIB$DECODE_FAULT calls to handle the exception. The user-procedure argument is the address of a descriptor pointing to your user action routine. The user- procedure argument may be of type "procedure value" when called by languages with up-level addressing. If user-procedure is not of type "bound routine value," it is assumed to be the address of an entry mask. unspecified-user-argument OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value Additional information passed from your handler without interpretation to your user action routine. The unspecified- user-argument argument contains the value of this additional information. The unspecified-user-argument argument is optional; if it is omitted, zero is used as the default. instruction-definitions OpenVMS usage:vector_byte_unsigned type: byte (unsigned) access: read only mechanism: by reference, array reference Array of bytes specifying instruction opcodes and operand definitions that are to replace or supplement the standard instruction definitions. The instruction-definitions argument is the address of this array. If instruction-definitions is omitted, only the standard instruction definitions are used. If supplied, instruction- definitions is searched first, followed by the standard definitions. Each instruction definition consists of a series of bytes, the first one or two of which is the instruction opcode. If the instruction is a 2-byte opcode, the escape byte, which must be hex FD, FE, or FF, is placed in the first of the two bytes. Following the opcode may be from 0 to 16 operand definition bytes. These bytes indicate the operand's access type and data type. The end of each instruction definition is denoted by a byte containing the value LIB$K_DCFOPR_END (zero). The list of instruction definitions is terminated by two bytes, each of which contains the value -1 (hexadecimal FF).