JNI on ARM/XScale

Bryce McKinlay mckinlay@redhat.com
Wed Oct 6 14:23:00 GMT 2004


Jari Korva wrote:

>On Thu, 30 Sep 2004, Bryce McKinlay wrote:
>  
>
>>Hmm, so if you printf() lib_name immediately before and after the
>>JvSynchronize(), it prints the correct value before the call and
>>corrupted afterwards? If so, that sounds like a C++ compiler bug, as a
>>value on the stack is somehow being overwritten.
>>
>>You could try building natRuntime.cc with -O0 to confirm this theory.
>>    
>>
>
>Thanks again! I removed -O2 from libjava/Makefile, touched natRuntime.cc
>and ran make again. Then I rebuild my JNI-HelloWorld - and it really
>worked!
>  
>

It'd be interesting to know if you can still reproduce this with the 
latest code from CVS. If so, then it would be worth trying to isolate a 
small test case and reporting a compiler bug.

Andrew Haley wrote:

> > I also tried printfs instead of debugger on -O2 optimized binary. That
> > way, it seems that the value is corrupted already before JvSynchronize.
> > The trace and modified source are below (the most bizarre thing is that it
> > jumps directly from trace 3-1 to 4).
>
>There's nothing weird about that: all it means is that you're getting
>an ArrayIndexOutOfBoundsException.  This is Bad.
>  
>

... but probably "normal" if stack traces are not working correctly on 
this version/target?

Regards

Bryce



More information about the Java mailing list