diff options
| author | Boris Ulasevich <boris.ulasevich@gmail.com> | 2017-02-15 11:42:47 +0000 |
|---|---|---|
| committer | Boris Ulasevich <boris.ulasevich@gmail.com> | 2017-02-15 11:42:47 +0000 |
| commit | 86aaa8a28d3faa928f471c74e74cc7e1689face9 (patch) | |
| tree | a1047b0d900acb4777494dac1d7a013b22eafc46 /lldb/source/Target/Process.cpp | |
| parent | 216bb2df3687b7972f91db4a009545a87cb5475c (diff) | |
| download | bcm5719-llvm-86aaa8a28d3faa928f471c74e74cc7e1689face9.tar.gz bcm5719-llvm-86aaa8a28d3faa928f471c74e74cc7e1689face9.zip | |
Bug 30863 - Step doesn't stop with conditional breakpoint on the next line
Differential Revisions:
https://reviews.llvm.org/D26497 (committed r290168, temporary reverted r290197)
https://reviews.llvm.org/D28945 (fix for Ubuntu tests fail)
https://reviews.llvm.org/D29909 (fix for TestCallThatThrows test fail)
llvm-svn: 295168
Diffstat (limited to 'lldb/source/Target/Process.cpp')
| -rw-r--r-- | lldb/source/Target/Process.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp index c1a518cad78..f68a67c706a 100644 --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -5227,15 +5227,9 @@ Process::RunThreadPlan(ExecutionContext &exe_ctx, do_resume = false; handle_running_event = true; } else { - StopInfoSP stop_info_sp(thread_sp->GetStopInfo()); - StopReason stop_reason = eStopReasonInvalid; - if (stop_info_sp) - stop_reason = stop_info_sp->GetStopReason(); - - // FIXME: We only check if the stop reason is plan complete, - // should we make sure that - // it is OUR plan that is complete? - if (stop_reason == eStopReasonPlanComplete) { + ThreadPlanSP plan = thread->GetCompletedPlan(); + if (plan == thread_plan_sp && plan->PlanSucceeded()) { + if (log) log->PutCString("Process::RunThreadPlan(): execution " "completed successfully."); @@ -5246,9 +5240,11 @@ Process::RunThreadPlan(ExecutionContext &exe_ctx, return_value = eExpressionCompleted; } else { + StopInfoSP stop_info_sp = thread_sp->GetStopInfo(); // Something restarted the target, so just wait for it to // stop for real. - if (stop_reason == eStopReasonBreakpoint) { + if (stop_info_sp && + stop_info_sp->GetStopReason() == eStopReasonBreakpoint) { if (log) log->Printf("Process::RunThreadPlan() stopped for " "breakpoint: %s.", |

