# 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
>
>