LLDB mainline
lldb_private::DynamicRegisterInfo Class Reference

#include <DynamicRegisterInfo.h>

Inheritance diagram for lldb_private::DynamicRegisterInfo:
[legend]

Classes

struct  Register

Public Types

typedef std::vector< lldb_private::RegisterInforeg_collection
typedef llvm::iterator_range< reg_collection::const_iterator > reg_collection_const_range
typedef llvm::iterator_range< reg_collection::iterator > reg_collection_range

Public Member Functions

 DynamicRegisterInfo ()=default
virtual ~DynamicRegisterInfo ()=default
 DynamicRegisterInfo (DynamicRegisterInfo &&info)
DynamicRegisterInfooperator= (DynamicRegisterInfo &&info)
size_t SetRegisterInfo (const lldb_private::StructuredData::Dictionary &dict, const lldb_private::ArchSpec &arch)
size_t SetRegisterInfo (std::vector< Register > &&regs, const lldb_private::ArchSpec &arch)
size_t GetNumRegisters () const
size_t GetNumRegisterSets () const
size_t GetRegisterDataByteSize () const
const lldb_private::RegisterInfoGetRegisterInfoAtIndex (uint32_t i) const
const lldb_private::RegisterSetGetRegisterSet (uint32_t i) const
uint32_t GetRegisterSetIndexByName (const lldb_private::ConstString &set_name, bool can_create)
uint32_t ConvertRegisterKindToRegisterNumber (uint32_t kind, uint32_t num) const
const lldb_private::RegisterInfoGetRegisterInfo (uint32_t kind, uint32_t num) const
void Dump () const
void Clear ()
bool IsReconfigurable ()
const lldb_private::RegisterInfoGetRegisterInfo (llvm::StringRef reg_name) const
template<typename T>
registers ()=delete
void ConfigureOffsets ()
template<>
DynamicRegisterInfo::reg_collection_const_range registers ()
template<>
DynamicRegisterInfo::reg_collection_range registers ()

Static Public Member Functions

static std::unique_ptr< DynamicRegisterInfoCreate (const StructuredData::Dictionary &dict, const ArchSpec &arch)

Protected Types

typedef std::vector< lldb_private::RegisterSetset_collection
typedef std::vector< uint32_t > reg_num_collection
typedef std::vector< reg_num_collectionset_reg_num_collection
typedef std::vector< lldb_private::ConstStringname_collection
typedef std::map< uint32_t, reg_num_collectionreg_to_regs_map
typedef std::map< uint32_t, uint32_t > reg_offset_map

Protected Member Functions

 DynamicRegisterInfo (DynamicRegisterInfo &)=default
DynamicRegisterInfooperator= (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 &reg_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

Detailed Description

Definition at line 22 of file DynamicRegisterInfo.h.

Member Typedef Documentation

◆ name_collection

◆ reg_collection

◆ reg_collection_const_range

typedef llvm::iterator_range<reg_collection::const_iterator> lldb_private::DynamicRegisterInfo::reg_collection_const_range

Definition at line 93 of file DynamicRegisterInfo.h.

◆ reg_collection_range

typedef llvm::iterator_range<reg_collection::iterator> lldb_private::DynamicRegisterInfo::reg_collection_range

Definition at line 94 of file DynamicRegisterInfo.h.

◆ reg_num_collection

typedef std::vector<uint32_t> lldb_private::DynamicRegisterInfo::reg_num_collection
protected

Definition at line 103 of file DynamicRegisterInfo.h.

◆ reg_offset_map

typedef std::map<uint32_t, uint32_t> lldb_private::DynamicRegisterInfo::reg_offset_map
protected

Definition at line 107 of file DynamicRegisterInfo.h.

◆ reg_to_regs_map

Definition at line 106 of file DynamicRegisterInfo.h.

◆ set_collection

◆ set_reg_num_collection

Constructor & Destructor Documentation

◆ DynamicRegisterInfo() [1/3]

◆ DynamicRegisterInfo() [2/3]

lldb_private::DynamicRegisterInfo::DynamicRegisterInfo ( )
default

◆ ~DynamicRegisterInfo()

virtual lldb_private::DynamicRegisterInfo::~DynamicRegisterInfo ( )
virtualdefault

References DynamicRegisterInfo().

◆ DynamicRegisterInfo() [3/3]

DynamicRegisterInfo::DynamicRegisterInfo ( DynamicRegisterInfo && info)

Definition at line 36 of file DynamicRegisterInfo.cpp.

References DynamicRegisterInfo(), and MoveFrom().

Member Function Documentation

◆ ByteOffsetFromComposite()

◆ ByteOffsetFromRegInfoDict()

◆ ByteOffsetFromSlice()

llvm::Expected< uint32_t > DynamicRegisterInfo::ByteOffsetFromSlice ( uint32_t index,
llvm::StringRef slice_str,
lldb::ByteOrder byte_order )
protected

◆ Clear()

void DynamicRegisterInfo::Clear ( )

◆ ConfigureOffsets()

◆ ConvertRegisterKindToRegisterNumber()

uint32_t DynamicRegisterInfo::ConvertRegisterKindToRegisterNumber ( uint32_t kind,
uint32_t num ) const

Definition at line 725 of file DynamicRegisterInfo.cpp.

References LLDB_INVALID_REGNUM, and m_regs.

Referenced by GetRegisterInfo().

◆ Create()

◆ Dump()

◆ Finalize()

◆ GetNumRegisters()

size_t DynamicRegisterInfo::GetNumRegisters ( ) const

Definition at line 679 of file DynamicRegisterInfo.cpp.

References m_regs.

Referenced by RegisterContextMemory::RegisterContextMemory().

◆ GetNumRegisterSets()

size_t DynamicRegisterInfo::GetNumRegisterSets ( ) const

Definition at line 681 of file DynamicRegisterInfo.cpp.

References m_sets.

◆ GetRegisterDataByteSize()

size_t DynamicRegisterInfo::GetRegisterDataByteSize ( ) const

◆ GetRegisterInfo() [1/2]

const lldb_private::RegisterInfo * DynamicRegisterInfo::GetRegisterInfo ( llvm::StringRef reg_name) const

Definition at line 800 of file DynamicRegisterInfo.cpp.

References m_regs.

◆ GetRegisterInfo() [2/2]

const RegisterInfo * DynamicRegisterInfo::GetRegisterInfo ( uint32_t kind,
uint32_t num ) const

◆ GetRegisterInfoAtIndex()

const RegisterInfo * DynamicRegisterInfo::GetRegisterInfoAtIndex ( uint32_t i) const

Definition at line 688 of file DynamicRegisterInfo.cpp.

References m_regs.

Referenced by ConfigureOffsets().

◆ GetRegisterSet()

const RegisterSet * DynamicRegisterInfo::GetRegisterSet ( uint32_t i) const

Definition at line 702 of file DynamicRegisterInfo.cpp.

References m_sets.

◆ GetRegisterSetIndexByName()

uint32_t DynamicRegisterInfo::GetRegisterSetIndexByName ( const lldb_private::ConstString & set_name,
bool can_create )

◆ IsReconfigurable()

bool DynamicRegisterInfo::IsReconfigurable ( )

Definition at line 677 of file DynamicRegisterInfo.cpp.

References m_is_reconfigurable.

◆ MoveFrom()

void DynamicRegisterInfo::MoveFrom ( DynamicRegisterInfo && info)
protected

◆ operator=() [1/2]

DynamicRegisterInfo & DynamicRegisterInfo::operator= ( DynamicRegisterInfo && info)

Definition at line 41 of file DynamicRegisterInfo.cpp.

References DynamicRegisterInfo(), and MoveFrom().

◆ operator=() [2/2]

DynamicRegisterInfo & lldb_private::DynamicRegisterInfo::operator= ( DynamicRegisterInfo & )
protecteddefault

References DynamicRegisterInfo().

◆ registers() [1/3]

template<>
DynamicRegisterInfo::reg_collection_const_range lldb_private::DynamicRegisterInfo::registers ( )
inline

Definition at line 138 of file DynamicRegisterInfo.h.

References m_regs.

◆ registers() [2/3]

template<>
DynamicRegisterInfo::reg_collection_range lldb_private::DynamicRegisterInfo::registers ( )
inline

Definition at line 144 of file DynamicRegisterInfo.h.

References m_regs.

◆ registers() [3/3]

template<typename T>
T lldb_private::DynamicRegisterInfo::registers ( )
delete

◆ SetRegisterInfo() [1/2]

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, 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.

◆ SetRegisterInfo() [2/2]

Member Data Documentation

◆ m_finalized

bool lldb_private::DynamicRegisterInfo::m_finalized = false
protected

Definition at line 132 of file DynamicRegisterInfo.h.

Referenced by Clear(), Finalize(), MoveFrom(), SetRegisterInfo(), and SetRegisterInfo().

◆ m_invalidate_regs_map

reg_to_regs_map lldb_private::DynamicRegisterInfo::m_invalidate_regs_map
protected

◆ m_is_reconfigurable

bool lldb_private::DynamicRegisterInfo::m_is_reconfigurable = false
protected

Definition at line 133 of file DynamicRegisterInfo.h.

Referenced by Finalize(), and IsReconfigurable().

◆ m_reg_data_byte_size

size_t lldb_private::DynamicRegisterInfo::m_reg_data_byte_size = 0u
protected

◆ m_regs

◆ m_set_names

name_collection lldb_private::DynamicRegisterInfo::m_set_names
protected

Definition at line 126 of file DynamicRegisterInfo.h.

Referenced by Clear(), GetRegisterSetIndexByName(), MoveFrom(), and SetRegisterInfo().

◆ m_set_reg_nums

set_reg_num_collection lldb_private::DynamicRegisterInfo::m_set_reg_nums
protected

◆ m_sets

set_collection lldb_private::DynamicRegisterInfo::m_sets
protected

◆ m_value_reg_offset_map

reg_offset_map lldb_private::DynamicRegisterInfo::m_value_reg_offset_map
protected

Definition at line 129 of file DynamicRegisterInfo.h.

Referenced by ConfigureOffsets(), and SetRegisterInfo().

◆ m_value_regs_map

reg_to_regs_map lldb_private::DynamicRegisterInfo::m_value_regs_map
protected

The documentation for this class was generated from the following files: