You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ge...@apache.org on 2006/11/03 19:33:53 UTC
svn commit: r470936 - in
/incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti:
jvmti_event.cpp jvmti_step.cpp
Author: geirm
Date: Fri Nov 3 10:33:52 2006
New Revision: 470936
URL: http://svn.apache.org/viewvc?view=rev&rev=470936
Log:
HARMONY-1891
[drlvm][jvmti] VM hangs after multiple Single Step event enabling
Ubuntu 6 - smoke, c-unit, ~smoke
Modified:
incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_event.cpp
incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_step.cpp
Modified: incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_event.cpp
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_event.cpp?view=diff&rev=470936&r1=470935&r2=470936
==============================================================================
--- incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_event.cpp (original)
+++ incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_event.cpp Fri Nov 3 10:33:52 2006
@@ -1828,6 +1828,13 @@
assert(JVMTI_ERROR_NONE == errorCode);
vm_thread->ss_state->predicted_breakpoints = NULL;
+
+ // There is no need to set a breakpoint in a thread which
+ // is started inside of jvmti_send_thread_start_end_event() function.
+ // This function is called when no java code in the new thread is
+ // executed yet, so this function just sets single step state for this
+ // thread. When this thread will be ran, calling the first java method
+ // will set a breakpoint on the first bytecode if this mehod.
}
}
else
Modified: incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_step.cpp
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_step.cpp?view=diff&rev=470936&r1=470935&r2=470936
==============================================================================
--- incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_step.cpp (original)
+++ incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_step.cpp Fri Nov 3 10:33:52 2006
@@ -906,6 +906,9 @@
if( single_step_enabled ) {
// single step is already enabled
+ tm_ret = hythread_resume_all(NULL);
+ if (TM_ERROR_NONE != tm_ret)
+ return JVMTI_ERROR_INTERNAL;
return JVMTI_ERROR_NONE;
}
@@ -968,6 +971,7 @@
// single step is already disabled
return JVMTI_ERROR_NONE;
}
+
// Suspend all threads except current
IDATA tm_ret = hythread_suspend_all(&threads_iterator, NULL);
if (TM_ERROR_NONE != tm_ret)
@@ -979,6 +983,9 @@
if( !single_step_enabled ) {
// single step is already disabled
+ tm_ret = hythread_resume_all(NULL);
+ if (TM_ERROR_NONE != tm_ret)
+ return JVMTI_ERROR_INTERNAL;
return JVMTI_ERROR_NONE;
}