Re: J2SE compliant RE for Arm Linux

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Fri, 2007-06-29 at 11:59 +0200, Christian Thalinger wrote:

> > Unfortunately compiling and running cacao trunk reliably produces this:
> > 
> > LOG: [0xb7daf6c0] We received a SIGSEGV and tried to handle it, but we
> > were
> > LOG: [0xb7daf6c0] unable to find a Java method at:
> > LOG: [0xb7daf6c0] 
> > LOG: [0xb7daf6c0] PC=0xb7394449
> > LOG: [0xb7daf6c0] 
> 
> Ugh.  Could you run it in gdb and do a backtrace?  It works for me on
> different arm boxes.

This isn't even on an arm box:
Linux devel-server 2.6.20-15-generic #2 SMP Sun Apr 15 07:36:31 UTC 2007
i686 GNU/Linux

The information is below:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1209882944 (LWP 5826)]
0xb7410449 in JCL_FindClass (env=0x804a770, 
    className=0xb7412f31 "java/nio/Buffer") at jcl.c:227
227       jclass retval = (*env)->FindClass (env, className);
(gdb) bt full
#0  0xb7410449 in JCL_FindClass (env=0x804a770, 
    className=0xb7412f31 "java/nio/Buffer") at jcl.c:227
        retval = <value optimized out>
#1  0xb740c6b9 in Java_gnu_java_nio_VMChannel_initIDs (env=0x804a770, 
    clazz=0x80b9bb0) at gnu_java_nio_VMChannel.c:319
        bufferClass = <value optimized out>
        byteBufferClass = (jclass) 0xb740c69b
#2  0xb745fcf4 in ?? ()
No symbol table info available.
#3  0x0804a770 in ?? ()
No symbol table info available.
#4  0x080b9bb0 in ?? ()
No symbol table info available.
#5  0xbfdeb810 in ?? ()
No symbol table info available.
#6  0xb745fc59 in ?? ()
No symbol table info available.
#7  0xb740c690 in ?? () at gnu_java_nio_VMChannel.c:1077
   from /usr/local/classpath/lib/classpath/libjavanio.so
        set_limit_mid = (jmethodID) 0x0
        address_fid = (jfieldID) 0x0
        thread_interrupted_mid = (jmethodID) 0x0
        array_offset_mid = (jmethodID) 0x0
        get_limit_mid = (jmethodID) 0x0
        array_mid = (jmethodID) 0x0
        set_position_mid = (jmethodID) 0x0
        has_array_mid = (jmethodID) 0x0
        vm_channel_class = (jclass) 0x0
        get_position_mid = (jmethodID) 0x0
#8  0xbfdeb7f4 in ?? ()
No symbol table info available.
#9  0xb7daa950 in jit_asm_compile (m=0x8428e30, mptr=0x0, sp=0x0,
ra=0x0)
    at jit.c:1700
        sfi = {prev = 0xb745fc59, method = 0x8405ae8, pv = 0xbfdeb820
"ðMá·", 
  sp = 0xb7dd6ef3 "\211ô\213\034$\213t$\004\213|$\bÉÃPèß\025üÿ\203Ä
\004ëæ\203ì\020\211\004$\211L$\004\211á\203Á\024\211L$\b\213T$\020\211T
$\fè\1779ýÿ\203Ä\020\205Àt\002ÿàè\031<üÿY\203é\002ë\003\203Ä\004\203ì
\020\211\034$º\020", 
  ra = 0xb7dd6ef3 "\211ô\213\034$\213t$\004\213|$\bÉÃPèß\025üÿ\203Ä
\004ëæ\203ì\020\211\004$\211L$\004\211á\203Á\024\211L$\b\213T$\020\211T
$\fè\1779ýÿ\203Ä\020\205Àt\002ÿàè\031<üÿY\203é\002ë\003\203Ä\004\203ì
\020\211\034$º\020", 
  xpc = 0xb7e14df0 "¼õ\v"}
        entrypoint = (u1 *) 0x0
        pa = (u1 *) 0x809c420 "tX@\b"
        p = (ptrint *) 0xb745fc40
#10 0xb7da68fc in vm_call_method_vmarg (m=0x8428e30, vmargscount=0,
vmargs=0x0)
    at vm.c:3332
        o = (java_objectheader *) 0x0
#11 0xb7da6832 in vm_call_method_valist (m=0x8428e30, o=0x0, 
    ap=0xbfdeb8d4 "øú\005\bI{Ú·\001") at vm.c:3211
        vmargscount = 0
        vmargs = (vm_arg *) 0x0
        ro = (java_objectheader *) 0xbfdeb890
        dumpsize = 0
#12 0xb7da67b5 in vm_call_method (m=0x8428e30, o=0x0) at vm.c:3170
        ap = 0xbfdeb8d4 "øú\005\bI{Ú·\001"
        ro = (java_objectheader *) 0x8428e30
