signal hander patch
Bryce McKinlay
bryce@waitaki.otago.ac.nz
Tue Mar 26 03:50:00 GMT 2002
This patch broke NullPointerExceptions on PowerPC:
2002年03月25日 Andrew Haley <aph@cambridge.redhat.com>, Hans Boehm
<Hans_Boehm@hp.com>
* configure.in, configure: enable dwarf2-exception-style
exception handling on IA-64.
* include/dwarf2-signal.h (MAKE_THROW_FRAME): Add for IA-64.
(INIT_SEGV, INIT_FPE): Use __libc_sigaction instead of syscall.
Add FIXME comment.
I'm seeing abort in uw_frame_state_for at unwind-dw2.c:889.
I don't agree with this comment/code:
+// FIXME: We shouldn't be using libc_sigaction here, since it should
+// be glibc private. But using syscall here would mean translating to
+// the kernel's struct sigaction and argument sequence, which we
+// shouldn't either. The right solution is to call sigaction and to
+// make sure that we can unwind correctly through the pthread signal
+// wrapper.
Surely, private glibc details are FAR more likely to be a moving target
than the kernel sigaction syscall stuff. The kernel cannot change this
interface without breaking glibc, so it is never going to change without
a very good reason. On the other hand glibc could change their internal
implementation details at any time.
Further more, is my guess correct that MD_FALLBACK_FRAME_STATE_FOR on
PowerPC is designed to *only* recognise the kernel signal handling frame
and thus is not capable of unwinding an extra glibc frame which was not
compiled with EH info attached?
regards
Bryce.
More information about the Java
mailing list