harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gregory Shimansky (JIRA)" <j...@apache.org>
Subject [jira] Created: (HARMONY-5415) [drlvm][signals] Crash handler doesn't print stack trace when crash happens in VM _unwindable_ code
Date Tue, 22 Jan 2008 23:14:34 GMT
[drlvm][signals] Crash handler doesn't print stack trace when crash happens in VM _unwindable_
code
---------------------------------------------------------------------------------------------------

                 Key: HARMONY-5415
                 URL: https://issues.apache.org/jira/browse/HARMONY-5415
             Project: Harmony
          Issue Type: Bug
          Components: DRLVM
         Environment: All
            Reporter: Gregory Shimansky
            Priority: Minor


I am debugging some crashed code that crashes outside of BEGIN_RAISE_AREA - END_RAISE_AREA
region, but in VM code. In this case crash handler when it tries to print the stack shows
the following:

VM attached threads:

java: /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/jni/jni_utils.cpp:779: bool ensure_initialised(JNIEnv*,
Class*): Assertion `!is_unwindable()' failed.
Aborted (core dumped)

and dies without printing stack for any thread. This happens because crash handler tries to
execute some of VM code that executes 
ASSERT_RAISE_AREA (e.g. in ensure_initialised). Since the area is outside of RAISE, this assertion
fails. Stack dump for the crashed process looks like this:

(gdb) bt
#0  0x00002b2b31dd23c5 in raise () from /lib/libc.so.6
#1  0x00002b2b31dd373e in abort () from /lib/libc.so.6
#2  0x00002b2b31dcbb1f in __assert_fail () from /lib/libc.so.6
#3  0x00002aaaaabb01c8 in ensure_initialised (env=0xf6adf0, clss=0xa0dd90)
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/jni/jni_utils.cpp:779
#4  0x00002aaaaabaf466 in CallObjectMethodA (jni_env=0xf6adf0, obj=0xf7f110, methodID=0xa24740,
    args=0x1023850) at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/jni/jni_method.cpp:284
#5  0x00002aaaaabaf667 in CallObjectMethodV (jni_env=0xf6adf0, obj=0xf7f110, methodID=0xa24740,
    args=0x7fff78fafe50)
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/jni/jni_method.cpp:249
#6  0x00002aaaaabe18f1 in JNIEnv_External::CallObjectMethod (this=0xf6adf0, obj=0xf7f110,
    methodID=0xa24740) at /home/gregory/work/64/trunk/working_vm/vm/include/jni.h:731
#7  0x00002aaaaac1eecb in sd_print_threads_info (cur_thread=0x6456b0)
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/stack/stack_dump.cpp:394
#8  0x00002aaaaac1fa0c in sd_print_stack (regs=0x7fff78fb0080)
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/stack/stack_dump.cpp:433
#9  0x00002aaaaac1d7f8 in process_crash (regs=0x7fff78fb0080)
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/util/linux/ia32_em64t/signals_common.cpp:500
#10 0x00002aaaaac1d86c in general_crash_handler (signum=6, regs=0x7fff78fb0080,
    message=0x2aaaaad7f098 "SIGABRT")
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/util/linux/ia32_em64t/signals_common.cpp:513
#11 0x00002aaaaac1d9f3 in abort_handler (signum=6, info=0x7fff78fb02c0, context=0x7fff78fb0190)
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/util/linux/ia32_em64t/signals_common.cpp:492
#12 0x00002aaaaac1e221 in general_signal_handler (signum=6, info=0x7fff78fb02c0,
    context=0x7fff78fb0190)
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/util/linux/ia32_em64t/signals_common.cpp:564
#13 <signal handler called>
#14 0x00002b2b31dd23c5 in raise () from /lib/libc.so.6
#15 0x00002b2b31dd373e in abort () from /lib/libc.so.6
#16 0x00002b2b31dcbb1f in __assert_fail () from /lib/libc.so.6
#17 0x00002aaaaabb01c8 in ensure_initialised (env=0xf6adf0, clss=0xa0dd90)
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/jni/jni_utils.cpp:779
#18 0x00002aaaaabaf466 in CallObjectMethodA (jni_env=0xf6adf0, obj=0xf7f110, methodID=0xa24740,
    args=0x10339f0) at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/jni/jni_method.cpp:284
#19 0x00002aaaaabaf667 in CallObjectMethodV (jni_env=0xf6adf0, obj=0xf7f110, methodID=0xa24740,
    args=0x7fff78fb08d0)
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/jni/jni_method.cpp:249
#20 0x00002aaaaabe18f1 in JNIEnv_External::CallObjectMethod (this=0xf6adf0, obj=0xf7f110,
    methodID=0xa24740) at /home/gregory/work/64/trunk/working_vm/vm/include/jni.h:731
#21 0x00002aaaaac1eecb in sd_print_threads_info (cur_thread=0x6456b0)
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/stack/stack_dump.cpp:394
#22 0x00002aaaaac1fa0c in sd_print_stack (regs=0x7fff78fb0b00)
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/stack/stack_dump.cpp:433
#23 0x00002aaaaac1d7f8 in process_crash (regs=0x7fff78fb0b00)
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/util/linux/ia32_em64t/signals_common.cpp:500
#24 0x00002aaaaac1d86c in general_crash_handler (signum=11, regs=0x7fff78fb0b00,
    message=0x2aaaaad7f1ae "SIGSEGV")
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/util/linux/ia32_em64t/signals_common.cpp:513
---Type <return> to continue, or q <return> to quit---
#25 0x00002aaaaac1e07d in null_java_reference_handler (signum=11, info=0x7fff78fb0d70,
    context=0x7fff78fb0c40)
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/util/linux/ia32_em64t/signals_common.cpp:439
#26 0x00002aaaaac1e1fd in general_signal_handler (signum=11, info=0x7fff78fb0d70,
    context=0x7fff78fb0c40)
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/util/linux/ia32_em64t/signals_common.cpp:558
#27 <signal handler called>
#28 0x00002aaaaab1c940 in ManagedObject::vt (this=0x1c6)
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/include/object_layout.h:233
#29 0x00002aaaaab94642 in rth_invokevirtual_addr_withresolve (klass=0xc84b98, cp_idx=454,
    obj=0x1c6)
    at /home/gregory/work/64/trunk/working_vm/vm/vmcore/src/jit/jit_runtime_support.cpp:2195
#30 0x00002aaaacdce258 in ?? ()
#31 0xdeadbeef00030008 in ?? ()
#32 0x0000000000000000 in ?? ()


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message