This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: sigsegv?
Tom Tromey writes:
> >>>>> "Bryce" == Bryce McKinlay <bryce@mckinlay.net.nz> writes:
>
> Bryce> Was your SEGV inside Method.invoke()? I've noticed strange things can
> Bryce> happen in there, perhaps if the IP goes to some weird-but-valid
> Bryce> address before the segv actually occurs.
>
> Yeah, sorry. Stack trace appended.
> However, it doesn't look like we're in a particularly weird place:
>
> objClass = JV_CLASS (obj);
>
> This is in Method::invoke.
>
> Tom
>
> (gdb) bt
> #0 java::lang::reflect::Method::invoke(java::lang::Object*, JArray<java::lang::Object*>*) (this=0x821efe0, obj=0x0, args=0x0)
> at ../../../gcc/libjava/java/lang/reflect/natMethod.cc:164
> #1 0x080b0336 in gnu.testlet.java.lang.reflect.Method.invoke.try_invoke(gnu.testlet.TestHarness, java.lang.reflect.Method, java.lang.Object, java.lang.Object[], java.lang.Object) (this=0x81f6fc0, harness=0x8215f28, method=0x0, obj=0x0,
> args=0x0, expect=0x821ced0)
> at ../mauve/gnu/testlet/java/lang/reflect/Method/invoke.java:71
Uh yes, but the really interesting thing is what happens after this.
Does it abort, or what? If it aborts, I suspect a bug in
MD_FALLBACK_FRAME_STATE_FOR, or maybe g++ is generating invalid unwind
data.
If _POSIX_VERSION is not defined on your system you won't get to call
unblock_signal().
Andrew.