http://bugzilla.novell.com/show_bug.cgi?id=601410
http://bugzilla.novell.com/show_bug.cgi?id=601410#c1
Jeff Mahoney changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |jeffm@novell.com
Resolution| |INVALID
--- Comment #1 from Jeff Mahoney 2010-05-04 20:52:39 UTC ---
This isn't a bug, it's a misunderstanding of how C++ is supposed to work.
SIGABRT is eventually how the program is terminated when there is an unhandled
exception but the compiler isn't going to just let you violate the spec by
blocking it.
When there is an exception, it tries to locate the handler. If there isn't one,
it's unhandled and the spec defines that the program will terminate. That is
implemented by eventually calling abort(). abort() explicitly disables the
signal handler before issuing the signal. So even if this was an actual bug
somewhere, it wouldn't be in the kernel.
You can add another handler for unhandled exceptions by passing a pointer to
void (*somefunc)(void) to std::set_terminate(), but this only gets called
before calling abort() directly.
The bug is in your code. You have unhandled exceptions leaking out and causing
the program to abort.
If you want to ignore the error that a failed connect is causing just create an
empty exception handler around that call. Your code will still be wrong but at
least you won't get a SIGABRT.
--
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.