diff options
Diffstat (limited to 'runtime/mirror')
-rw-r--r-- | runtime/mirror/art_method.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/runtime/mirror/art_method.cc b/runtime/mirror/art_method.cc index ffee59edc0..c1f7594578 100644 --- a/runtime/mirror/art_method.cc +++ b/runtime/mirror/art_method.cc @@ -401,7 +401,9 @@ void ArtMethod::Invoke(Thread* self, uint32_t* args, uint32_t args_size, JValue* Runtime* runtime = Runtime::Current(); // Call the invoke stub, passing everything as arguments. - if (UNLIKELY(!runtime->IsStarted())) { + // If the runtime is not yet started or it is required by the debugger, then perform the + // Invocation by the interpreter. + if (UNLIKELY(!runtime->IsStarted() || Dbg::IsForcedInterpreterNeededForCalling(self, this))) { if (IsStatic()) { art::interpreter::EnterInterpreterFromInvoke(self, this, nullptr, args, result); } else { |