LLDB mainline
Public Member Functions | Public Attributes | List of all members
lldb_private::RegisterInfo Struct Reference

Every register is described in detail including its name, alternate name (optional), encoding, size in bytes and the default display format. More...

#include <lldb-private-types.h>

Public Member Functions

llvm::ArrayRef< uint8_t > data (const uint8_t *context_base) const
 
llvm::MutableArrayRef< uint8_t > mutable_data (uint8_t *context_base) const
 

Public Attributes

const char * name
 Name of this register, can't be NULL.
 
const char * alt_name
 Alternate name of this register, can be NULL.
 
uint32_t byte_size
 Size in bytes of the register.
 
uint32_t byte_offset
 The byte offset in the register context data where this register's value is found.
 
lldb::Encoding encoding
 Encoding of the register bits.
 
lldb::Format format
 Default display format.
 
uint32_t kinds [lldb::kNumRegisterKinds]
 Holds all of the various register numbers for all register kinds.
 
uint32_t * value_regs
 List of registers (terminated with LLDB_INVALID_REGNUM).
 
uint32_t * invalidate_regs
 List of registers (terminated with LLDB_INVALID_REGNUM).
 
const RegisterFlagsflags_type
 If not nullptr, a type defined by XML descriptions.
 

Detailed Description

Every register is described in detail including its name, alternate name (optional), encoding, size in bytes and the default display format.

Definition at line 34 of file lldb-private-types.h.

Member Function Documentation

◆ data()

llvm::ArrayRef< uint8_t > lldb_private::RegisterInfo::data ( const uint8_t *  context_base) const
inline

◆ mutable_data()

llvm::MutableArrayRef< uint8_t > lldb_private::RegisterInfo::mutable_data ( uint8_t *  context_base) const
inline

Member Data Documentation

◆ alt_name

const char* lldb_private::RegisterInfo::alt_name

◆ byte_offset

uint32_t lldb_private::RegisterInfo::byte_offset

The byte offset in the register context data where this register's value is found.

This is optional, and can be 0 if a particular RegisterContext does not need to address its registers by byte offset.

Definition at line 45 of file lldb-private-types.h.

