Added support for rewriting objc_msgSend so we can
call Objective-C methods from expressions.  Also added
some more logging to the function-calling thread plan
so that we can see the registers when a function
finishes.

Also documented things maybe a bit better.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@109938 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Target/ThreadPlanCallFunction.cpp b/source/Target/ThreadPlanCallFunction.cpp
index 55e9d25..7dc3047 100644
--- a/source/Target/ThreadPlanCallFunction.cpp
+++ b/source/Target/ThreadPlanCallFunction.cpp
@@ -181,6 +181,25 @@
 {
     if (PlanExplainsStop())
     {
+        Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_STEP);
+        
+        if (log)
+        {
+            RegisterContext *reg_ctx = m_thread.GetRegisterContext();
+
+            log->PutCString("Function completed.  Register state was:");
+
+            for (uint32_t register_index = 0, num_registers = reg_ctx->GetRegisterCount();
+                 register_index < num_registers;
+                 ++register_index)
+            {
+                const char *register_name = reg_ctx->GetRegisterName(register_index);
+                uint64_t register_value = reg_ctx->ReadRegisterAsUnsigned(register_index, LLDB_INVALID_ADDRESS);
+                
+                log->Printf("  %s = 0x%llx", register_name, register_value);
+            }
+        }
+        
         m_thread.RestoreSaveFrameZero(m_register_backup);
         m_thread.ClearStackFrames();
         SetPlanComplete();