GCJ Interpreter SEGV w/ Dynamically Linked Program

Craig A. Vanderborgh craigv@voxware.com
Tue Dec 13 17:02:00 GMT 2005


Hello Everyone:

I have made some progress getting the 4.1-112505 snapshot running.  
Right now, I am testing on 2 platforms, one is x86 linux (RHEL4) and the 
other is PowerPC 604.  I have correct builds for both, but am having one 
last problem, which is reproducible on both.

For DYNAMICALLY LINKED programs, the GCJ interpreter fails with a SEGV 
when it is processing JavaScript stuff in our browser.  A typical stack 
trace (on RHEL4/X86) looks like this:

#0  0x005f17a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
(gdb) where
#0  0x005f17a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1  0x00250955 in raise () from /lib/tls/libc.so.6
#2  0x00252319 in abort () from /lib/tls/libc.so.6
#3  0x008d25b8 in _Jv_Throw (value=0x441588) at 
../../../gcc-4.1-20051125/libjava/exception.cc:111
#4  0x008c5ccb in catch_segv (_dummy=Could not find the frame base for 
"catch_segv".
) at ../../../gcc-4.1-20051125/libjava/prims.cc:152
#5  <signal handler called>
#6  0x02368902 in ?? ()
#7  0x00b0e027 in ffi_call_SYSV () at 
../../../gcc-4.1-20051125/libffi/src/x86/sysv.S:60
#8  0x00b0ddc3 in ffi_raw_call (cif=0x3a11278, fn=0x2368900, 
rvalue=0xbfee0718, fake_avalue=0xbfee0490)
    at ../../../gcc-4.1-20051125/libffi/src/x86/ffi.c:449
#9  0x008dc535 in _Jv_InterpMethod::run (retp=0xbfee0920, 
args=0xbfee0940, meth=0x4c9070)
    at ../../../gcc-4.1-20051125/libjava/interpret.cc:1217
#10 0x008df61b in _Jv_InterpMethod::run_normal (ret=0xbfee0920, 
args=0xbfee0940, __this=0x4c9070)
    at ../../../gcc-4.1-20051125/libjava/interpret.cc:252
#11 0x00b0e101 in ffi_closure_raw_SYSV () at 
../../../gcc-4.1-20051125/libffi/src/x86/sysv.S:225
#12 0x080864f7 in voxware::browser::Expr::evaluateInScriptable ()
#13 0x08086378 in voxware::browser::Expr::evaluate ()
#14 0x08097e4c in voxware::browser::SystemProperty::enter ()
#15 0x0809f327 in voxware::browser::ScopeElement::modifyProperties ()
#16 0x08091c22 in voxware::browser::Page::interpret ()
#17 0x080730cd in voxware::browser::Application::interpret ()
#18 0x080a103e in voxware::browser::Session::interpret ()
#19 0x080a4162 in voxware::browser::Session::run ()
#20 0x080a42d9 in voxware::browser::Session::run ()
#21 0x0807fd6b in voxware::browser::DOMBrowser::main ()
#22 0x008f3044 in gnu::java::lang::MainThread::call_main (this=0x65ee0)
    at ../../../gcc-4.1-20051125/libjava/gnu/java/lang/natMainThread.cc:47
#23 0x00924ca7 in gnu.java.lang.MainThread.run() (this=0x65ee0) at 
MainThread.java:105
#24 0x009022fb in _Jv_ThreadRun (thread=0x65ee0) at 
../../../gcc-4.1-20051125/libjava/java/lang/natThread.cc:299
#25 0x008c700a in _Jv_RunMain (vm_args=0x0, klass=0x837b380, name=0x0, 
argc=16, argv=0xbfee0e04, is_jar=false)
    at ../../../gcc-4.1-20051125/libjava/prims.cc:1389
#26 0x008c7184 in _Jv_RunMain (klass=0x837b380, name=0x0, argc=16, 
argv=0xbfee0e04, is_jar=false)
    at ../../../gcc-4.1-20051125/libjava/prims.cc:1400
#27 0x008c71c7 in JvRunMain (klass=0x837b380, argc=16, argv=0xbfee0e04) 
at ../../../gcc-4.1-20051125/libjava/prims.cc:1406
#28 0x0805f508 in main ()
(gdb)

So at the time it fails, it's in FFI closures doing something that's 
needed as part of JS interpretation.  That's all I really know right now 
and it's not that much to go on.

But isn't the fact that the application works when statically linked a 
pretty big clue?  Any ideas about how to proceed from here?

Any input greatly appreciated...

Thanks in advance,
craig vanderborgh
voxware incorporated



More information about the Java mailing list