Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
Windows/x86, harmony-jdk-r553376
Description
After applying patch HARMONY-2889 for JDWP agent the following JDWP stress test:
org.apache.harmony.test.stress.jpda.jdwp.scenario.EVENT014.EventTest014
crashes DRLVM in function jvmti_start_single_step_in_virtual_method(), file jvmti_step.cpp, line 504: assertion "vtable".
Stack trace is the following:
> harmonyvm.dll!_assert(const char * expr=0x007fe9cc, const char * filename=0x007fe970, unsigned int lineno=504) Line 295 C
harmonyvm.dll!jvmti_start_single_step_in_virtual_method(DebugUtilsTI * ti=0x016150a0, VMBreakPoint * bp=0x03e9fa94, void * data=0x038d5950) Line 504 + 0x1a C++
harmonyvm.dll!jvmti_process_jit_single_step_event(TIEnv * unused_env=0x00000000, VMBreakPoint * bp=0x03e9fa94, void * data=0x038d5950) Line 589 + 0x11 C++
harmonyvm.dll!VMBreakPoints::process_native_breakpoint() Line 673 + 0x25 C++
harmonyvm.dll!process_native_breakpoint_event() Line 1329 C++
harmonyvm.dll!asm_process_native_breakpoint_event() Line 1341 C++
12737a4c()
harmonyvm.dll!vm_invoke_native_array_stub(unsigned int * args=0x03e9fd14, int sz=1, void * f=0x0188c5d0) Line 77 C++
harmonyvm.dll!JIT_execute_method_default(void * jit=0x00000000, _jmethodID * methodID=0x02f9a148, jvalue * return_value=0x00000000, jvalue * args=0x03e9fef4) Line 200 C++
em.dll!DrlEMImpl::executeMethod(_jmethodID * meth=0x02f9a148, jvalue * return_value=0x00000000, jvalue * args=0x03e9fef4) Line 509 + 0x16 C++
em.dll!ExecuteMethod(_jmethodID * meth=0x02f9a148, jvalue * return_value=0x00000000, jvalue * args=0x03e9fef4) Line 43 + 0x21 C++
harmonyvm.dll!vm_execute_java_method_array(_jmethodID * method=0x02f9a148, jvalue * result=0x00000000, jvalue * args=0x03e9fef4) Line 60 + 0x1b C++
harmonyvm.dll!Objects_To_Finalize::do_finalization(int quantity=0) Line 519 + 0xf C++
harmonyvm.dll!vm_do_finalization(int quantity=0) Line 631 C++
harmonyvm.dll!finalizer_thread_func(void * * args=0x035f02a0) Line 241 + 0x7 C++
hythr.dll!thread_start_proc(void * arg=0x00427320) Line 729 + 0x9 C
hythr.dll!_threadstartex(void * ptd=0x00427418) Line 241 + 0xd C
kernel32.dll!77e66063()
This crash happens only in JIT mode. If debugg VM is started in -Xint mode (using option "-Djpda.settings.debuggeeVMExtraOptions=-Xint"), test successfully passes. I believe this is bug in implementation of JVMTI single step support in JIT mode.
Attachments
Attachments
Issue Links
- depends upon
-
HARMONY-2889 [jdktools][jdwp] group identical Breakpoint, Step, MethodEntry, MethodExit events
- Closed
- is duplicated by
-
HARMONY-4981 [drlvm][jvmti] single step crash in the virtual method
- Closed