You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Ilya Berezhniuk (JIRA)" <ji...@apache.org> on 2008/01/30 15:38:34 UTC

[jira] Updated: (HARMONY-5415) [drlvm][signals] Crash handler doesn't print stack trace when crash happens in VM _unwindable_ code

     [ https://issues.apache.org/jira/browse/HARMONY-5415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ilya Berezhniuk updated HARMONY-5415:
-------------------------------------

    Attachment: H-5415.patch

Suggested patch fixes the problem for me.

> [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
>         Attachments: H-5415.patch
>
>
> 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.