Initial check-in of "fancy" inlined stepping.  Doesn't do anything useful unless you switch LLDB_FANCY_INLINED_STEPPING to true.  With that
on, basic inlined stepping works, including step-over of inlined functions.  But for some as yet mysterious reason i386 debugging gets an
assert and dies immediately.  So for now its off.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@163044 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Target/Thread.cpp b/source/Target/Thread.cpp
index 7ff006c..9de1691 100644
--- a/source/Target/Thread.cpp
+++ b/source/Target/Thread.cpp
@@ -349,15 +349,22 @@
     // plans in case a plan needs to do any special business before it runs.
     
     ThreadPlan *plan_ptr = GetCurrentPlan();
-    plan_ptr->WillResume(resume_state, true);
+    bool need_to_resume = plan_ptr->WillResume(resume_state, true);
 
     while ((plan_ptr = GetPreviousPlan(plan_ptr)) != NULL)
     {
         plan_ptr->WillResume (resume_state, false);
     }
     
-    m_actual_stop_info_sp.reset();
-    return true;
+    // If the WillResume for the plan says we are faking a resume, then it will have set an appropriate stop info.
+    // In that case, don't reset it here.
+    
+    if (need_to_resume)
+    {
+        m_actual_stop_info_sp.reset();
+    }
+
+    return need_to_resume;
 }
 
 void
@@ -409,7 +416,10 @@
                          GetRegisterContext()->GetPC());
         return false;
     }
-
+    
+    // Adjust the stack frame's current inlined depth if it is needed.
+    GetStackFrameList()->CalculateCurrentInlinedDepth();
+    
     if (log)
     {
         log->Printf ("Thread::%s for tid = 0x%4.4llx, pc = 0x%16.16llx",