This is the mail archive of the
java-patches@sourceware.cygnus.com
mailing list for the Java project.
Re: SIGFPE -> ArithmeticException ?
- To: Andrew Haley <aph@pasanda.cygnus.co.uk>
- Subject: Re: SIGFPE -> ArithmeticException ?
- From: Bryce McKinlay <bryce@albatross.co.nz>
- Date: Thu, 01 Jul 1999 18:46:03 +1200
- CC: Anthony Green <green@cygnus.com>, java-patches@sourceware.cygnus.com
- References: <19990630163124.26953.qmail@pasanda.cygnus.co.uk>
Andrew Haley wrote:
> I know that this is going to sound pathetic, but after tracing through
> this for a while I think you have a broken pthreads library.
Admittedly, some things on reason have been hacked around with a bit, but nothing has touched pthreads, AFAIK. Just
to be sure, I have just done a complete rebuild of gcc (current 2.96 snapshot) and libgcj on another machine that
is a *completely* standard Redhat 6.0 installation (default kernel and all) - same problem.
> Here's pathia, a machine here. Note that it has _almost_ the same
> kernel as yours:
What libc version are your test machines running? Everything here is running Redhat's glibc 2.1.1-6, and I suspect
that this problem actually has more to do with glibc than the kernel itself.
> See what I mean? On pathia, the value in register gregs[EIP] is the
> value in the program counter at the time the signal happened. On
> reason it's a null pointer, and we're doomed.
>
> It looks to me like your pthreads library traps the signal but doesn't
> pass along the context. Could it be that your pthreads library is
> older than the kernel?
OK, so using the "new" signal interface, gregs comes out as a null pointer. Under the old interface, the register
values come out looking fine (at least to my untrained eye), but we still get _Jv_Throw() aborting. Any idea why
the old interface isn't working then? (using either the original code and using a casted "static void my_handler
(int sig, struct sigcontext_struct ctx);" signal handler, as suggested by Anthony, gives the same results)
regards
[ bryce ]