[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 17:11:41 -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.