Index: source/Target/Thread.cpp =================================================================== --- source/Target/Thread.cpp +++ source/Target/Thread.cpp @@ -427,6 +427,12 @@ } else { + if (m_temporary_resume_state == eStateStopped || m_temporary_resume_state == eStateSuspended) + { + SetStopInfo(m_stop_info_sp); // This thread hasn't been running, so the stop info is still valid. + return m_stop_info_sp; + } + if ((m_stop_info_stop_id == stop_id) || // Stop info is valid, just return what we have (even if empty) (m_stop_info_sp && m_stop_info_sp->IsValid())) // Stop info is valid, just return what we have { @@ -746,8 +752,9 @@ // If the WillResume for the plan says we are faking a resume, then it will have set an appropriate stop info. // In that case, don't reset it here. + // Also, don't reset in case we're stopped or suspended, as the stop info will remain unchanged. - if (need_to_resume && resume_state != eStateSuspended) + if (need_to_resume && resume_state != eStateSuspended && resume_state != eStateStopped) { m_stop_info_sp.reset(); }