LLDB mainline
|
#include <DynamicRegisterInfo.h>
Classes | |
struct | Register |
Public Types | |
typedef std::vector< lldb_private::RegisterInfo > | reg_collection |
typedef llvm::iterator_range< reg_collection::const_iterator > | reg_collection_const_range |
typedef llvm::iterator_range< reg_collection::iterator > | reg_collection_range |
Static Public Member Functions | |
static std::unique_ptr< DynamicRegisterInfo > | Create (const StructuredData::Dictionary &dict, const ArchSpec &arch) |
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) |
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 22 of file DynamicRegisterInfo.h.
|
protected |
Definition at line 105 of file DynamicRegisterInfo.h.
typedef std::vector<lldb_private::RegisterInfo> lldb_private::DynamicRegisterInfo::reg_collection |
Definition at line 91 of file DynamicRegisterInfo.h.
typedef llvm::iterator_range<reg_collection::const_iterator> lldb_private::DynamicRegisterInfo::reg_collection_const_range |
Definition at line 93 of file DynamicRegisterInfo.h.
typedef llvm::iterator_range<reg_collection::iterator> lldb_private::DynamicRegisterInfo::reg_collection_range |
Definition at line 94 of file DynamicRegisterInfo.h.
|
protected |
Definition at line 103 of file DynamicRegisterInfo.h.
|
protected |
Definition at line 107 of file DynamicRegisterInfo.h.
|
protected |
Definition at line 106 of file DynamicRegisterInfo.h.
|
protected |
Definition at line 102 of file DynamicRegisterInfo.h.
|
protected |
Definition at line 104 of file DynamicRegisterInfo.h.
|
protecteddefault |
|
default |
|
virtualdefault |
DynamicRegisterInfo::DynamicRegisterInfo | ( | DynamicRegisterInfo && | info | ) |
Definition at line 36 of file DynamicRegisterInfo.cpp.
References MoveFrom().
|
protected |
Definition at line 136 of file DynamicRegisterInfo.cpp.
References lldb_private::RegisterInfo::byte_offset, lldb::eRegisterKindLLDB, lldb_private::StructuredData::Array::GetItemAtIndexAsString(), GetRegisterInfo(), lldb_private::StructuredData::Array::GetSize(), lldb_private::RegisterInfo::kinds, m_invalidate_regs_map, m_value_regs_map, and UINT32_MAX.
Referenced by ByteOffsetFromRegInfoDict().
|
protected |
Definition at line 176 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 66 of file DynamicRegisterInfo.cpp.
References lldb_private::RegisterInfo::byte_offset, lldb_private::RegisterInfo::byte_size, lldb::eByteOrderBig, lldb::eByteOrderLittle, lldb::eRegisterKindLLDB, GetRegisterInfo(), lldb_private::RegisterInfo::kinds, m_invalidate_regs_map, and m_value_regs_map.
Referenced by ByteOffsetFromRegInfoDict().
void DynamicRegisterInfo::Clear | ( | ) |
Definition at line 740 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().
void DynamicRegisterInfo::ConfigureOffsets | ( | ) |
Definition at line 632 of file DynamicRegisterInfo.cpp.
References lldb_private::RegisterInfo::byte_offset, 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::ArchitectureAArch64::ReconfigureRegisterInfo().
uint32_t DynamicRegisterInfo::ConvertRegisterKindToRegisterNumber | ( | uint32_t | kind, |
uint32_t | num | ||
) | const |
Definition at line 729 of file DynamicRegisterInfo.cpp.
References LLDB_INVALID_REGNUM, and m_regs.
Referenced by RegisterContextMemory::ConvertRegisterKindToRegisterNumber(), and GetRegisterInfo().
|
static |
Definition at line 24 of file DynamicRegisterInfo.cpp.
Referenced by lldb_private::ScriptedThread::GetDynamicRegisterInfo().
void DynamicRegisterInfo::Dump | ( | ) | const |
Definition at line 751 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 439 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 683 of file DynamicRegisterInfo.cpp.
References m_regs.
Referenced by RegisterContextMemory::GetRegisterCount(), and RegisterContextMemory::RegisterContextMemory().
size_t DynamicRegisterInfo::GetNumRegisterSets | ( | ) | const |
Definition at line 685 of file DynamicRegisterInfo.cpp.
References m_sets.
Referenced by RegisterContextMemory::GetRegisterSetCount().
size_t DynamicRegisterInfo::GetRegisterDataByteSize | ( | ) | const |
Definition at line 687 of file DynamicRegisterInfo.cpp.
References m_reg_data_byte_size.
Referenced by lldb_private::ArchitectureAArch64::ReconfigureRegisterInfo(), and RegisterContextMemory::RegisterContextMemory().
const lldb_private::RegisterInfo * DynamicRegisterInfo::GetRegisterInfo | ( | llvm::StringRef | reg_name | ) | const |
Definition at line 804 of file DynamicRegisterInfo.cpp.
References m_regs.
const RegisterInfo * DynamicRegisterInfo::GetRegisterInfo | ( | uint32_t | kind, |
uint32_t | num | ||
) | const |
Definition at line 698 of file DynamicRegisterInfo.cpp.
References ConvertRegisterKindToRegisterNumber(), LLDB_INVALID_REGNUM, and m_regs.
Referenced by ByteOffsetFromComposite(), ByteOffsetFromSlice(), lldb_private::ArchitectureAArch64::ReconfigureRegisterInfo(), and SetRegisterInfo().
const RegisterInfo * DynamicRegisterInfo::GetRegisterInfoAtIndex | ( | uint32_t | i | ) | const |
Definition at line 692 of file DynamicRegisterInfo.cpp.
References m_regs.
Referenced by ConfigureOffsets(), and RegisterContextMemory::GetRegisterInfoAtIndex().
const RegisterSet * DynamicRegisterInfo::GetRegisterSet | ( | uint32_t | i | ) | const |
Definition at line 706 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 713 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 681 of file DynamicRegisterInfo.cpp.
References m_is_reconfigurable.
|
protected |
Definition at line 46 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 41 of file DynamicRegisterInfo.cpp.
References MoveFrom().
|
protecteddefault |
|
inline |
Definition at line 138 of file DynamicRegisterInfo.h.
References m_regs.
|
delete |
Referenced by Dump(), MoveFrom(), and lldb_private::ArchitectureAArch64::ReconfigureRegisterInfo().
size_t DynamicRegisterInfo::SetRegisterInfo | ( | const lldb_private::StructuredData::Dictionary & | dict, |
const lldb_private::ArchSpec & | arch | ||
) |
Definition at line 201 of file DynamicRegisterInfo.cpp.
References lldb_private::RegisterInfo::alt_name, lldb_private::ConstString::AsCString(), lldb_private::RegisterInfo::byte_offset, lldb_private::RegisterInfo::byte_size, ByteOffsetFromRegInfoDict(), Clear(), lldb_private::StructuredData::Object::DumpToStdout(), lldb::eEncodingUint, lldb::eFormatHex, lldb_private::RegisterInfo::encoding, lldb::eRegisterKindDWARF, lldb::eRegisterKindEHFrame, lldb::eRegisterKindGeneric, lldb::eRegisterKindLLDB, lldb::eRegisterKindProcessPlugin, lldb_private::Status::Fail(), Finalize(), lldb_private::RegisterInfo::format, 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::StructuredData::Dictionary::GetValueForKeyAsArray(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsInteger(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsString(), lldb_private::RegisterInfo::kinds, 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::RegisterInfo::name, lldb_private::Object, lldb_private::Args::StringToEncoding(), lldb_private::Args::StringToGenericRegister(), lldb_private::OptionArgParser::ToFormat(), and UINT64_MAX.
size_t DynamicRegisterInfo::SetRegisterInfo | ( | std::vector< Register > && | regs, |
const lldb_private::ArchSpec & | arch | ||
) |
Definition at line 396 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::flags_type, 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 132 of file DynamicRegisterInfo.h.
Referenced by Clear(), Finalize(), MoveFrom(), and SetRegisterInfo().
|
protected |
Definition at line 128 of file DynamicRegisterInfo.h.
Referenced by ByteOffsetFromComposite(), ByteOffsetFromSlice(), Clear(), Finalize(), MoveFrom(), and SetRegisterInfo().
|
protected |
Definition at line 133 of file DynamicRegisterInfo.h.
Referenced by Finalize(), and IsReconfigurable().
|
protected |
Definition at line 130 of file DynamicRegisterInfo.h.
Referenced by Clear(), ConfigureOffsets(), GetRegisterDataByteSize(), MoveFrom(), and SetRegisterInfo().
|
protected |
Definition at line 123 of file DynamicRegisterInfo.h.
Referenced by Clear(), ConfigureOffsets(), ConvertRegisterKindToRegisterNumber(), Dump(), Finalize(), GetNumRegisters(), GetRegisterInfo(), GetRegisterInfoAtIndex(), MoveFrom(), registers(), and SetRegisterInfo().
|
protected |
Definition at line 126 of file DynamicRegisterInfo.h.
Referenced by Clear(), GetRegisterSetIndexByName(), MoveFrom(), and SetRegisterInfo().
|
protected |
Definition at line 125 of file DynamicRegisterInfo.h.
Referenced by Clear(), Finalize(), GetRegisterSetIndexByName(), MoveFrom(), and SetRegisterInfo().
|
protected |
Definition at line 124 of file DynamicRegisterInfo.h.
Referenced by Clear(), Dump(), Finalize(), GetNumRegisterSets(), GetRegisterSet(), GetRegisterSetIndexByName(), MoveFrom(), and SetRegisterInfo().
|
protected |
Definition at line 129 of file DynamicRegisterInfo.h.
Referenced by ConfigureOffsets(), and SetRegisterInfo().
|
protected |
Definition at line 127 of file DynamicRegisterInfo.h.
Referenced by ByteOffsetFromComposite(), ByteOffsetFromSlice(), Clear(), Finalize(), MoveFrom(), and SetRegisterInfo().