[Lldb-commits] [lldb] r277185 - Some code that is sanity checking stepping out back out from one inlined

Jim Ingham via lldb-commits lldb-commits at lists.llvm.org
Fri Jul 29 11:09:12 PDT 2016


Author: jingham
Date: Fri Jul 29 13:09:12 2016
New Revision: 277185

URL: http://llvm.org/viewvc/llvm-project?rev=277185&view=rev
Log:
Some code that is sanity checking stepping out back out from one inlined
frame to another was triggering an early stop when stepping back out to a
real frame.  Check that we're doing this only for inlined frames.

<rdar://problem/26482931>

Modified:
    lldb/trunk/source/Target/ThreadPlanStepOverRange.cpp

Modified: lldb/trunk/source/Target/ThreadPlanStepOverRange.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/ThreadPlanStepOverRange.cpp?rev=277185&r1=277184&r2=277185&view=diff
==============================================================================
--- lldb/trunk/source/Target/ThreadPlanStepOverRange.cpp (original)
+++ lldb/trunk/source/Target/ThreadPlanStepOverRange.cpp Fri Jul 29 13:09:12 2016
@@ -118,6 +118,12 @@ ThreadPlanStepOverRange::IsEquivalentCon
         {
             if (m_addr_context.function && m_addr_context.function == context.function)
             {
+                // It is okay to return to a different block of a straight function, we only have to 
+                // be more careful if returning from one inlined block to another.
+                if (m_addr_context.block->GetInlinedFunctionInfo() == nullptr
+                    && context.block->GetInlinedFunctionInfo() == nullptr)
+                    return true;
+                
                 if (m_addr_context.block && m_addr_context.block == context.block)
                     return true;
             }




More information about the lldb-commits mailing list