diff options
| author | Jim Ingham <jingham@apple.com> | 2012-09-10 23:42:44 +0000 | 
|---|---|---|
| committer | Jim Ingham <jingham@apple.com> | 2012-09-10 23:42:44 +0000 | 
| commit | 927bfa3fd9416f9059a352ff7f1b5725c390f1d0 (patch) | |
| tree | c86f839c645ecb2fcfc0863401c63bd24b179ed3 | |
| parent | 4f9c4608748ab0797fbbe51e6123dc0f07e8f0b0 (diff) | |
| download | bcm5719-llvm-927bfa3fd9416f9059a352ff7f1b5725c390f1d0.tar.gz bcm5719-llvm-927bfa3fd9416f9059a352ff7f1b5725c390f1d0.zip  | |
Shortcut ThreadPlanStepRange::MischiefManaged - if we have pushed new plans and they are not done, then we aren't done either.
<rdar://problem/12259124>
llvm-svn: 163572
| -rw-r--r-- | lldb/source/Target/ThreadPlanStepRange.cpp | 26 | ||||
| -rw-r--r-- | lldb/test/functionalities/inline-stepping/TestInlineStepping.py | 4 | 
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):  | 

