summaryrefslogtreecommitdiffstats
path: root/vm/mterp/out/InterpC-portstd.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm/mterp/out/InterpC-portstd.c')
-rw-r--r--vm/mterp/out/InterpC-portstd.c26
1 files changed, 11 insertions, 15 deletions
diff --git a/vm/mterp/out/InterpC-portstd.c b/vm/mterp/out/InterpC-portstd.c
index bfda6713d..8b30bd6fc 100644
--- a/vm/mterp/out/InterpC-portstd.c
+++ b/vm/mterp/out/InterpC-portstd.c
@@ -1217,25 +1217,21 @@ bool INTERP_FUNC_NAME(Thread* self, InterpState* interpState)
interpState->pc,
interpState->method->name);
#endif
-
#if INTERP_TYPE == INTERP_DBG
- /* Check to see if we've got a trace selection request. If we do,
- * but something is amiss, revert to the fast interpreter.
- */
-#if !defined(WITH_SELF_VERIFICATION)
- if (dvmJitCheckTraceRequest(self,interpState)) {
- interpState->nextMode = INTERP_STD;
- //LOGD("** something wrong, exiting\n");
- return true;
- }
-#else
- if (interpState->jitState != kJitSelfVerification &&
- dvmJitCheckTraceRequest(self,interpState)) {
+ /* Check to see if we've got a trace selection request. */
+ if (
+#if defined(WITH_SELF_VERIFICATION)
+ (interpState->jitState != kJitSelfVerification) &&
+#endif
+ !gDvm.debuggerActive &&
+#if defined(WITH_PROFILER)
+ (gDvm.activeProfilers == 0) &&
+#endif
+ dvmJitCheckTraceRequest(self, interpState)) {
interpState->nextMode = INTERP_STD;
- //LOGD("** something wrong, exiting\n");
+ //LOGD("Invalid trace request, exiting\n");
return true;
}
-#endif /* WITH_SELF_VERIFICATION */
#endif /* INTERP_TYPE == INTERP_DBG */
#endif /* WITH_JIT */