summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/ThreadPlanStepRange.cpp
diff options
context:
space:
mode:
authorBoris Ulasevich <boris.ulasevich@gmail.com>2017-01-24 13:15:19 +0000
committerBoris Ulasevich <boris.ulasevich@gmail.com>2017-01-24 13:15:19 +0000
commit29a8eba9742d6ff8820d7196fb8a1f36011caa12 (patch)
tree41008b4043c1174f6523c00816266ada17692330 /lldb/source/Target/ThreadPlanStepRange.cpp
parent89e41b49f6f793a403edd9ec73798f76db65008c (diff)
downloadbcm5719-llvm-29a8eba9742d6ff8820d7196fb8a1f36011caa12.tar.gz
bcm5719-llvm-29a8eba9742d6ff8820d7196fb8a1f36011caa12.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) llvm-svn: 292930
Diffstat (limited to 'lldb/source/Target/ThreadPlanStepRange.cpp')
-rw-r--r--lldb/source/Target/ThreadPlanStepRange.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/lldb/source/Target/ThreadPlanStepRange.cpp b/lldb/source/Target/ThreadPlanStepRange.cpp
index dcee82ea32a..47672113c6b 100644
--- a/lldb/source/Target/ThreadPlanStepRange.cpp
+++ b/lldb/source/Target/ThreadPlanStepRange.cpp
@@ -461,6 +461,16 @@ bool ThreadPlanStepRange::IsPlanStale() {
// One tricky bit here is that some stubs don't push a frame, so we should.
// check that we are in the same symbol.
if (!InRange()) {
+ // Set plan Complete when we reach next instruction just after the range
+ lldb::addr_t addr = m_thread.GetRegisterContext()->GetPC() - 1;
+ size_t num_ranges = m_address_ranges.size();
+ for (size_t i = 0; i < num_ranges; i++) {
+ bool in_range = m_address_ranges[i].ContainsLoadAddress(
+ addr, m_thread.CalculateTarget().get());
+ if (in_range) {
+ SetPlanComplete();
+ }
+ }
return true;
}
}
OpenPOWER on IntegriCloud