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();