[Bug libstdc++/35555] New: Throw from signal handler - regression
asteinarson at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed Mar 12 15:39:00 GMT 2008
This is the same bug as 34152 but in a slightly new version in GCC 4.3.0.
When trying to convert a SIGSEGV signal to a C++ exception, GCC dies and
dumps a core.
This was working in GCC 4.2.1 with patches mentioned in 34152.
I changed eh_personality.cc slightly, to verify that the right code
path is chosen:
#ifdef _GLIBCXX_HAVE_GETIPINFO
printf("_GLIBCXX_HAVE_GETIPINFO\n");
ip = _Unwind_GetIPInfo (context, &ip_before_insn);
#else
printf("! _GLIBCXX_HAVE_GETIPINFO\n");
ip = _Unwind_GetIP (context);
#endif
>From my test program, I get this output:
Constructor: Count 0
Constructor: Count 1
_GLIBCXX_HAVE_GETIPINFO
terminate called after throwing an instance of 'char const*'
_GLIBCXX_HAVE_GETIPINFO
Aborted (core dumped)
So, the patch that previously fixed the problem is used, but the
problem has re-appeared in 4.3.0.
Regards
// ATS
--
Summary: Throw from signal handler - regression
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: asteinarson at gmail dot com
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35555
More information about the Gcc-bugs
mailing list