|Linker ... still useful ? guerin@IRO.UMontreal.CA (1994-09-21)|
|Re: Linker ... still useful ? email@example.com (1994-09-28)|
|Establishing exception handlers before main() firstname.lastname@example.org (1994-09-29)|
|From:||email@example.com (Thomas H. Moog)|
|Date:||Thu, 29 Sep 1994 02:27:57 GMT|
The VMS linker's initialization vector can be used to establish mulitple,
nested, exception handlers prior to the execution of main().
The init vector consists of a series of function address. When an
init-routine is called it is passed the address of the next element in the
init vector. The routine can (1) execute a "return" which results in the
system calling the next element in the vector or (2) it can execute a
function call to the next element in the vector (with an appropriate
argument for the next element in the init vector) which results in a
nesting of the functions. If the routines establish exception handlers
before executing a "call" to the next routine in the sequence then the
handlers will be nested. The "main" routine is the last element in the
init-vector, and it is followed by a 0.
I don't think C++ has anyway of establishing a "try" block which includes
main() - even with the use of static initializers.
The linker can also change psect attributes - for instance making a COMMON
block shareable among multiple tasks (when properly installed) or making a
COMMON block process private even when the program is shared among
Return to the
Search the comp.compilers archives again.