#13 0xb7d9cc1e in initialize_class_intern (c=0x80b9bb0) at
initialize.c:188
        m = (methodinfo *) 0x8428e30
        xptr = (java_objectheader *) 0xb7dfe71b
#14 0xb7d9caa5 in initialize_class (c=0x80b9bb0) at initialize.c:106
        r = 3074807280
#15 0xb7da9f68 in jit_compile (m=0x8428fd0) at jit.c:1008
        r = (u1 *) 0xb7d7fe9a "U\211åS\203ì$èa\231ÿÿ\201ÃJO\t"
        jd = (jitdata *) 0x808bf4c
        dumpsize = 28
        __PRETTY_FUNCTION__ = "jit_compile"
#16 0xb7daa8f4 in jit_asm_compile (m=0x8428fd0, 
    mptr=0xb745f63c "¸Ð\217B\bº\roÝ·ÿâ\roÝ·8\220B\bLöE·¸8\220B\bº\roÝ·ÿâ
\roÝ· \220B\bdöE·¸ \220B\bº\roÝ·ÿâ\roÝ·\b\221B\b|öE·¸\b\221B\bº\roÝ·ÿâ
\roÝ·p\221B\b\224öE·¸p\221B\bº\roÝ·ÿâ\roÝ·Ø\221B\b¬öE·¸Ø\221B\bº\roÝ·ÿâ
\roÝ·@\222B\bÄöE·¸@\222B\bº\roÝ·ÿâ\roÝ·¨\222B\bÜöE·¸¨\222B\bº\roÝ·ÿâ
\roÝ·\020\223B\bôöE·¸\020\223B\bº\ro"..., 
---Type <return> to continue, or q <return> to quit---[B
    sp=0xbfdeb9d0 "0v\v\b\bºÞ¿-oÝ·H\224@\b\bºÞ¿ð¹Þ¿p_\n\bónÝ·ðMá·ð»Þ¿p_
\n\bðÕE·ðMá·ð»Þ¿8ºÞ¿ühÚ·H\224@\b", ra=0xb745d636 "\211D$\004¸\001") at
jit.c:1677
        sfi = {prev = 0xbfdebb64, method = 0x0, 
  pv = 0xb745d5f0 "\203ì\034\211|$\030\211t$\024\211l$\020¸èZ@\b\211\004
$¹\200ÙE·ÿÑ1ö¸0v\v\b\211\004$¸\\\211Ù·ÿÐ\205À\017\205\006", 
  sp = 0xbfdeb9d0 "0v\v\b\bºÞ¿-oÝ·H\224@\b\bºÞ¿ð¹Þ¿p_\n\bónÝ·ðMá·ð»Þ¿p_
\n\bðÕE·ðMá·ð»Þ¿8ºÞ¿ühÚ·H\224@\b", 
  ra = 0xb7dd6ef3 "\211ô\213\034$\213t$\004\213|$\bÉÃPèß\025üÿ\203Ä
\004ëæ\203ì\020\211\004$\211L$\004\211á\203Á\024\211L$\b\213T$\020\211T
$\fè\1779ýÿ\203Ä\020\205Àt\002ÿàè\031<üÿY\203é\002ë\003\203Ä\004\203ì
\020\211\034$º\020", 
  xpc = 0xb745d635 "Ñ\211D$\004¸\001"}
        entrypoint = (u1 *) 0x0
        pa = (u1 *) 0x84098c0 ""
        p = (ptrint *) 0xb745d9b7
#17 0xb7dd6f2d in asm_call_jit_compiler ()
   from /usr/local/cacao/lib/libjvm-0.98+svn.so
No symbol table info available.
#18 0x08428fd0 in ?? ()
No symbol table info available.
#19 0xb745f63c in ?? ()
No symbol table info available.
#20 0xbfdeb9d0 in ?? ()
No symbol table info available.
#21 0xb745d636 in ?? ()
No symbol table info available.
#22 0xb745d636 in ?? ()
No symbol table info available.
#23 0x080b7630 in ?? ()
No symbol table info available.
#24 0xbfdeba08 in ?? ()
No symbol table info available.
#25 0xb7dd6f2d in asm_call_jit_compiler ()
   from /usr/local/cacao/lib/libjvm-0.98+svn.so
No symbol table info available.
#26 0x08409448 in ?? ()
No symbol table info available.
#27 0xbfdeba08 in ?? ()
No symbol table info available.
#28 0xbfdeb9f0 in ?? ()
No symbol table info available.
#29 0x080a5f70 in ?? ()
No symbol table info available.
#30 0xb7dd6ef3 in L_asm_vm_call_method_copy_done ()
   from /usr/local/cacao/lib/libjvm-0.98+svn.so
No symbol table info available.
#31 0xb7e14df0 in ?? () from /usr/local/cacao/lib/libjvm-0.98+svn.so
No symbol table info available.
#32 0xbfdebbf0 in ?? ()
No symbol table info available.
#33 0x080a5f70 in ?? ()
No symbol table info available.
#34 0xb745d5f0 in ?? ()
No symbol table info available.
#35 0xb7e14df0 in ?? () from /usr/local/cacao/lib/libjvm-0.98+svn.so
No symbol table info available.
#36 0xbfdebbf0 in ?? ()
No symbol table info available.
#37 0xbfdeba38 in ?? ()
No symbol table info available.
#38 0xb7da68fc in vm_call_method_vmarg (m=0x8409448, vmargscount=0,
vmargs=0x0)
    at vm.c:3332
        o = (java_objectheader *) 0xb7e14df0
