LLDB mainline
|
#include <DynamicRegisterInfo.h>
Classes | |
struct | Register |
Public Types | |
typedef std::vector< lldb_private::RegisterInfo > | reg_collection |
Protected Types | |
typedef std::vector< lldb_private::RegisterSet > | set_collection |
typedef std::vector< uint32_t > | reg_num_collection |
typedef std::vector< reg_num_collection > | set_reg_num_collection |
typedef std::vector< lldb_private::ConstString > | name_collection |
typedef std::map< uint32_t, reg_num_collection > | reg_to_regs_map |
typedef std::map< uint32_t, uint32_t > | reg_offset_map |
Protected Member Functions | |
DynamicRegisterInfo (DynamicRegisterInfo &)=default | |
DynamicRegisterInfo & | operator= (DynamicRegisterInfo &)=default |
llvm::Expected< uint32_t > | ByteOffsetFromSlice (uint32_t index, llvm::StringRef slice_str, lldb::ByteOrder byte_order) |
llvm::Expected< uint32_t > | ByteOffsetFromComposite (uint32_t index, lldb_private::StructuredData::Array &composite_reg_list, lldb::ByteOrder byte_order) |
llvm::Expected< uint32_t > | ByteOffsetFromRegInfoDict (uint32_t index, lldb_private::StructuredData::Dictionary ®_info_dict, lldb::ByteOrder byte_order) |
void | MoveFrom (DynamicRegisterInfo &&info) |
void | Finalize (const lldb_private::ArchSpec &arch) |
void | ConfigureOffsets () |
Protected Attributes | |
reg_collection | m_regs |
set_collection | m_sets |
set_reg_num_collection | m_set_reg_nums |
name_collection | m_set_names |
reg_to_regs_map | m_value_regs_map |
reg_to_regs_map | m_invalidate_regs_map |
reg_offset_map | m_value_reg_offset_map |
size_t | m_reg_data_byte_size = 0u |
bool | m_finalized = false |
bool | m_is_reconfigurable = false |
Definition at line 21 of file DynamicRegisterInfo.h.
|
protected |
Definition at line 98 of file DynamicRegisterInfo.h.
typedef std::vector<lldb_private::RegisterInfo> lldb_private::DynamicRegisterInfo::reg_collection |
Definition at line 88 of file DynamicRegisterInfo.h.
|
protected |
Definition at line 96 of file DynamicRegisterInfo.h.
|
protected |
Definition at line 100 of file DynamicRegisterInfo.h.
|
protected |
Definition at line 99 of file DynamicRegisterInfo.h.
|
protected |
Definition at line 95 of file DynamicRegisterInfo.h.
|
protected |
Definition at line 97 of file DynamicRegisterInfo.h.
|
protecteddefault |
|
default |
DynamicRegisterInfo::DynamicRegisterInfo | ( | const lldb_private::StructuredData::Dictionary & | dict, |
const lldb_private::ArchSpec & | arch | ||
) |
Definition at line 23 of file DynamicRegisterInfo.cpp.
References SetRegisterInfo().
|
virtualdefault |
DynamicRegisterInfo::DynamicRegisterInfo | ( | DynamicRegisterInfo && | info | ) |
Definition at line 29 of file DynamicRegisterInfo.cpp.
References MoveFrom().
|
protected |
Definition at line 129 of file DynamicRegisterInfo.cpp.
References lldb::eRegisterKindLLDB, lldb_private::ConstString::GetCString(), lldb_private::StructuredData::Array::GetItemAtIndexAsString(), GetRegisterInfo(), lldb_private::StructuredData::Array::GetSize(), lldb_private::ConstString::GetStringRef(), m_invalidate_regs_map, m_value_regs_map, and UINT32_MAX.
Referenced by ByteOffsetFromRegInfoDict().
|
protected |
Definition at line 169 of file DynamicRegisterInfo.cpp.
References ByteOffsetFromComposite(), ByteOffsetFromSlice(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsArray(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsInteger(), and lldb_private::StructuredData::Dictionary::GetValueForKeyAsString().
Referenced by SetRegisterInfo().
|
protected |
Definition at line 59 of file DynamicRegisterInfo.cpp.
References lldb::eByteOrderBig, lldb::eByteOrderLittle, lldb::eRegisterKindLLDB, GetRegisterInfo(), m_invalidate_regs_map, and m_value_regs_map.
Referenced by ByteOffsetFromRegInfoDict().
void DynamicRegisterInfo::Clear | ( | ) |
Definition at line 726 of file DynamicRegisterInfo.cpp.
References m_finalized, m_invalidate_regs_map, m_reg_data_byte_size, m_regs, m_set_names, m_set_reg_nums, m_sets, and m_value_regs_map.
Referenced by SetRegisterInfo().
|
protected |
Definition at line 618 of file DynamicRegisterInfo.cpp.
References lldb::eRegisterKindLLDB, lldb::eRegisterKindProcessPlugin, GetRegisterInfoAtIndex(), LLDB_INVALID_INDEX32, m_reg_data_byte_size, m_regs, and m_value_reg_offset_map.
Referenced by Finalize(), and lldb_private::process_gdb_remote::GDBRemoteDynamicRegisterInfo::UpdateARM64SVERegistersInfos().
uint32_t DynamicRegisterInfo::ConvertRegisterKindToRegisterNumber | ( | uint32_t | kind, |
uint32_t | num | ||
) | const |
Definition at line 715 of file DynamicRegisterInfo.cpp.
References LLDB_INVALID_REGNUM, and m_regs.
Referenced by RegisterContextMemory::ConvertRegisterKindToRegisterNumber(), and GetRegisterInfo().
void DynamicRegisterInfo::Dump | ( | ) | const |
Definition at line 737 of file DynamicRegisterInfo.cpp.
References lldb_private::Stream::EOL(), lldb::eRegisterKindDWARF, lldb::eRegisterKindEHFrame, lldb::eRegisterKindGeneric, lldb::eRegisterKindProcessPlugin, lldb_private::FormatManager::GetFormatAsCString(), LLDB_INVALID_REGNUM, m_regs, m_sets, lldb_private::Stream::Printf(), and registers().
|
protected |
Definition at line 426 of file DynamicRegisterInfo.cpp.
References ConfigureOffsets(), lldb::eRegisterKindGeneric, lldb_private::ArchSpec::GetMachine(), lldb_private::ArchSpec::GetTriple(), LLDB_INVALID_REGNUM, LLDB_REGNUM_GENERIC_FLAGS, LLDB_REGNUM_GENERIC_FP, LLDB_REGNUM_GENERIC_PC, LLDB_REGNUM_GENERIC_RA, LLDB_REGNUM_GENERIC_SP, m_finalized, m_invalidate_regs_map, m_is_reconfigurable, m_regs, m_set_reg_nums, m_sets, and m_value_regs_map.
Referenced by SetRegisterInfo().
size_t DynamicRegisterInfo::GetNumRegisters | ( | ) | const |
Definition at line 669 of file DynamicRegisterInfo.cpp.
References m_regs.
Referenced by RegisterContextMemory::GetRegisterCount(), and RegisterContextMemory::RegisterContextMemory().
size_t DynamicRegisterInfo::GetNumRegisterSets | ( | ) | const |
Definition at line 671 of file DynamicRegisterInfo.cpp.
References m_sets.
Referenced by RegisterContextMemory::GetRegisterSetCount().
size_t DynamicRegisterInfo::GetRegisterDataByteSize | ( | ) | const |
Definition at line 673 of file DynamicRegisterInfo.cpp.
References m_reg_data_byte_size.
Referenced by RegisterContextMemory::RegisterContextMemory().
const lldb_private::RegisterInfo * DynamicRegisterInfo::GetRegisterInfo | ( | llvm::StringRef | reg_name | ) | const |
Definition at line 790 of file DynamicRegisterInfo.cpp.
References m_regs.
Definition at line 684 of file DynamicRegisterInfo.cpp.
References ConvertRegisterKindToRegisterNumber(), LLDB_INVALID_REGNUM, and m_regs.
Referenced by ByteOffsetFromComposite(), ByteOffsetFromSlice(), and SetRegisterInfo().
const RegisterInfo * DynamicRegisterInfo::GetRegisterInfoAtIndex | ( | uint32_t | i | ) | const |
Definition at line 678 of file DynamicRegisterInfo.cpp.
References m_regs.
Referenced by ConfigureOffsets(), and RegisterContextMemory::GetRegisterInfoAtIndex().
const RegisterSet * DynamicRegisterInfo::GetRegisterSet | ( | uint32_t | i | ) | const |
Definition at line 692 of file DynamicRegisterInfo.cpp.
References m_sets.
Referenced by RegisterContextMemory::GetRegisterSet().
uint32_t DynamicRegisterInfo::GetRegisterSetIndexByName | ( | const lldb_private::ConstString & | set_name, |
bool | can_create | ||
) |
Definition at line 699 of file DynamicRegisterInfo.cpp.
References lldb_private::ConstString::AsCString(), m_set_names, m_set_reg_nums, and m_sets.
Referenced by SetRegisterInfo().
bool DynamicRegisterInfo::IsReconfigurable | ( | ) |
Definition at line 667 of file DynamicRegisterInfo.cpp.
References m_is_reconfigurable.
|
protected |
Definition at line 39 of file DynamicRegisterInfo.cpp.
References m_finalized, m_invalidate_regs_map, m_reg_data_byte_size, m_regs, m_set_names, m_set_reg_nums, m_sets, m_value_regs_map, and registers().
Referenced by DynamicRegisterInfo(), and operator=().
DynamicRegisterInfo & DynamicRegisterInfo::operator= | ( | DynamicRegisterInfo && | info | ) |
Definition at line 34 of file DynamicRegisterInfo.cpp.
References MoveFrom().
|
protecteddefault |
|
inline |
Definition at line 89 of file DynamicRegisterInfo.h.
References m_regs.
Referenced by Dump(), and MoveFrom().
size_t DynamicRegisterInfo::SetRegisterInfo | ( | const lldb_private::StructuredData::Dictionary & | dict, |
const lldb_private::ArchSpec & | arch | ||
) |
Definition at line 194 of file DynamicRegisterInfo.cpp.
References lldb_private::ConstString::AsCString(), ByteOffsetFromRegInfoDict(), Clear(), lldb_private::StructuredData::Object::DumpToStdout(), lldb::eEncodingUint, lldb::eFormatHex, lldb::eRegisterKindDWARF, lldb::eRegisterKindEHFrame, lldb::eRegisterKindGeneric, lldb::eRegisterKindLLDB, lldb::eRegisterKindProcessPlugin, lldb_private::Status::Fail(), Finalize(), lldb_private::ArchSpec::GetByteOrder(), lldb_private::ConstString::GetCString(), lldb_private::StructuredData::Array::GetItemAtIndexAsDictionary(), lldb_private::StructuredData::Array::GetItemAtIndexAsInteger(), lldb_private::StructuredData::Array::GetItemAtIndexAsString(), lldb_private::GetLog(), GetRegisterInfo(), lldb_private::StructuredData::Array::GetSize(), lldb_private::ConstString::GetStringRef(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsArray(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsInteger(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsString(), lldb_private::ConstString::IsEmpty(), LLDB_INVALID_REGNUM, LLDB_LOG_ERROR, m_finalized, m_invalidate_regs_map, m_reg_data_byte_size, m_regs, m_set_reg_nums, m_sets, lldb_private::Object, lldb_private::Args::StringToEncoding(), lldb_private::Args::StringToGenericRegister(), lldb_private::OptionArgParser::ToFormat(), and UINT64_MAX.
Referenced by DynamicRegisterInfo().
size_t DynamicRegisterInfo::SetRegisterInfo | ( | std::vector< Register > && | regs, |
const lldb_private::ArchSpec & | arch | ||
) |
Definition at line 383 of file DynamicRegisterInfo.cpp.
References lldb_private::DynamicRegisterInfo::Register::alt_name, lldb_private::ConstString::AsCString(), lldb_private::DynamicRegisterInfo::Register::byte_offset, lldb_private::DynamicRegisterInfo::Register::byte_size, lldb_private::DynamicRegisterInfo::Register::encoding, Finalize(), lldb_private::DynamicRegisterInfo::Register::format, GetRegisterSetIndexByName(), lldb_private::DynamicRegisterInfo::Register::invalidate_regs, m_finalized, m_invalidate_regs_map, m_regs, m_set_names, m_set_reg_nums, m_sets, m_value_reg_offset_map, m_value_regs_map, lldb_private::DynamicRegisterInfo::Register::name, lldb_private::DynamicRegisterInfo::Register::regnum_dwarf, lldb_private::DynamicRegisterInfo::Register::regnum_ehframe, lldb_private::DynamicRegisterInfo::Register::regnum_generic, lldb_private::DynamicRegisterInfo::Register::regnum_remote, lldb_private::DynamicRegisterInfo::Register::set_name, lldb_private::DynamicRegisterInfo::Register::value_reg_offset, and lldb_private::DynamicRegisterInfo::Register::value_regs.
|
protected |
Definition at line 127 of file DynamicRegisterInfo.h.
Referenced by Clear(), Finalize(), MoveFrom(), and SetRegisterInfo().
|
protected |
Definition at line 123 of file DynamicRegisterInfo.h.
Referenced by ByteOffsetFromComposite(), ByteOffsetFromSlice(), Clear(), Finalize(), MoveFrom(), and SetRegisterInfo().
|
protected |
Definition at line 128 of file DynamicRegisterInfo.h.
Referenced by Finalize(), and IsReconfigurable().
|
protected |
Definition at line 125 of file DynamicRegisterInfo.h.
Referenced by Clear(), ConfigureOffsets(), GetRegisterDataByteSize(), MoveFrom(), and SetRegisterInfo().
|
protected |
Definition at line 118 of file DynamicRegisterInfo.h.
Referenced by Clear(), ConfigureOffsets(), ConvertRegisterKindToRegisterNumber(), Dump(), Finalize(), GetNumRegisters(), GetRegisterInfo(), GetRegisterInfoAtIndex(), MoveFrom(), registers(), SetRegisterInfo(), and lldb_private::process_gdb_remote::GDBRemoteDynamicRegisterInfo::UpdateARM64SVERegistersInfos().
|
protected |
Definition at line 121 of file DynamicRegisterInfo.h.
Referenced by Clear(), GetRegisterSetIndexByName(), MoveFrom(), and SetRegisterInfo().
|
protected |
Definition at line 120 of file DynamicRegisterInfo.h.
Referenced by Clear(), Finalize(), GetRegisterSetIndexByName(), MoveFrom(), and SetRegisterInfo().
|
protected |
Definition at line 119 of file DynamicRegisterInfo.h.
Referenced by Clear(), Dump(), Finalize(), GetNumRegisterSets(), GetRegisterSet(), GetRegisterSetIndexByName(), MoveFrom(), and SetRegisterInfo().
|
protected |
Definition at line 124 of file DynamicRegisterInfo.h.
Referenced by ConfigureOffsets(), and SetRegisterInfo().
|
protected |
Definition at line 122 of file DynamicRegisterInfo.h.
Referenced by ByteOffsetFromComposite(), ByteOffsetFromSlice(), Clear(), Finalize(), MoveFrom(), and SetRegisterInfo().