diff --git a/tooling/agent/debugger_impl.cpp b/tooling/agent/debugger_impl.cpp index cbc2ec59605c7cd6cedd92ace2d95687b7b74997..ee8a602b3ae9fe1c2273e95f9fc35c16ef8b1614 100644 --- a/tooling/agent/debugger_impl.cpp +++ b/tooling/agent/debugger_impl.cpp @@ -1132,7 +1132,8 @@ void DebuggerImpl::UpdateScopeObject(const FrameHandler *frameHandler, void DebuggerImpl::ClearSingleStepper() { - if (singleStepper_ != nullptr) { + // ClearSingleStepper is originally called from Function::Call, if current depth is 0, then it is safe to reset + if (singleStepper_ != nullptr && DebuggerApi::GetStackDepth(vm_) == 0) { singleStepper_.reset(); } }