Looks good, some very minor comments inlined, fine to commit after those are
tweaked. Have you tried exercising the code? Either with an architecture
default unwindplan in your ABI or with your eh_frame parser? I'd like to know
that it actually works for you. :)
================
Comment at: source/Plugins/Process/Utility/RegisterContextLLDB.cpp:1422
@@ -1421,2 +1421,3 @@
m_full_unwind_plan_sp = m_fallback_unwind_plan_sp;
+ uint32_t cfa_regnum = active_row->GetCFARegister();
addr_t cfa_regval = LLDB_INVALID_ADDRESS;
----------------
I don't see cfa_regnum being used in this code block.
================
Comment at: source/Plugins/Process/Utility/RegisterContextLLDB.cpp:1426
@@ -1424,3 +1425,3 @@
{
m_cfa = cfa_regval + active_row->GetCFAOffset ();
}
----------------
I think ReadCFAValueForRow should add active_row->GetCFAOffset to the cfa
register value itself (and the same thing up at line 575 for the previous call
to ReadCFAValueForRow. I bet you can drop the cfa_regval variable entirely and
just have m_cfa. This will break some UnwindLogMsg calls -- but I think
ReadCFAValueForRow() should UnwindLogMsg the CFA register value and offset if
it's a reg+offset CFA.
================
Comment at: source/Plugins/Process/Utility/RegisterContextLLDB.cpp:1461
@@ +1460,3 @@
+ value = reg_value.GetAsUInt64();
+ UnwindLogMsg("dereferenced address: %p yields: %lx\n", tmp, value);
+ return error.Success();
----------------
When printing an addr_t, you should use PRIx64. e.g. "dereferenced address:
0x%" PRIx64 " yields: 0x%" PRIx64, tmp, value);". also, no \n at the end of
UnwindLogMsgs.
================
Comment at: source/Symbol/UnwindPlan.cpp:23
@@ -22,2 +22,3 @@
UnwindPlan::Row::RegisterLocation::operator == (const
UnwindPlan::Row::RegisterLocation& rhs) const
{
+ bool is_match = true;
----------------
I don't have any problem with the changes to
UnwindPlan::Row::RegisterLocation::operator == - but what motivated this
change? It seems like it's functionally the same. Am I missing something?
http://reviews.llvm.org/D6182
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits