[Lldb-commits] [lldb] r163572 - in /lldb/trunk: source/Target/ThreadPlanStepRange.cpp test/functionalities/inline-stepping/TestInlineStepping.py
Jim Ingham
jingham at apple.com
Mon Sep 10 16:42:45 PDT 2012
Author: jingham
Date: Mon Sep 10 18:42:44 2012
New Revision: 163572
URL: http://llvm.org/viewvc/llvm-project?rev=163572&view=rev
Log:
Shortcut ThreadPlanStepRange::MischiefManaged - if we have pushed new plans and they are not done, then we aren't done either.
<rdar://problem/12259124>
Modified:
lldb/trunk/source/Target/ThreadPlanStepRange.cpp
lldb/trunk/test/functionalities/inline-stepping/TestInlineStepping.py
Modified: lldb/trunk/source/Target/ThreadPlanStepRange.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/ThreadPlanStepRange.cpp?rev=163572&r1=163571&r2=163572&view=diff
==============================================================================
--- lldb/trunk/source/Target/ThreadPlanStepRange.cpp (original)
+++ lldb/trunk/source/Target/ThreadPlanStepRange.cpp Mon Sep 10 18:42:44 2012
@@ -146,9 +146,12 @@
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 @@
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 @@
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())
{
Modified: lldb/trunk/test/functionalities/inline-stepping/TestInlineStepping.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/inline-stepping/TestInlineStepping.py?rev=163572&r1=163571&r2=163572&view=diff
==============================================================================
--- lldb/trunk/test/functionalities/inline-stepping/TestInlineStepping.py (original)
+++ lldb/trunk/test/functionalities/inline-stepping/TestInlineStepping.py Mon Sep 10 18:42:44 2012
@@ -25,8 +25,6 @@
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 @@
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):
More information about the lldb-commits
mailing list