savannah-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Savannah-hackers] savannah.gnu.org: submission of libsignal2exception


From: milden
Subject: [Savannah-hackers] savannah.gnu.org: submission of libsignal2exception
Date: Tue, 27 Nov 2001 16:57:06 -0500

A package was submitted to savannah.gnu.org.
This mail was sent to address@hidden, address@hidden


Hugo Mildenberger <address@hidden> described the package as follows:
License: lgpl
Other License: 
Package: libsignal2exception
System name: s2e
This package wants to apply for inclusion in the GNU project

libsignal2exception (s2e) was designed as a portable c++ library, which is 
capable to map unix-like *synchronous* signals (like SIGSEGV/SIGBUS/SIGFPE 
etc.) into equivalent exception classes. The latter are thrown from the signal 
handler or with some help of the setjmp gadgetry, depending on compiler 
capabilities. The bfd library is optionally used to determine the region, where 
the signal occured. Since gcc-3.0 it is possible to determine also non-static 
method addresses, so the mapped exception can determine, if the signal was 
delivered within a the code of a certain method: (example for gcc version >= 
3.0)

 

try {

      A a; B b;

      a.some_method(0);

      b.some_method(0.1);

} catch( s2e::SCN(SIGSEGV)* e ) {

  if (e->is_raised_by((const void*)&A::some_method))

       [...]

} catch( s2e::SCN(SIGFPE)* e ) {

       [...]

}

 

The library works already  for\"i686-pc-linux-gnu\" and 
gcc-2.95/gcc-3.0/glibc-223. A preliminary port is done for the ia64 
architecture. The latter port is incomplete, since determining the frame 
pointer-equivalent on this processor architecture requires tricky analysis. 
Provisions are made to ease porting, meaning that architecture dependencies are 
isolated in two classes. GNU-autoconf is used to determine system architecture 
and configure makefiles.

 

               







reply via email to

[Prev in Thread] Current Thread [Next in Thread]