[Lldb-commits] [lldb] r221790 - FIx a bug with PC-register handling in a RA register.

Justin Hibbits jrh29 at alumni.cwru.edu
Wed Nov 12 07:14:12 PST 2014


Author: jhibbits
Date: Wed Nov 12 09:14:12 2014
New Revision: 221790

URL: http://llvm.org/viewvc/llvm-project?rev=221790&view=rev
Log:
FIx a bug with PC-register handling in a RA register.

The addition of RegisterNumber introduced a bug where if the PC is stored in a
return address register, such as on ARM and PowerPC, this register number is
retrieved and used, but never checked in the row if it's saved.  Correct this by
setting the variable that's used to the new register number.

Patch by Jason Molenda.

Modified:
    lldb/trunk/source/Plugins/Process/Utility/RegisterContextLLDB.cpp

Modified: lldb/trunk/source/Plugins/Process/Utility/RegisterContextLLDB.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/RegisterContextLLDB.cpp?rev=221790&r1=221789&r2=221790&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/RegisterContextLLDB.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/RegisterContextLLDB.cpp Wed Nov 12 09:14:12 2014
@@ -1190,6 +1190,7 @@ RegisterContextLLDB::SavedLocationForReg
             {
                 
                 return_address_reg.init (m_thread, m_full_unwind_plan_sp->GetRegisterKind(), m_full_unwind_plan_sp->GetReturnAddressRegister());
+                regnum = return_address_reg;
                 UnwindLogMsg ("requested caller's saved PC but this UnwindPlan uses a RA reg; getting %s (%d) instead",
                               return_address_reg.GetName(), return_address_reg.GetAsKind (eRegisterKindLLDB));
             }





More information about the lldb-commits mailing list