diff --git a/lldb/source/Target/Thread.cpp b/lldb/source/Target/Thread.cpp index 267f1fc89996..6d03b2f32826 100644 --- a/lldb/source/Target/Thread.cpp +++ b/lldb/source/Target/Thread.cpp @@ -93,13 +93,22 @@ Thread::GetStopInfo () if (plan_sp) return StopInfo::CreateStopReasonWithPlan (plan_sp); else - return GetPrivateStopReason (); + { + if (m_actual_stop_info_sp + && m_actual_stop_info_sp->IsValid() + && m_thread_stop_reason_stop_id == m_process.GetStopID()) + return m_actual_stop_info_sp; + else + return GetPrivateStopReason (); + } } void Thread::SetStopInfo (const lldb::StopInfoSP &stop_info_sp) { m_actual_stop_info_sp = stop_info_sp; + if (m_actual_stop_info_sp) + m_actual_stop_info_sp->MakeStopInfoValid(); m_thread_stop_reason_stop_id = GetProcess().GetStopID(); }