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

Reply via email to