exception_intro man page on DigitalUNIX

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
DigitalUNIX logo
[printable version]

exception_intro(3)					    exception_intro(3)

       exception_intro,	 libexc - an overview of exception support supplied in

       The exception mechanism used on Tru64 UNIX requires no  execution  time
       in  user	 code.	The only costs before an exception occurs are one-time
       registering and deregistering of modules with  the  run-time  exception
       handling mechanism from the init and fini sections.  This one-time cost
       is a requirement to support shared objects.

       After an exception, there are costs  to	find  exception	 handling  and
       unwind  information  for procedure activations on the stack. This model
       assumes that exceptions	are  exceptional  occurrences  and  that  they
       should  not  cost  anything until they occur. When an exception occurs,
       the exception system makes every effort to be as efficient as  possible
       by  using  mechanisms such as binary searches and software caches where

       The routines in this section come from  four  sources,  although	 these
       routines	 might not have the same names as the routines in the sources:
       ULTRIX libexc.a NT defined interfaces Calling Standard for  Alpha  Sys‐
       tems New routines required for this implementation

       There  may  be  multiple	 routines that do the same things but are sup‐
       ported for backward compatibility. The data structures are  defined  in
       excpt(4), pdsc(4) and the Calling Standard for Alpha Systems .

       If  you	have used the run-time procedure descriptor from ULTRIX libexc
       as an opaque pointer, your code will port easily. If not, you must mod‐
       ify field names to match the new data structures.

       The exception system supports three basic services: Unwinding Access to
       procedure-specific information Exception management

       Unwinding support includes the ability to get a	context,  virtual  and
       actual unwinding of levels of procedure activations from the stack, and
       continuing execution in a handler or  other  user  code.	 Some  of  the
       unwind  routines	 also support invoking handlers as they unwind so that
       the language or user can clean up items at particular procedure activa‐

       The  routines that provide access to procedure-specific information can
       map an address anywhere in a routine to the routine's information. This
       information  includes  enough data to cause an unwind or determine if a
       routine handles an exception. Typically these routines take an  address
       and  then  binary  search  a compiler system-created table for an entry
       covering the address. These routines also contain support for  multiple
       tables  so that shared objects and run-time generated code can partici‐
       pate in the exception system.

       The exception management routines provide ways for languages  or	 users
       to raise exceptions or cause signals to raise exceptions. The exception
       management routines also provide the mechanism to dispatch  the	excep‐
       tions  to  the  appropriate handlers. Typically, languages provide han‐
       dlers that determine whether the user has specified  a  handler	for  a
       particular  address  and exception. In the case of structured exception
       handling in C, the language-specific handler invokes a routine contain‐
       ing user-supplied code to determine what action to take (see c_excpt(4)
       for information on C-style structured exception	handling).   Language-
       specific	 handlers  can	either handle the exception or return for some
       other procedure activation to handle it.

       The following routines are described in Section 3 reference pages:

       Routine				   Description

       exc_continue			   Like	 longjmp(3)
       exc_dispatch_exception		   Deliver exceptions to language  han‐
       exc_longjmp			   Like	 longjmp(3)  except  calls han‐
					   dlers for cleanup
       exc_lookup_function_entry	   Map address to procedure information
       exc_lookup_function_table_address   Map address to table containing pro‐
					   cedure information
       exc_lookup_gp			   Map address to GP value for a proce‐
       exc_raise_exception		   Raise  exception   given   exception
       exc_raise_status_exception	   Raise exception given exception code
       exc_set_last_chance_handler	   Set	 user	handler	 for  unhandled
       exc_unwind			   Actual unwind invoking cleanup  han‐
       __exc_last_chance		   Unhandled exception handler
       exc_resume			   Like	 longjmp(3)
       exception_dispatcher		   Take	 signal(2) arguments and raises
       exc_find_frame_ptr		   Returns static link of current acti‐
       find_rpd				   Maps	 address  to procedure informa‐
       exc_add_gp_range			   Register range of address for  a  GP
       exc_add_pc_range_table		   Register procedure information table
       exc_remove_gp_range		   Deregister  range of addresses for a
					   GP value
       exc_remove_pc_range_table	   Deregister procedure information ta‐
       exc_raise_signal_exception	   Take	 signal(2) arguments and raises
       set_unhandled_exception		   Set	user  handler	for   unhandled
       unwind				   Virtual  unwind  updating activation
       exc_virtual_unwind		   Virtual unwind  updating  activation


       See  the	 IEEE routines in the SEE ALSO section for information on IEEE
       floating-point exception support.

       /usr/ccs/lib/cmplrs/cc/libexc.a -- exception handling library
       /usr/include/excpt.h -- include file
       /usr/include/pdsc.h -- include file
       /usr/include/signal.h -- include file
       /usr/include/machine/fpu.h -- include file

       Functions: exception_dispatcher(3), exc_lookup_function_entry(3),  sig‐
       nal(2),	sigaction(2),  setjmp(3), exc_unwind(3), __exc_last_chance(3),

       Files: excpt(4), c_excpt(4), signal(4), pdsc(4).

       Programmer's Guide

       Assembly Language Programmer's Guide

       Calling Standard for Alpha Systems

       Object File/Symbol Table Format Specification


List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net