*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> exception_intro (3)              



NAME    [Toc]    [Back]

       exception_intro, libexc - an overview of exception support
       supplied in libexc.a

DESCRIPTION    [Toc]    [Back]

       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 applicable.

       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 Systems New routines
       required for this implementation

       There may be multiple routines that do the same things but
       are  supported 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 modify field names to match the
       new data structures.

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

       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

       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 participate 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  exceptions  to  the
       appropriate  handlers.  Typically,  languages provide handlers
 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 containing 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

       The following routines are described in Section  3  reference

       Routine                             Description

       exc_continue                        Like  longjmp(3)
       exc_dispatch_exception              Deliver  exceptions to language handlers

       exc_longjmp                         Like longjmp(3)  except  calls  handlers
 for cleanup
       exc_lookup_function_entry           Map address to procedure information
       exc_lookup_function_table_address   Map address to table containing procedure
       exc_lookup_gp                       Map address to GP value for a procedure

       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 handlers

       __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 activation

       find_rpd                            Maps address to  procedure  information

       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
       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.

FILES    [Toc]    [Back]

       /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

SEE ALSO    [Toc]    [Back]

       Functions:    exception_dispatcher(3),    exc_lookup_function_entry(3),   signal(2),    sigaction(2),    setjmp(3),
       exc_unwind(3), __exc_last_chance(3), ieee(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

[ Back ]
 Similar pages
Name OS Title
excpt Tru64 Data structures and prototypes for exception handling support
d2i_DHparams Tru64 Purpose to be supplied.
d2i_Netscape_RSA Tru64 Purpose to be supplied.
d2i_RSAPublicKey Tru64 Purpose to be supplied.
i2d_DHparams Tru64 Purpose to be supplied.
i2d_RSAPublicKey Tru64 Purpose to be supplied.
d2i_RSAPrivateKey Tru64 Purpose to be supplied.
i2d_RSAPrivateKey Tru64 Purpose to be supplied.
i2d_Netscape_RSA Tru64 Purpose to be supplied.
exception IRIX exception handling facility
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service