just reproduced this myself on a 64bit windows xp with a 32bit JVM, with the
exact same error. should be able to debug it a bit quicker now.
X
Ximin Luo wrote:
> # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x69141741, pid=328, tid=5424
> siginfo: ExceptionCode=0xc0000005, reading address 0x00000000
>
> libfec8.dll:
> 6914173e: 8b 55 dc mov -0x24(%ebp),%edx
> 69141741: 03 02 add (%edx),%eax
> 69141743: 89 07 mov %eax,(%edi)
>
> This corresponds to
>
> fec8-jinterf.c:
> 170: inarr[i] += localDataOff[i];
>
> with i=0, on the first run of the loop (which has been unrolled), and
>
> %edi points to inarr
> %eax has the same value as inarr[0]
> -0x24(%ebp) points to localDataOff
>
> The register dump has EDX=0x00000000, so localDataOff is a null pointer, but
> code earlier on in the function should prevent this:
>
> libfec8.dll:
> 6914133c: 89 45 dc mov %eax,-0x24(%ebp)
> 6914133f: 83 c4 10 add $0x10,%esp
> 69141342: 85 c0 test %eax,%eax
> 69141344: 0f 84 02 01 00 00 je 6914144c <RETURN>
>
> fec8-jinterf.c:
> 147: if (localDataOff == NULL) {
> 148: return; /* exception occured */
> 149: }
>
> and it's a local variable so can't be affected by other threads.
>
> also the register dump has: ESP=0x207dfa04, EBP=0x207df9f8; EBP < ESP should
> not be happening on windows...
>
> The only thing I can think of is that the JNI function PushLocalFrame is
> screwing with the EBP register, for some reason...
>
> Can you try running this on 32-bit windows?
>
> X
>
> Ximin Luo wrote:
>> Can you run it several more times and attach some more hs_err logs?
>>
>> Also, do you have any other JVMs you can try this on? Preferably
>> 32-JVM-on-64-OS ones.
>>
>> X
>>
>>
> _______________________________________________
> Devl mailing list
> Devl at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl