mgorny created this revision. mgorny added reviewers: labath, krytarowski, emaste, jasonmolenda, JDevlieghere. mgorny requested review of this revision.
Fix the DynamicRegisterInfo::ConfigureOffsets() method to treat value_regs as local register numbers (eRegisterKindLLDB) rather than gdb-remote numbers (eRegisterKindProcessPlugin). This seems consistent with other uses in the class, and it fixes calculating register offsets when remote and local register numbers are not in sync. https://reviews.llvm.org/D108768 Files: lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp Index: lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp =================================================================== --- lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp +++ lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp @@ -663,9 +663,7 @@ if (reg.byte_offset == LLDB_INVALID_INDEX32) { uint32_t value_regnum = reg.value_regs[0]; if (value_regnum != LLDB_INVALID_INDEX32) - reg.byte_offset = - GetRegisterInfoAtIndex(remote_to_local_regnum_map[value_regnum]) - ->byte_offset; + reg.byte_offset = GetRegisterInfoAtIndex(value_regnum)->byte_offset; } }
Index: lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp =================================================================== --- lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp +++ lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp @@ -663,9 +663,7 @@ if (reg.byte_offset == LLDB_INVALID_INDEX32) { uint32_t value_regnum = reg.value_regs[0]; if (value_regnum != LLDB_INVALID_INDEX32) - reg.byte_offset = - GetRegisterInfoAtIndex(remote_to_local_regnum_map[value_regnum]) - ->byte_offset; + reg.byte_offset = GetRegisterInfoAtIndex(value_regnum)->byte_offset; } }
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits