LLDB mainline
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
lldb_private::DynamicRegisterInfo Class Reference

#include <DynamicRegisterInfo.h>

Inheritance diagram for lldb_private::DynamicRegisterInfo:
Inheritance graph
[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 ()
 

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

Definition at line 105 of file DynamicRegisterInfo.h.

◆ reg_collection

Definition at line 91 of file DynamicRegisterInfo.h.

◆ 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

Definition at line 102 of file DynamicRegisterInfo.h.

◆ set_reg_num_collection

Definition at line 104 of file DynamicRegisterInfo.h.

Constructor & Destructor Documentation

◆ DynamicRegisterInfo() [1/3]

lldb_private::DynamicRegisterInfo::DynamicRegisterInfo ( DynamicRegisterInfo )
protecteddefault

◆ DynamicRegisterInfo() [2/3]

lldb_private::DynamicRegisterInfo::DynamicRegisterInfo ( )
default

◆ ~DynamicRegisterInfo()

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

◆ DynamicRegisterInfo() [3/3]

DynamicRegisterInfo::DynamicRegisterInfo ( DynamicRegisterInfo &&  info)

Definition at line 36 of file DynamicRegisterInfo.cpp.

References MoveFrom().

Member Function Documentation

◆ ByteOffsetFromComposite()

llvm::Expected< uint32_t > DynamicRegisterInfo::ByteOffsetFromComposite ( uint32_t  index,
lldb_private::StructuredData::Array composite_reg_list,
lldb::ByteOrder  byte_order 
)
protected

◆ ByteOffsetFromRegInfoDict()

llvm::Expected< uint32_t > DynamicRegisterInfo::ByteOffsetFromRegInfoDict ( uint32_t  index,
lldb_private::StructuredData::Dictionary reg_info_dict,
lldb::ByteOrder  byte_order 
)
protected

◆ ByteOffsetFromSlice()

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

◆ Clear()

void DynamicRegisterInfo::Clear ( )

◆ ConfigureOffsets()

void DynamicRegisterInfo::ConfigureOffsets ( )

◆ ConvertRegisterKindToRegisterNumber()

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

◆ Create()

std::unique_ptr< DynamicRegisterInfo > DynamicRegisterInfo::Create ( const StructuredData::Dictionary dict,
const ArchSpec arch 
)
static

◆ Dump()

void DynamicRegisterInfo::Dump ( ) const

◆ Finalize()

void DynamicRegisterInfo::Finalize ( const lldb_private::ArchSpec arch)
protected

◆ GetNumRegisters()

size_t DynamicRegisterInfo::GetNumRegisters ( ) const

◆ GetNumRegisterSets()

size_t DynamicRegisterInfo::GetNumRegisterSets ( ) const

Definition at line 685 of file DynamicRegisterInfo.cpp.

References m_sets.

Referenced by RegisterContextMemory::GetRegisterSetCount().

◆ GetRegisterDataByteSize()

size_t DynamicRegisterInfo::GetRegisterDataByteSize ( ) const

◆ GetRegisterInfo() [1/2]

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

Definition at line 804 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 692 of file DynamicRegisterInfo.cpp.

References m_regs.

Referenced by ConfigureOffsets(), and RegisterContextMemory::GetRegisterInfoAtIndex().

◆ GetRegisterSet()

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

Definition at line 706 of file DynamicRegisterInfo.cpp.

References m_sets.

Referenced by RegisterContextMemory::GetRegisterSet().

◆ GetRegisterSetIndexByName()

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

◆ IsReconfigurable()

bool DynamicRegisterInfo::IsReconfigurable ( )

Definition at line 681 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 MoveFrom().

◆ operator=() [2/2]

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

◆ registers() [1/2]

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

Definition at line 138 of file DynamicRegisterInfo.h.

References m_regs.

◆ registers() [2/2]

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

◆ SetRegisterInfo() [2/2]

size_t DynamicRegisterInfo::SetRegisterInfo ( std::vector< Register > &&  regs,
const lldb_private::ArchSpec arch 
)

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(), 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

reg_collection lldb_private::DynamicRegisterInfo::m_regs
protected

◆ 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: