We're porting an app. that uses the JNI of the 1.3.1 JDK. It works under
other platforms but we are having problems with Linux/390. We get a SEGV
with the following (abbreviated) backtrace:

#0  0x44e6be5a in xeRunJniMethod ()
   from /opt/IBMJava2-s390-131/jre/bin/classic/libjvm.so
#1  0x44d77f1a in invokeJniMethod ()
   from /opt/IBMJava2-s390-131/jre/bin/classic/libjvm.so
#2  0x44d79f00 in jni_CallObjectMethodV ()
   from /opt/IBMJava2-s390-131/jre/bin/classic/libjvm.so
#3  0x44d22844 in JNIEnv_::CallObjectMethodV (this=0x67a040, obj=0x67a57c,
    methodID=0x4d2c88, args=0x4823f8e8)
    at /opt/IBMJava2-s390-131/include/jni.h:915

Without source it's a little hard to debug the JNI but one thing I'm seeing
is:

V44E88E30  L     5830D02C     LA    4133D000     L     5810D018
V44E88E3C  LA    4111D000     LR    182B         BASR  0DE1
V44E88E44  L     5820F094     LHI   A7180002     N     54102004
V44E88E50  LTR   1211         BRNZ  A7740008     L     58102000
V44E88E5A  L     58601000     <----- Instruction that causes SEGV

The value in R2 is what's contained in the 1st word of the 'obj' parameter
in the call trace above (although it's loaded from 94(,R15) which had been
set up earlier - I've traced it as far back as xeAddRef).

I'm not sure if there are any JDK gurus/developers watching this forum but
I'm pretty much at a loss as to what to do next.

Neale

Reply via email to