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

AltStyle によって変換されたページ (->オリジナル) /