I am still having trouble getting hellworld to run. Currently the problem
is that for some reason in dll_jit.cpp on line 62, where the call is made to
apr_dso_load, the second parameter which is the path to the dll becomes
address out of bounds in the apr_dso_load procedure.
Egor suggested that perhaps APR configured itself incorrectly on my system.
Alexey suggested I try to run the APR test. I ran the APR tests and all
tests passed (in /build/lnx_ia32_gcc_debug/semis/extra/apr/src/test).
Below is what happens in gdb. Also below that I have pasted what happens at
the end of the output when I run ./java -Xthread -Xtrace helloworld.
Another thing that is suspicious is that when I run ./java it works fine,
but if I run "./java -Xthread -Xtrace" it does not run fine (it hangs inside
GetObjectClass). I have also pasted the end of the trace for this.
Let me know if there is any other debugging information I can provide.
(gdb) r helloworld
Starting program:
/scratch/anavabi/Harmony/enhanced/drlvm/trunk/build/deploy/jre/bin/java
helloworld
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 16947)]
[New Thread 32769 (LWP 16950)]
[New Thread 16386 (LWP 16951)]
Breakpoint 2 at 0xb6e28ca5: file
/scratch/anavabi/Harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/vm_main.cpp
, line 628.
Pending breakpoint "vm_main.cpp:628" resolved
[Switching to Thread 16384 (LWP 16947)]
Breakpoint 2, vm_load_jit (file_name=0x80aa83c
"/scratch/anavabi/Harmony/enhanced/drlvm/trunk/build/deploy/jre/bin/default/
/libjitrino.so", handle=0xbff4ff4c)
at
/scratch/anavabi/Harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/vm_main.cpp
:628
628 Dll_JIT* jit = new Dll_JIT(file_name);
Current language: auto; currently c++
(gdb) s
Dll_JIT (this=0x80aa708, dll_filename=0x80aa83c
"/scratch/anavabi/Harmony/enhanced/drlvm/trunk/build/deploy/jre/bin/default/
/libjitrino.so")
at
/scratch/anavabi/Harmony/enhanced/drlvm/trunk/vm/vmcore/src/jit/dll_jit.cpp:
56
56 {
(gdb) n
59 memset((void *) &jit_flags, 0, sizeof(JIT_Flags));
(gdb) n
60 apr_pool_create(&pool, 0);
(gdb) n
62 if ((stat = apr_dso_load(&handle, dll_filename, pool)) !=
APR_SUCCESS)
(gdb) p dll_filename
$1 = 0x80aa83c
"/scratch/anavabi/Harmony/enhanced/drlvm/trunk/build/deploy/jre/bin/default/
/libjitrino.so"
(gdb) s
apr_dso_load (res_handle=0x102, path=0x102 <Address 0x102 out of bounds>,
pool=0x8090c30) at dso.c:139
139 os_handle = dlopen(path, flags);
Current language: auto; currently c
(gdb) p path
$2 = 0x102 <Address 0x102 out of bounds>
./java -Xthread -Xtrace helloworld
.
[0x4000] : END class prepare, class name = java/lang/Runtime$ShutdownVM
[0x4000] : StartLoading class java/lang/RuntimePermission with loader
0x80be790
[0x8003] : gc_thread_init 0x807e718
[0x8003] : FindClass called, name = java/lang/Thread
[0x8003] : FindClass called, name = java/lang/Thread
[0x8003] : si_goto_previous from ip = (nil) (M2N)
[0x8003] : si_unwind_from_m2n, ip = (nil)
[0x8003] : si_goto_previous to ip = (nil) (M2N)
[0x8003] : StartLoading class java/lang/Thread with loader 0x8633d90
[0x8003] : 0x8633d90 0x807e658 I java/lang/Thread
[0x8003] : Loader U (0x8633d90) loading class: java/lang/Thread...
[0x8003] : enter method java/lang/ClassLoader loadClass
(Ljava/lang/String;)Ljava/lang/Class;
[0x4000] : EM: compile done:[JET_DPGO n=789: OK]
java/lang/Runtime::addShutdownHook(Ljava/lang/Thread;)V
(hangs here)
./java -Xthread -Xtrace
.
[0x4000] : GetObjectClass called
[0x4000] : GetObjectClass: class = [Ljava/lang/Class;
[0x8003] : gc_thread_init 0x807e718
[0x8003] : FindClass called, name = java/lang/Thread
[0x8003] : FindClass called, name = java/lang/Thread
[0x8003] : si_goto_previous from ip = (nil) (M2N)
[0x8003] : si_unwind_from_m2n, ip = (nil)
[0x8003] : si_goto_previous to ip = (nil) (M2N)
[0x8003] : StartLoading class java/lang/Thread with loader 0x8633df0
[0x8003] : 0x8633df0 0x807e658 I java/lang/Thread
[0x8003] : Loader U (0x8633df0) loading class: java/lang/Thread...
[0x8003] : enter method java/lang/ClassLoader loadClass
(Ljava/lang/String;)Ljava/lang/Class;
[0x4000] : GetObjectClass called
Thanks,
Armand