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

Reply via email to