[Lldb-commits] [lldb] r163433 - in /lldb/trunk: include/lldb/Target/Thread.h source/Target/Thread.cpp

Jim Ingham jingham at apple.com
Fri Sep 7 16:36:43 PDT 2012


Author: jingham
Date: Fri Sep  7 18:36:43 2012
New Revision: 163433

URL: http://llvm.org/viewvc/llvm-project?rev=163433&view=rev
Log:
Save and restore the current inlined depth over function calls.

Modified:
    lldb/trunk/include/lldb/Target/Thread.h
    lldb/trunk/source/Target/Thread.cpp

Modified: lldb/trunk/include/lldb/Target/Thread.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/Thread.h?rev=163433&r1=163432&r2=163433&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Target/Thread.h (original)
+++ lldb/trunk/include/lldb/Target/Thread.h Fri Sep  7 18:36:43 2012
@@ -128,6 +128,8 @@
         uint32_t           orig_stop_id;  // Dunno if I need this yet but it is an interesting bit of data.
         lldb::StopInfoSP   stop_info_sp;  // You have to restore the stop info or you might continue with the wrong signals.
         RegisterCheckpoint register_backup;  // You need to restore the registers, of course...
+        uint32_t           current_inlined_depth;
+        lldb::addr_t       current_inlined_pc;
     };
 
     static void
@@ -280,7 +282,7 @@
     uint32_t
     GetCurrentInlinedDepth()
     {
-        return GetStackFrameList()->DecrementCurrentInlinedDepth();
+        return GetStackFrameList()->GetCurrentInlinedDepth();
     }
     
     virtual lldb::StackFrameSP

Modified: lldb/trunk/source/Target/Thread.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Thread.cpp?rev=163433&r1=163432&r2=163433&view=diff
==============================================================================
--- lldb/trunk/source/Target/Thread.cpp (original)
+++ lldb/trunk/source/Target/Thread.cpp Fri Sep  7 18:36:43 2012
@@ -241,6 +241,8 @@
     ProcessSP process_sp (GetProcess());
     if (process_sp)
         saved_state.orig_stop_id = process_sp->GetStopID();
+    saved_state.current_inlined_depth = GetCurrentInlinedDepth();
+    
     return true;
 }
 
@@ -251,6 +253,7 @@
     if (saved_state.stop_info_sp)
         saved_state.stop_info_sp->MakeStopInfoValid();
     SetStopInfo(saved_state.stop_info_sp);
+    GetStackFrameList()->SetCurrentInlinedDepth (saved_state.current_inlined_depth);
     return true;
 }
 





More information about the lldb-commits mailing list