summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/source/Target/ThreadPlanStepRange.cpp26
-rw-r--r--lldb/test/functionalities/inline-stepping/TestInlineStepping.py4
2 files changed, 20 insertions, 10 deletions
diff --git a/lldb/source/Target/ThreadPlanStepRange.cpp b/lldb/source/Target/ThreadPlanStepRange.cpp
index 14ed8b66075..73db0440087 100644
--- a/lldb/source/Target/ThreadPlanStepRange.cpp
+++ b/lldb/source/Target/ThreadPlanStepRange.cpp
@@ -146,9 +146,12 @@ ThreadPlanStepRange::InRange ()
if (log)
{
StreamString s;
- m_addr_context.line_entry.range.Dump (&s,
- m_thread.CalculateTarget().get(),
- Address::DumpStyleLoadAddress);
+ m_addr_context.line_entry.Dump (&s,
+ m_thread.CalculateTarget().get(),
+ true,
+ Address::DumpStyleLoadAddress,
+ Address::DumpStyleLoadAddress,
+ true);
log->Printf ("Step range plan stepped to another range of same line: %s", s.GetData());
}
@@ -167,9 +170,12 @@ ThreadPlanStepRange::InRange ()
if (log)
{
StreamString s;
- m_addr_context.line_entry.range.Dump (&s,
- m_thread.CalculateTarget().get(),
- Address::DumpStyleLoadAddress);
+ m_addr_context.line_entry.Dump (&s,
+ m_thread.CalculateTarget().get(),
+ true,
+ Address::DumpStyleLoadAddress,
+ Address::DumpStyleLoadAddress,
+ true);
log->Printf ("Step range plan stepped to the middle of new line(%d): %s, continuing to clear this line.",
new_context.line_entry.line,
@@ -367,6 +373,14 @@ ThreadPlanStepRange::GetPlanRunState ()
bool
ThreadPlanStepRange::MischiefManaged ()
{
+ // If we have pushed some plans between ShouldStop & MischiefManaged, then we're not done...
+ // I do this check first because we might have stepped somewhere that will fool InRange into
+ // thinking it needs to step past the end of that line. This happens, for instance, when stepping
+ // over inlined code that is in the middle of the current line.
+
+ if (!m_no_more_plans)
+ return false;
+
bool done = true;
if (!IsPlanComplete())
{
diff --git a/lldb/test/functionalities/inline-stepping/TestInlineStepping.py b/lldb/test/functionalities/inline-stepping/TestInlineStepping.py
index 849acd969fc..379fc3a4cea 100644
--- a/lldb/test/functionalities/inline-stepping/TestInlineStepping.py
+++ b/lldb/test/functionalities/inline-stepping/TestInlineStepping.py
@@ -25,8 +25,6 @@ class TestInlineStepping(TestBase):
self.buildDwarf()
self.inline_stepping()
- # <rdar://problem/12259124>
- @unittest2.expectedFailure
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@python_api_test
@dsym_test
@@ -35,8 +33,6 @@ class TestInlineStepping(TestBase):
self.buildDsym()
self.inline_stepping_step_over()
- # <rdar://problem/12259124>
- @unittest2.expectedFailure
@python_api_test
@dwarf_test
def test_step_over_with_dwarf_and_python_api(self):
OpenPOWER on IntegriCloud