diff options
author | Greg Clayton <gclayton@apple.com> | 2012-08-24 02:01:39 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2012-08-24 02:01:39 +0000 |
commit | a83b6cf2446ebba78ec38564b7021da08187ed4b (patch) | |
tree | 755778b3dd2c24f58f2afdbedc9f0337ed5c340b /lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp | |
parent | b710b8db3d911f5c7899dcb6dd9ca249d44b8455 (diff) | |
download | bcm5719-llvm-a83b6cf2446ebba78ec38564b7021da08187ed4b.tar.gz bcm5719-llvm-a83b6cf2446ebba78ec38564b7021da08187ed4b.zip |
We have a partially working OS plug-in through python!
llvm-svn: 162532
Diffstat (limited to 'lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp')
-rw-r--r-- | lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp b/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp index 10bfd2e9ee8..ede2c5a3bbc 100644 --- a/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp +++ b/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp @@ -132,18 +132,24 @@ DynamicRegisterInfo::SetRegisterInfo (const lldb_private::PythonDataDictionary & reg_info.encoding = eEncodingUint; const int64_t set = reg_info_dict.GetItemForKeyAsInteger(set_pystr, -1); - if (set == -1) + if (set >= m_sets.size()) { Clear(); return 0; } - m_set_reg_nums[set].push_back(i); reg_info.kinds[lldb::eRegisterKindLLDB] = i; reg_info.kinds[lldb::eRegisterKindGDB] = i; reg_info.kinds[lldb::eRegisterKindGCC] = reg_info_dict.GetItemForKeyAsInteger(gcc_pystr, LLDB_INVALID_REGNUM); reg_info.kinds[lldb::eRegisterKindDWARF] = reg_info_dict.GetItemForKeyAsInteger(dwarf_pystr, LLDB_INVALID_REGNUM); reg_info.kinds[lldb::eRegisterKindGeneric] = Args::StringToGenericRegister (reg_info_dict.GetItemForKeyAsString(generic_pystr)); + const size_t end_reg_offset = reg_info.byte_offset + reg_info.byte_size; + if (m_reg_data_byte_size < end_reg_offset) + m_reg_data_byte_size = end_reg_offset; + + m_regs.push_back (reg_info); + m_set_reg_nums[set].push_back(i); + } else { |