LLDB mainline
|
#include <RegisterContextPOSIXCore_arm64.h>
Public Member Functions | |
~RegisterContextCorePOSIX_arm64 () override | |
bool | ReadRegister (const lldb_private::RegisterInfo *reg_info, lldb_private::RegisterValue &value) override |
bool | WriteRegister (const lldb_private::RegisterInfo *reg_info, const lldb_private::RegisterValue &value) override |
bool | ReadAllRegisterValues (lldb::WritableDataBufferSP &data_sp) override |
bool | WriteAllRegisterValues (const lldb::DataBufferSP &data_sp) override |
bool | HardwareSingleStep (bool enable) override |
Public Member Functions inherited from RegisterContextPOSIX_arm64 | |
RegisterContextPOSIX_arm64 (lldb_private::Thread &thread, std::unique_ptr< RegisterInfoPOSIX_arm64 > register_info) | |
~RegisterContextPOSIX_arm64 () override | |
void | Invalidate () |
void | InvalidateAllRegisters () override |
size_t | GetRegisterCount () override |
virtual size_t | GetGPRSize () |
virtual unsigned | GetRegisterSize (unsigned reg) |
virtual unsigned | GetRegisterOffset (unsigned reg) |
const lldb_private::RegisterInfo * | GetRegisterInfoAtIndex (size_t reg) override |
size_t | GetRegisterSetCount () override |
const lldb_private::RegisterSet * | GetRegisterSet (size_t set) override |
const char * | GetRegisterName (unsigned reg) |
Public Member Functions inherited from lldb_private::RegisterContext | |
RegisterContext (Thread &thread, uint32_t concrete_frame_idx) | |
~RegisterContext () override | |
void | InvalidateIfNeeded (bool force) |
virtual void | InvalidateAllRegisters ()=0 |
virtual size_t | GetRegisterCount ()=0 |
virtual const RegisterInfo * | GetRegisterInfoAtIndex (size_t reg)=0 |
virtual size_t | GetRegisterSetCount ()=0 |
virtual const RegisterSet * | GetRegisterSet (size_t reg_set)=0 |
virtual lldb::ByteOrder | GetByteOrder () |
virtual bool | ReadRegister (const RegisterInfo *reg_info, RegisterValue ®_value)=0 |
virtual bool | WriteRegister (const RegisterInfo *reg_info, const RegisterValue ®_value)=0 |
virtual bool | ReadAllRegisterValues (lldb::WritableDataBufferSP &data_sp) |
virtual bool | WriteAllRegisterValues (const lldb::DataBufferSP &data_sp) |
virtual bool | RegisterWriteCausesReconfigure (const llvm::StringRef name) |
virtual bool | ReconfigureRegisterInfo () |
virtual bool | ReadAllRegisterValues (lldb_private::RegisterCheckpoint ®_checkpoint) |
virtual bool | WriteAllRegisterValues (const lldb_private::RegisterCheckpoint ®_checkpoint) |
bool | CopyFromRegisterContext (lldb::RegisterContextSP context) |
virtual uint32_t | ConvertRegisterKindToRegisterNumber (lldb::RegisterKind kind, uint32_t num) |
Convert from a given register numbering scheme to the lldb register numbering scheme. | |
virtual uint32_t | NumSupportedHardwareBreakpoints () |
virtual uint32_t | SetHardwareBreakpoint (lldb::addr_t addr, size_t size) |
virtual bool | ClearHardwareBreakpoint (uint32_t hw_idx) |
virtual uint32_t | NumSupportedHardwareWatchpoints () |
virtual uint32_t | SetHardwareWatchpoint (lldb::addr_t addr, size_t size, bool read, bool write) |
virtual bool | ClearHardwareWatchpoint (uint32_t hw_index) |
virtual bool | HardwareSingleStep (bool enable) |
virtual Status | ReadRegisterValueFromMemory (const lldb_private::RegisterInfo *reg_info, lldb::addr_t src_addr, uint32_t src_len, RegisterValue ®_value) |
virtual Status | WriteRegisterValueToMemory (const lldb_private::RegisterInfo *reg_info, lldb::addr_t dst_addr, uint32_t dst_len, const RegisterValue ®_value) |
virtual lldb::tid_t | GetThreadID () const |
virtual Thread & | GetThread () |
const RegisterInfo * | GetRegisterInfoByName (llvm::StringRef reg_name, uint32_t start_idx=0) |
const RegisterInfo * | GetRegisterInfo (lldb::RegisterKind reg_kind, uint32_t reg_num) |
uint64_t | GetPC (uint64_t fail_value=LLDB_INVALID_ADDRESS) |
uint64_t | GetThreadPointer (uint64_t fail_value=LLDB_INVALID_ADDRESS) |
bool | GetPCForSymbolication (Address &address) |
Get an address suitable for symbolication. | |
bool | SetPC (uint64_t pc) |
bool | SetPC (Address addr) |
uint64_t | GetSP (uint64_t fail_value=LLDB_INVALID_ADDRESS) |
bool | SetSP (uint64_t sp) |
uint64_t | GetFP (uint64_t fail_value=LLDB_INVALID_ADDRESS) |
bool | SetFP (uint64_t fp) |
const char * | GetRegisterName (uint32_t reg) |
uint64_t | GetReturnAddress (uint64_t fail_value=LLDB_INVALID_ADDRESS) |
uint64_t | GetFlags (uint64_t fail_value=0) |
uint64_t | ReadRegisterAsUnsigned (uint32_t reg, uint64_t fail_value) |
uint64_t | ReadRegisterAsUnsigned (const RegisterInfo *reg_info, uint64_t fail_value) |
bool | WriteRegisterFromUnsigned (uint32_t reg, uint64_t uval) |
bool | WriteRegisterFromUnsigned (const RegisterInfo *reg_info, uint64_t uval) |
bool | ConvertBetweenRegisterKinds (lldb::RegisterKind source_rk, uint32_t source_regnum, lldb::RegisterKind target_rk, uint32_t &target_regnum) |
lldb::TargetSP | CalculateTarget () override |
lldb::ProcessSP | CalculateProcess () override |
lldb::ThreadSP | CalculateThread () override |
lldb::StackFrameSP | CalculateStackFrame () override |
void | CalculateExecutionContext (ExecutionContext &exe_ctx) override |
Reconstruct the object's execution context into sc. | |
uint32_t | GetStopID () const |
void | SetStopID (uint32_t stop_id) |
Public Member Functions inherited from lldb_private::ExecutionContextScope | |
virtual | ~ExecutionContextScope ()=default |
virtual lldb::TargetSP | CalculateTarget ()=0 |
virtual lldb::ProcessSP | CalculateProcess ()=0 |
virtual lldb::ThreadSP | CalculateThread ()=0 |
virtual lldb::StackFrameSP | CalculateStackFrame ()=0 |
virtual void | CalculateExecutionContext (ExecutionContext &exe_ctx)=0 |
Reconstruct the object's execution context into sc. | |
Static Public Member Functions | |
static std::unique_ptr< RegisterContextCorePOSIX_arm64 > | Create (lldb_private::Thread &thread, const lldb_private::ArchSpec &arch, const lldb_private::DataExtractor &gpregset, llvm::ArrayRef< lldb_private::CoreNote > notes) |
Protected Member Functions | |
RegisterContextCorePOSIX_arm64 (lldb_private::Thread &thread, std::unique_ptr< RegisterInfoPOSIX_arm64 > register_info, const lldb_private::DataExtractor &gpregset, llvm::ArrayRef< lldb_private::CoreNote > notes) | |
bool | ReadGPR () override |
bool | ReadFPR () override |
bool | WriteGPR () override |
bool | WriteFPR () override |
Protected Member Functions inherited from RegisterContextPOSIX_arm64 | |
virtual const lldb_private::RegisterInfo * | GetRegisterInfo () |
bool | IsGPR (unsigned reg) |
bool | IsFPR (unsigned reg) |
size_t | GetFPUSize () |
bool | IsSVE (unsigned reg) const |
bool | IsPAuth (unsigned reg) const |
bool | IsTLS (unsigned reg) const |
bool | IsSME (unsigned reg) const |
bool | IsMTE (unsigned reg) const |
bool | IsSVEZ (unsigned reg) const |
bool | IsSVEP (unsigned reg) const |
bool | IsSVEVG (unsigned reg) const |
bool | IsSMEZA (unsigned reg) const |
uint32_t | GetRegNumSVEZ0 () const |
uint32_t | GetRegNumSVEFFR () const |
uint32_t | GetRegNumFPCR () const |
uint32_t | GetRegNumFPSR () const |
virtual bool | ReadGPR ()=0 |
virtual bool | ReadFPR ()=0 |
virtual bool | WriteGPR ()=0 |
virtual bool | WriteFPR ()=0 |
Protected Member Functions inherited from lldb_private::RegisterContext | |
virtual bool | BehavesLikeZerothFrame () const |
Indicates that this frame is currently executing code, that the PC value is not a return-pc but an actual executing instruction. | |
Private Member Functions | |
struct | __attribute__ ((packed)) sme_pseudo_regs |
const uint8_t * | GetSVEBuffer (uint64_t offset=0) |
void | ConfigureRegisterContext () |
uint32_t | CalculateSVEOffset (const lldb_private::RegisterInfo *reg_info) |
uint64_t | GetSVERegVG () |
Additional Inherited Members | |
Protected Attributes inherited from RegisterContextPOSIX_arm64 | |
std::unique_ptr< RegisterInfoPOSIX_arm64 > | m_register_info_up |
Protected Attributes inherited from lldb_private::RegisterContext | |
Thread & | m_thread |
uint32_t | m_concrete_frame_idx |
uint32_t | m_stop_id |
Definition at line 20 of file RegisterContextPOSIXCore_arm64.h.
|
overridedefault |
|
protected |
Definition at line 74 of file RegisterContextPOSIXCore_arm64.cpp.
References lldb_private::AARCH64_MTE_Desc, lldb_private::AARCH64_PAC_Desc, lldb_private::AARCH64_SSVE_Desc, lldb_private::AARCH64_SVE_Desc, lldb_private::AARCH64_TLS_Desc, lldb_private::AARCH64_ZA_Desc, lldb_private::AARCH64_ZT_Desc, AuxVector::AUXV_AT_HWCAP, AuxVector::AUXV_AT_HWCAP2, AuxVector::AUXV_FREEBSD_AT_HWCAP, ConfigureRegisterContext(), lldb_private::Arm64RegisterFlagsDetector::DetectFields(), lldb_private::FPR_Desc, ProcessElfCore::GetArchitecture(), AuxVector::GetAuxValue(), ProcessElfCore::GetAuxvData(), lldb_private::DataExtractor::GetByteOrder(), lldb_private::DataExtractor::GetByteSize(), lldb_private::DataExtractor::GetDataStart(), lldb_private::Thread::GetProcess(), RegisterContextPOSIX_arm64::GetRegisterCount(), RegisterContextPOSIX_arm64::GetRegisterInfo(), lldb_private::getRegset(), lldb_private::ArchSpec::GetTriple(), lldb_private::DataExtractor::GetU32(), m_fpr_data, m_gpr_data, m_mte_data, m_pac_data, m_register_flags_detector, RegisterContextPOSIX_arm64::m_register_info_up, m_sme_pseudo_regs, m_sve_data, m_sve_state, m_tls_data, m_za_data, m_zt_data, lldb_private::sve::ptrace_regs_mask, lldb_private::sve::ptrace_regs_sve, lldb_private::DataExtractor::SetByteOrder(), lldb_private::DataExtractor::SetData(), and lldb_private::Arm64RegisterFlagsDetector::UpdateRegisterInfo().
|
inlineprivate |
Definition at line 67 of file RegisterContextPOSIXCore_arm64.h.
|
private |
Definition at line 200 of file RegisterContextPOSIXCore_arm64.cpp.
References lldb_private::RegisterInfo::byte_offset, lldb::eRegisterKindLLDB, RegisterContextPOSIX_arm64::GetGPRSize(), RegisterContextPOSIX_arm64::GetRegNumSVEZ0(), lldb_private::RegisterInfo::kinds, LLDB_INVALID_INDEX32, m_sve_state, lldb_private::sve::ptrace_fpsimd_offset, and lldb_private::sve::SigRegsOffset().
Referenced by ReadRegister().
|
private |
Definition at line 154 of file RegisterContextPOSIXCore_arm64.cpp.
References lldb_private::DataExtractor::GetByteSize(), lldb_private::DataExtractor::GetU16(), lldb_private::DataExtractor::GetU32(), RegisterContextPOSIX_arm64::m_register_info_up, m_sme_pseudo_regs, m_sve_data, m_sve_state, m_sve_vector_length, m_za_data, lldb_private::sve::ptrace_regs_fpsimd, lldb_private::sve::ptrace_regs_mask, lldb_private::sve::ptrace_regs_sve, lldb_private::sve::vl_valid(), and lldb_private::sve::vq_from_vl().
Referenced by RegisterContextCorePOSIX_arm64().
|
static |
Definition at line 24 of file RegisterContextPOSIXCore_arm64.cpp.
References lldb_private::AARCH64_MTE_Desc, lldb_private::AARCH64_PAC_Desc, lldb_private::AARCH64_SSVE_Desc, lldb_private::AARCH64_SVE_Desc, lldb_private::AARCH64_TLS_Desc, lldb_private::AARCH64_ZA_Desc, lldb_private::AARCH64_ZT_Desc, RegisterInfoPOSIX_arm64::eRegsetMaskDefault, RegisterInfoPOSIX_arm64::eRegsetMaskMTE, RegisterInfoPOSIX_arm64::eRegsetMaskPAuth, RegisterInfoPOSIX_arm64::eRegsetMaskSSVE, RegisterInfoPOSIX_arm64::eRegsetMaskSVE, RegisterInfoPOSIX_arm64::eRegsetMaskTLS, RegisterInfoPOSIX_arm64::eRegsetMaskZA, RegisterInfoPOSIX_arm64::eRegsetMaskZT, lldb_private::DataExtractor::GetByteSize(), lldb_private::getRegset(), lldb_private::ArchSpec::GetTriple(), and lldb_private::Flags::Set().
Referenced by ThreadElfCore::CreateRegisterContextForFrame().
|
private |
Definition at line 150 of file RegisterContextPOSIXCore_arm64.cpp.
References lldb_private::DataExtractor::GetDataStart(), and m_sve_data.
Referenced by ReadRegister().
|
inlineprivate |
Definition at line 86 of file RegisterContextPOSIXCore_arm64.h.
References m_sve_vector_length.
Referenced by ReadRegister().
|
overridevirtual |
Reimplemented from lldb_private::RegisterContext.
Definition at line 394 of file RegisterContextPOSIXCore_arm64.cpp.
|
overridevirtual |
Reimplemented from lldb_private::RegisterContext.
Definition at line 379 of file RegisterContextPOSIXCore_arm64.cpp.
|
overrideprotectedvirtual |
Implements RegisterContextPOSIX_arm64.
Definition at line 138 of file RegisterContextPOSIXCore_arm64.cpp.
|
overrideprotectedvirtual |
Implements RegisterContextPOSIX_arm64.
Definition at line 136 of file RegisterContextPOSIXCore_arm64.cpp.
|
overridevirtual |
Implements lldb_private::RegisterContext.
Definition at line 217 of file RegisterContextPOSIXCore_arm64.cpp.
References lldb_private::RegisterInfo::byte_offset, lldb_private::RegisterInfo::byte_size, CalculateSVEOffset(), lldb::eByteOrderLittle, lldb::eRegisterKindLLDB, error(), lldb_private::DataExtractor::GetByteSize(), lldb_private::DataExtractor::GetDataStart(), RegisterContextPOSIX_arm64::GetGPRSize(), RegisterContextPOSIX_arm64::GetRegisterInfoAtIndex(), RegisterContextPOSIX_arm64::GetRegNumFPCR(), RegisterContextPOSIX_arm64::GetRegNumFPSR(), GetSVEBuffer(), GetSVERegVG(), lldb_private::DataExtractor::GetU32(), lldb_private::endian::InlHostByteOrder(), RegisterContextPOSIX_arm64::IsFPR(), RegisterContextPOSIX_arm64::IsMTE(), RegisterContextPOSIX_arm64::IsPAuth(), RegisterContextPOSIX_arm64::IsSME(), RegisterContextPOSIX_arm64::IsSVE(), RegisterContextPOSIX_arm64::IsSVEVG(), RegisterContextPOSIX_arm64::IsSVEZ(), RegisterContextPOSIX_arm64::IsTLS(), lldb_private::RegisterInfo::kinds, LLDB_INVALID_REGNUM, m_fpr_data, m_gpr_data, m_mte_data, m_pac_data, RegisterContextPOSIX_arm64::m_register_info_up, m_sme_pseudo_regs, m_sve_data, m_sve_state, m_sve_vector_length, m_tls_data, m_za_data, m_zt_data, lldb_private::sve::ptrace_fpsimd_offset, lldb_private::sve::PTraceFPCROffset(), lldb_private::sve::PTraceFPSROffset(), lldb_private::RegisterValue::SetFromMemoryData(), lldb_private::RegisterInfo::value_regs, and lldb_private::sve::vq_from_vl().
|
overridevirtual |
Reimplemented from lldb_private::RegisterContext.
Definition at line 389 of file RegisterContextPOSIXCore_arm64.cpp.
|
overrideprotectedvirtual |
Implements RegisterContextPOSIX_arm64.
Definition at line 145 of file RegisterContextPOSIXCore_arm64.cpp.
|
overrideprotectedvirtual |
Implements RegisterContextPOSIX_arm64.
Definition at line 140 of file RegisterContextPOSIXCore_arm64.cpp.
|
overridevirtual |
Implements lldb_private::RegisterContext.
Definition at line 384 of file RegisterContextPOSIXCore_arm64.cpp.
|
private |
Definition at line 58 of file RegisterContextPOSIXCore_arm64.h.
Referenced by ReadRegister(), and RegisterContextCorePOSIX_arm64().
|
private |
Definition at line 57 of file RegisterContextPOSIXCore_arm64.h.
Referenced by ReadRegister(), and RegisterContextCorePOSIX_arm64().
|
private |
Definition at line 63 of file RegisterContextPOSIXCore_arm64.h.
Referenced by ReadRegister(), and RegisterContextCorePOSIX_arm64().
|
private |
Definition at line 60 of file RegisterContextPOSIXCore_arm64.h.
Referenced by ReadRegister(), and RegisterContextCorePOSIX_arm64().
|
private |
Definition at line 78 of file RegisterContextPOSIXCore_arm64.h.
Referenced by RegisterContextCorePOSIX_arm64().
|
private |
Definition at line 76 of file RegisterContextPOSIXCore_arm64.h.
Referenced by ConfigureRegisterContext(), ReadRegister(), and RegisterContextCorePOSIX_arm64().
|
private |
Definition at line 59 of file RegisterContextPOSIXCore_arm64.h.
Referenced by ConfigureRegisterContext(), GetSVEBuffer(), ReadRegister(), and RegisterContextCorePOSIX_arm64().
|
private |
Definition at line 66 of file RegisterContextPOSIXCore_arm64.h.
Referenced by CalculateSVEOffset(), ConfigureRegisterContext(), ReadRegister(), and RegisterContextCorePOSIX_arm64().
|
private |
Definition at line 67 of file RegisterContextPOSIXCore_arm64.h.
Referenced by ConfigureRegisterContext(), GetSVERegVG(), and ReadRegister().
|
private |
Definition at line 61 of file RegisterContextPOSIXCore_arm64.h.
Referenced by ReadRegister(), and RegisterContextCorePOSIX_arm64().
|
private |
Definition at line 62 of file RegisterContextPOSIXCore_arm64.h.
Referenced by ConfigureRegisterContext(), ReadRegister(), and RegisterContextCorePOSIX_arm64().
|
private |
Definition at line 64 of file RegisterContextPOSIXCore_arm64.h.
Referenced by ReadRegister(), and RegisterContextCorePOSIX_arm64().