diff options
author | Jim Ingham <jingham@apple.com> | 2011-05-17 22:24:54 +0000 |
---|---|---|
committer | Jim Ingham <jingham@apple.com> | 2011-05-17 22:24:54 +0000 |
commit | 17e5c4e26184121e5871af3f6f34a86b0ec75657 (patch) | |
tree | b6b0af0492347adf1a905e6a990756ca435b274f /lldb/source/Target/Process.cpp | |
parent | abffc991dc049416946c49b37e89c015c8bb66a9 (diff) | |
download | bcm5719-llvm-17e5c4e26184121e5871af3f6f34a86b0ec75657.tar.gz bcm5719-llvm-17e5c4e26184121e5871af3f6f34a86b0ec75657.zip |
RunThreadPlan should set the plan to "not private" since it needs that,
and then reset it to the original value when done.
llvm-svn: 131498
Diffstat (limited to 'lldb/source/Target/Process.cpp')
-rw-r--r-- | lldb/source/Target/Process.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp index 70ec107a7e3..d5a441bccba 100644 --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -3226,6 +3226,13 @@ Process::RunThreadPlan (ExecutionContext &exe_ctx, return eExecutionSetupError; } + // We rely on the thread plan we are running returning "PlanCompleted" if when it successfully completes. + // For that to be true the plan can't be private - since private plans suppress themselves in the + // GetCompletedPlan call. + + bool orig_plan_private = thread_plan_sp->GetPrivate(); + thread_plan_sp->SetPrivate(false); + if (m_private_state.GetValue() != eStateStopped) { errors.Printf ("RunThreadPlan called while the private state was not stopped."); @@ -3390,7 +3397,7 @@ Process::RunThreadPlan (ExecutionContext &exe_ctx, // Now mark this plan as private so it doesn't get reported as the stop reason // after this point. if (thread_plan_sp) - thread_plan_sp->SetPrivate (true); + thread_plan_sp->SetPrivate (orig_plan_private); return_value = eExecutionCompleted; } else |