Backtrace stopped: frame did not save the PC

cacao -version reports this:

java version "1.5.0"
CACAO version 0.98+svn
Copyright (C) 1996-2005, 2006, 2007 R. Grafl, A. Krall, C. Kruegel,
C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
J. Wenninger, Institut f. Computersprachen - TU Wien

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2, or (at
your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

Configure/Build options:

  ./configure:  '--with-classpath-libdir=/usr/local/classpath/lib'
'--with-classpath-includedir=/usr/local/classpath/include/'
'--with-classpath-classes=/usr/local/classpath/share/classpath/glibj.zip' '--disable-jni'
  CC         :  (4.1.2 (Ubuntu 4.1.2-0ubuntu4))
  CFLAGS     : -O0 -g3 -D__I386__ -D__LINUX__ -ansi -pedantic -Wall
-Wno-long-long -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500
-D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE

Default variables:

  maximum heap size              : 134217728
  initial heap size              : 2097152
  stack size                     : 65536

java.boot.class.path           : /usr/local/cacao/share/cacao/vm.zip:/usr/local/classpath/share/classpath/glibj.zip
  gnu.classpath.boot.library.path: /usr/local/classpath/lib/classpath

Runtime variables:

  maximum heap size              : 134217728
  initial heap size              : 2097152
  stack size                     : 65536
  libjvm.so                      : /usr/local/cacao/lib/libjvm

java.boot.class.path           : /usr/local/cacao/share/cacao/vm.zip:/usr/local/classpath/share/classpath/glibj.zip
  gnu.classpath.boot.library.path: /usr/local/classpath/lib/classpath
  java.class.path                : .


Please note the --disable-jni option in the call to configure.
Compilation fails without it, reporting the following:

jni.c:6072: error: variable '_Jv_JNIInvokeInterface' has initializer but
incomplete type
jni.c:6073: warning: excess elements in struct initializer
jni.c:6073: warning: (near initialization for '_Jv_JNIInvokeInterface')
jni.c:6074: warning: excess elements in struct initializer
jni.c:6074: warning: (near initialization for '_Jv_JNIInvokeInterface')
jni.c:6075: warning: excess elements in struct initializer
jni.c:6075: warning: (near initialization for '_Jv_JNIInvokeInterface')
jni.c:6077: warning: excess elements in struct initializer
jni.c:6077: warning: (near initialization for '_Jv_JNIInvokeInterface')
jni.c:6078: warning: excess elements in struct initializer
jni.c:6078: warning: (near initialization for '_Jv_JNIInvokeInterface')
jni.c:6079: warning: excess elements in struct initializer
jni.c:6079: warning: (near initialization for '_Jv_JNIInvokeInterface')
jni.c:6080: warning: excess elements in struct initializer
jni.c:6080: warning: (near initialization for '_Jv_JNIInvokeInterface')
jni.c:6082: warning: excess elements in struct initializer
jni.c:6082: warning: (near initialization for '_Jv_JNIInvokeInterface')
jni.c:6087: error: variable '_Jv_JNINativeInterface' has initializer but
incomplete type
jni.c:6088: warning: excess elements in struct initializer
jni.c:6088: warning: (near initialization for '_Jv_JNINativeInterface')

...

jni.c:6348: warning: excess elements in struct initializer
jni.c:6348: warning: (near initialization for '_Jv_JNINativeInterface')
jni.c:6352: warning: excess elements in struct initializer
jni.c:6352: warning: (near initialization for '_Jv_JNINativeInterface')
jni.c:6353: warning: excess elements in struct initializer
jni.c:6353: warning: (near initialization for '_Jv_JNINativeInterface')
jni.c:6355: warning: excess elements in struct initializer
jni.c:6355: warning: (near initialization for '_Jv_JNINativeInterface')
make[4]: *** [jni.lo] Error 1
make[4]: Leaving directory `/home/boll/tmp/cacao-trunk/src/native'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/boll/tmp/cacao-trunk/src/native'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/boll/tmp/cacao-trunk/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/boll/tmp/cacao-trunk'
make: *** [all] Error 2

-- 
Søren O.

"Oh, bother" said the Borg, "we've assimilated Pooh".




[Index of Archives]     [Linux Kernel]     [Linux Cryptography]     [Fedora]     [Fedora Directory]     [Red Hat Development]

  Powered by Linux