Don't cache the public stop reason, since it can change as plan completion gets processed. That means GetStopReason needs to return a shared pointer, not a pointer to the thread's cached version. Also allow the thread plans to get and set the thread private stop reason - that is usually more appropriate for the logic the thread plans need to do.
llvm-svn: 116892
This commit is contained in:
@@ -110,9 +110,9 @@ ThreadPlanTestCondition::ShouldStop (Event *event_ptr)
|
||||
Process::ProcessEventData *new_data = new Process::ProcessEventData (m_thread.GetProcess().GetSP(), eStateStopped);
|
||||
event_ptr->SetData(new_data);
|
||||
event_ptr->SetType(Process::eBroadcastBitStateChanged);
|
||||
m_thread.SetStopInfo(StopInfo::CreateStopReasonWithBreakpointSiteID (m_thread,
|
||||
m_break_loc_sp->GetBreakpointSite()->GetID(),
|
||||
m_did_stop));
|
||||
SetStopInfo(StopInfo::CreateStopReasonWithBreakpointSiteID (m_thread,
|
||||
m_break_loc_sp->GetBreakpointSite()->GetID(),
|
||||
m_did_stop));
|
||||
if (m_did_stop)
|
||||
{
|
||||
Process::ProcessEventData::SetRestartedInEvent (event_ptr, false);
|
||||
|
||||
Reference in New Issue
Block a user