Referenced by lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::BuildTargetXml(), lldb_private::DynamicRegisterInfo::ByteOffsetFromComposite(), lldb_private::DynamicRegisterInfo::ByteOffsetFromSlice(), RegisterContextCorePOSIX_arm64::CalculateSVEOffset(), lldb_private::DynamicRegisterInfo::ConfigureOffsets(), data(), RegisterContextPOSIX_x86::GetFXSAVEOffset(), RegisterInfoPOSIX_arm64::GetMTEOffset(), RegisterInfoPOSIX_arm64::GetPAuthOffset(), lldb_private::process_linux::NativeRegisterContextLinux::GetPtraceOffset(), RegisterContextPOSIX_mips64::GetRegisterOffset(), RegisterContextPOSIX_powerpc::GetRegisterOffset(), RegisterContextPOSIX_ppc64le::GetRegisterOffset(), RegisterContextPOSIX_s390x::GetRegisterOffset(), RegisterContextPOSIX_x86::GetRegisterOffset(), RegisterInfoPOSIX_arm64::GetSMEOffset(), RegisterInfoPOSIX_arm64::GetTLSOffset(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::Handle_g(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::Handle_qRegisterInfo(), mutable_data(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::PrivateSetRegisterValue(), RegisterContextMemory::ReadRegister(), RegisterContextCorePOSIX_arm::ReadRegister(), RegisterContextCorePOSIX_arm64::ReadRegister(), RegisterContextCorePOSIX_mips64::ReadRegister(), RegisterContextCorePOSIX_powerpc::ReadRegister(), RegisterContextCorePOSIX_ppc64le::ReadRegister(), RegisterContextCorePOSIX_s390x::ReadRegister(), RegisterContextCorePOSIX_x86_64::ReadRegister(), lldb_private::minidump::RegisterContextMinidump_ARM::ReadRegister(), lldb_private::minidump::RegisterContextMinidump_ARM64::ReadRegister(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::ReadRegister(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::ReadRegisterBytes(), lldb_private::RegisterContextDummy::RegisterContextDummy(), lldb_private::RegisterContextHistory::RegisterContextHistory(), ABISysV_hexagon::RegisterIsCalleeSaved(), ABISysV_mips64::RegisterIsCalleeSaved(), ABISysV_msp430::RegisterIsCalleeSaved(), lldb_private::DynamicRegisterInfo::SetRegisterInfo(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::WriteAllRegisterValues(), RegisterContextMemory::WriteRegister(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::WriteRegisterBytes(), and lldb_private::process_linux::NativeRegisterContextLinux::WriteRegisterRaw().

◆ byte_size

uint32_t lldb_private::RegisterInfo::byte_size

Size in bytes of the register.

Definition at line 40 of file lldb-private-types.h.

Referenced by lldb_private::ClangExpressionDeclMap::AddOneRegister(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::BuildTargetXml(), lldb_private::DynamicRegisterInfo::ByteOffsetFromSlice(), RegisterInfoPOSIX_arm64::ConfigureVectorLengthZA(), data(), CommandObjectRegisterRead::DumpRegister(), lldb_private::DumpRegisterInfo(), lldb_private::DumpRegisterValue(), EmulateInstructionMIPS::Emulate_SWSP(), lldb_private::TypeFormatImpl_Format::FormatObject(), GetARMDWARFRegisterInfo(), lldb_private::RegisterValue::GetAsMemoryData(), lldb_private::ValueObjectRegister::GetByteSize(), lldb_private::ValueObjectRegister::GetCompilerTypeImpl(), UnwindAssemblyInstEmulation::GetNonCallSiteUnwindPlanFromAssembly(), EmulateInstructionMIPS::GetRegisterInfo(), EmulateInstructionMIPS64::GetRegisterInfo(), RegisterContextPOSIX_mips64::GetRegisterSize(), RegisterContextPOSIX_powerpc::GetRegisterSize(), RegisterContextPOSIX_ppc64le::GetRegisterSize(), RegisterContextPOSIX_s390x::GetRegisterSize(), RegisterContextPOSIX_x86::GetRegisterSize(), UnwindAssemblyInstEmulation::GetRegisterValue(), ABIMacOSX_arm64::GetReturnValueObjectImpl(), ABISysV_arm64::GetReturnValueObjectImpl(), ABIMacOSX_arm::GetReturnValueObjectImpl(), ABISysV_mips64::GetReturnValueObjectImpl(), ABISysV_i386::GetReturnValueObjectSimple(), ABISysV_x86_64::GetReturnValueObjectSimple(), lldb_private::Value::GetValueByteSize(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::Handle_g(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::Handle_P(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::Handle_qRegisterInfo(), LoadValueFromConsecutiveGPRRegisters(), mutable_data(), ABIMacOSX_i386::PrepareTrivialCall(), ABIMacOSX_arm::PrepareTrivialCall(), ABISysV_arm::PrepareTrivialCall(), ABISysV_mips::PrepareTrivialCall(), ABISysV_i386::PrepareTrivialCall(), PrintRegisterValue(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::PrivateSetRegisterValue(), lldb_private::RegisterContextUnwind::ReadFrameAddress(), EmulationStateARM::ReadPseudoRegister(), RegisterContextDarwin_arm64::ReadRegister(), RegisterContextCorePOSIX_arm::ReadRegister(), RegisterContextCorePOSIX_arm64::ReadRegister(), RegisterContextCorePOSIX_mips64::ReadRegister(), RegisterContextCorePOSIX_powerpc::ReadRegister(), RegisterContextCorePOSIX_ppc64le::ReadRegister(), RegisterContextCorePOSIX_s390x::ReadRegister(), RegisterContextCorePOSIX_x86_64::ReadRegister(), RegisterContextDarwin_x86_64::ReadRegister(), lldb_private::RegisterContextDummy::ReadRegister(), lldb_private::RegisterContextHistory::ReadRegister(), lldb_private::minidump::RegisterContextMinidump_ARM::ReadRegister(), lldb_private::minidump::RegisterContextMinidump_ARM64::ReadRegister(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::ReadRegister(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::ReadRegisterBytes(), lldb_private::process_linux::NativeRegisterContextLinux::ReadRegisterRaw(), lldb_private::NativeRegisterContext::ReadRegisterValueFromMemory(), lldb_private::RegisterContext::ReadRegisterValueFromMemory(), lldb_private::RegisterContextUnwind::ReadRegisterValueFromRegisterLocation(), lldb_private::RegisterContextDummy::RegisterContextDummy(), lldb_private::RegisterContextHistory::RegisterContextHistory(), lldb_private::RegisterValue::SetFromMemoryData(), lldb_private::DynamicRegisterInfo::SetRegisterInfo(), lldb_private::RegisterValue::SetValueFromData(), lldb_private::RegisterValue::SetValueFromString(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::WriteAllRegisterValues(), RegisterContextMemory::WriteRegister(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::WriteRegister(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::WriteRegisterBytes(), lldb_private::NativeRegisterContext::WriteRegisterFromUnsigned(), lldb_private::RegisterContext::WriteRegisterFromUnsigned(), lldb_private::process_linux::NativeRegisterContextLinux::WriteRegisterRaw(), lldb_private::EmulateInstruction::WriteRegisterUnsigned(), WriteRegisterValueInHexFixedWidth(), and lldb_private::RegisterContextUnwind::WriteRegisterValueToRegisterLocation().

◆ encoding

lldb::Encoding lldb_private::RegisterInfo::encoding

◆ flags_type

const RegisterFlags* lldb_private::RegisterInfo::flags_type
mutable

If not nullptr, a type defined by XML descriptions.

Register info tables are constructed as const, but this field may need to be updated if a specific target OS has a different layout. To enable that, this is mutable. The data pointed to is still const, so you must swap a whole set of flags for another.

Definition at line 69 of file lldb-private-types.h.

Referenced by lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::BuildTargetXml(), dump_type_value(), lldb_private::DumpRegisterInfo(), lldb_private::DumpRegisterValue(), and lldb_private::LinuxArm64RegisterFlags::UpdateRegisterInfo().

◆ format

lldb::Format lldb_private::RegisterInfo::format

◆ invalidate_regs

uint32_t* lldb_private::RegisterInfo::invalidate_regs

◆ kinds

uint32_t lldb_private::RegisterInfo::kinds[lldb::kNumRegisterKinds]

Holds all of the various register numbers for all register kinds.

Definition at line 51 of file lldb-private-types.h.

Referenced by lldb_private::RegInfoBasedABI::AugmentRegisterInfo(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::BuildTargetXml(), lldb_private::DynamicRegisterInfo::ByteOffsetFromComposite(), lldb_private::DynamicRegisterInfo::ByteOffsetFromSlice(), RegisterContextCorePOSIX_arm64::CalculateSVEOffset(), lldb_private::RegisterContext::ConvertBetweenRegisterKinds(), lldb_private::RegisterContext::ConvertRegisterKindToRegisterNumber(), RegisterContextPOSIX_mips64::ConvertRegisterKindToRegisterNumber(), lldb_private::RegisterContextWindows::ConvertRegisterKindToRegisterNumber(), lldb_private::NativeRegisterContext::ConvertRegisterKindToRegisterNumber(), ABISysV_ppc::GetArgumentValues(), ABISysV_ppc64::GetArgumentValues(), ABISysV_s390x::GetArgumentValues(), ABISysV_x86_64::GetArgumentValues(), ABIWindows_x86_64::GetArgumentValues(), GetARMDWARFRegisterInfo(), lldb_private::EmulateInstruction::GetBestRegisterKindAndNumber(), getDestRegister(), lldb_private::ABI::GetFallbackRegisterLocation(), lldb_private::ValueObjectRegisterSet::GetIndexOfChildWithName(), GetKindGenericOrEmpty(), UnwindAssemblyInstEmulation::GetNonCallSiteUnwindPlanFromAssembly(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::GetPrimordialRegister(), EmulateInstructionMIPS::GetRegisterInfo(), EmulateInstructionMIPS64::GetRegisterInfo(), lldb_private::NativeRegisterContext::GetRegisterSetNameForRegisterAtIndex(), ABIMacOSX_i386::GetReturnValueObjectImpl(), ABISysV_ppc::GetReturnValueObjectSimple(), ABISysV_s390x::GetReturnValueObjectSimple(), ABISysV_i386::GetReturnValueObjectSimple(), ABISysV_x86_64::GetReturnValueObjectSimple(), ABIWindows_x86_64::GetReturnValueObjectSimple(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::Handle_qRegisterInfo(), lldb_private::x86AssemblyInspectionEngine::Initialize(), lldb_private::breakpad::SymbolFileBreakpad::ParseWinUnwindPlan(), ReadLinuxProcessAddressMask(), EmulationStateARM::ReadPseudoRegister(), RegisterContextDarwin_arm::ReadRegister(), RegisterContextDarwin_arm64::ReadRegister(), RegisterContextMemory::ReadRegister(), lldb_private::RegisterContextUnwind::ReadRegister(), RegisterContextCorePOSIX_arm64::ReadRegister(), RegisterContextCorePOSIX_mips64::ReadRegister(), RegisterContextCorePOSIX_powerpc::ReadRegister(), RegisterContextCorePOSIX_ppc64le::ReadRegister(), RegisterContextCorePOSIX_s390x::ReadRegister(), RegisterContextFreeBSDKernel_arm64::ReadRegister(), RegisterContextFreeBSDKernel_i386::ReadRegister(), RegisterContextFreeBSDKernel_x86_64::ReadRegister(), RegisterContextDarwin_i386::ReadRegister(), RegisterContextDarwin_x86_64::ReadRegister(), lldb_private::RegisterContextDummy::ReadRegister(), lldb_private::RegisterContextHistory::ReadRegister(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::ReadRegister(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::ReadRegisterBytes(), ReadRegisterCallback(), lldb_private::ArchitectureAArch64::ReconfigureRegisterInfo(), lldb_private::RegisterContextDummy::RegisterContextDummy(), lldb_private::RegisterContextHistory::RegisterContextHistory(), ABISysV_arc::RegisterIsVolatile(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::SetPrimordialRegister(), lldb_private::DynamicRegisterInfo::SetRegisterInfo(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::SetRegisterIsValid(), lldb_private::NativeProcessSoftwareSingleStep::SetupSoftwareSingleStepping(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::WriteAllRegisterValues(), UnwindAssemblyInstEmulation::WriteMemory(), EmulationStateARM::WritePseudoRegister(), RegisterContextDarwin_arm::WriteRegister(), RegisterContextDarwin_arm64::WriteRegister(), RegisterContextMemory::WriteRegister(), lldb_private::RegisterContextUnwind::WriteRegister(), RegisterContextDarwin_i386::WriteRegister(), RegisterContextDarwin_x86_64::WriteRegister(), UnwindAssemblyInstEmulation::WriteRegister(), and WriteRegisterCallback().

◆ name

const char* lldb_private::RegisterInfo::name

Name of this register, can't be NULL.

Definition at line 36 of file lldb-private-types.h.

Referenced by lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::BuildTargetXml(), lldb_private::ValueObjectRegister::ConstructObject(), lldb_private::UnwindPlan::Row::RegisterLocation::Dump(), lldb_private::EmulateInstruction::Context::Dump(), lldb_private::DumpRegisterInfo(), DumpRegisterName(), lldb_private::DumpRegisterValue(), lldb_private::ClangExpressionDeclMap::FindExternalVisibleDecls(), GetARMDWARFRegisterInfo(), lldb_private::RegisterValue::GetAsMemoryData(), lldb_private::ValueObjectRegister::GetExpressionPath(), lldb_private::ValueObject::GetLocationAsCStringImpl(), UnwindAssemblyInstEmulation::GetNonCallSiteUnwindPlanFromAssembly(), EmulateInstructionMIPS::GetRegisterInfo(), EmulateInstructionMIPS64::GetRegisterInfo(), lldb_private::RegInfoBasedABI::GetRegisterInfoByName(), lldb_private::NativeRegisterContext::GetRegisterInfoByName(), lldb_private::RegisterContext::GetRegisterInfoByName(), lldb_private::NativeRegisterContext::GetRegisterName(), lldb_private::RegisterContext::GetRegisterName(), lldb_private::minidump::RegisterContextMinidump_ARM::GetRegisterName(), lldb_private::minidump::RegisterContextMinidump_ARM64::GetRegisterName(), RegisterContextPOSIX_arm::GetRegisterName(), RegisterContextPOSIX_arm64::GetRegisterName(), RegisterContextPOSIX_mips64::GetRegisterName(), RegisterContextPOSIX_powerpc::GetRegisterName(), RegisterContextPOSIX_ppc64le::GetRegisterName(), RegisterContextPOSIX_s390x::GetRegisterName(), RegisterContextPOSIX_x86::GetRegisterName(), GetRegistersAsJSON(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::Handle_p(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::Handle_P(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::Handle_qRegisterInfo(), RegisterNumber::init(), lldb_private::OperandMatchers::MatchRegOp(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::PrepareStopReplyPacketForThread(), ABIMacOSX_arm64::PrepareTrivialCall(), ABISysV_arm64::PrepareTrivialCall(), ABISysV_mips::PrepareTrivialCall(), ABISysV_mips64::PrepareTrivialCall(), ABISysV_ppc::PrepareTrivialCall(), ABISysV_ppc64::PrepareTrivialCall(), ABISysV_s390x::PrepareTrivialCall(), ABISysV_x86_64::PrepareTrivialCall(), ABIWindows_x86_64::PrepareTrivialCall(), UnwindAssemblyInstEmulation::ReadRegister(), lldb_private::EmulateInstruction::ReadRegisterDefault(), lldb_private::process_linux::NativeRegisterContextLinux::ReadRegisterRaw(), ReadRegisterValueAsScalar(), lldb_private::NativeRegisterContext::ReadRegisterValueFromMemory(), lldb_private::RegisterContext::ReadRegisterValueFromMemory(), lldb_private::RegisterContextDummy::RegisterContextDummy(), lldb_private::RegisterContextHistory::RegisterContextHistory(), ABISysV_mips::RegisterIsCalleeSaved(), ABISysV_ppc::RegisterIsCalleeSaved(), ABISysV_ppc64::RegisterIsCalleeSaved(), ABISysV_riscv::RegisterIsCalleeSaved(), ABISysV_s390x::RegisterIsCalleeSaved(), ABIMacOSX_i386::RegisterIsCalleeSaved(), ABISysV_i386::RegisterIsCalleeSaved(), ABISysV_x86_64::RegisterIsCalleeSaved(), ABIWindows_x86_64::RegisterIsCalleeSaved(), ABIMacOSX_arm64::RegisterIsVolatile(), ABISysV_arm64::RegisterIsVolatile(), ABISysV_arc::RegisterIsVolatile(), ABIMacOSX_arm::RegisterIsVolatile(), ABISysV_arm::RegisterIsVolatile(), RegisterNumber::RegisterNumber(), lldb_private::CommandCompletions::Registers(), lldb_private::RegisterValue::SetFromMemoryData(), lldb_private::DynamicRegisterInfo::SetRegisterInfo(), lldb_private::RegisterValue::SetValueFromData(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::WriteAllRegisterValues(), UnwindAssemblyInstEmulation::WriteRegister(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::WriteRegisterBytes(), lldb_private::EmulateInstruction::WriteRegisterDefault(), and lldb_private::process_linux::NativeRegisterContextLinux::WriteRegisterRaw().

◆ value_regs

uint32_t* lldb_private::RegisterInfo::value_regs

List of registers (terminated with LLDB_INVALID_REGNUM).

If this value is not null, all registers in this list will be read first, at which point the value for this register will be valid. For example, the value list for ah would be eax (x86) or rax (x64). Register numbers are of eRegisterKindLLDB. If multiple registers are listed, the final value will be the concatenation of them.

Definition at line 58 of file lldb-private-types.h.

Referenced by lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::BuildTargetXml(), lldb_private::RegisterContext::CopyFromRegisterContext(), lldb_private::DumpRegisterInfo(), CommandObjectRegisterRead::DumpRegisterSet(), GetRegistersAsJSON(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::Handle_g(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::Handle_qRegisterInfo(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::PrepareStopReplyPacketForThread(), RegisterContextCorePOSIX_arm64::ReadRegister(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::ReadRegister(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::ReadRegisterBytes(), lldb_private::RegisterContextDummy::RegisterContextDummy(), lldb_private::RegisterContextHistory::RegisterContextHistory(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::WriteAllRegisterValues(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::WriteRegister(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::WriteRegisterBytes(), lldb_private::RegisterContextDummy::~RegisterContextDummy(), and lldb_private::RegisterContextHistory::~RegisterContextHistory().


The documentation for this struct was generated from the following file: