|
LLDB mainline
|
#include <NativeRegisterContextLinux.h>
Classes | |
| struct | MemoryTaggingDetails |
| struct | MmapData |
| struct | SyscallData |
Public Member Functions | |
| virtual void | InvalidateAllRegisters () |
| virtual std::optional< SyscallData > | GetSyscallData () |
| Return architecture-specific data needed to make inferior syscalls, if they are supported. | |
| virtual std::optional< MmapData > | GetMmapData () |
| Return the architecture-specific data needed to make mmap syscalls, if they are supported. | |
| virtual llvm::Expected< MemoryTaggingDetails > | GetMemoryTaggingDetails (int32_t type) |
| Return architecture specific data needed to use memory tags, if they are supported. | |
| Public Member Functions inherited from lldb_private::NativeRegisterContextRegisterInfo | |
| NativeRegisterContextRegisterInfo (NativeThreadProtocol &thread, RegisterInfoInterface *register_info_interface) | |
| Construct a NativeRegisterContextRegisterInfo, taking ownership of the register_info_interface pointer. | |
| uint32_t | GetRegisterCount () const override |
| uint32_t | GetUserRegisterCount () const override |
| const RegisterInfo * | GetRegisterInfoAtIndex (uint32_t reg_index) const override |
| const RegisterInfoInterface & | GetRegisterInfoInterface () const |
| Public Member Functions inherited from lldb_private::NativeRegisterContext | |
| NativeRegisterContext (NativeThreadProtocol &thread) | |
| virtual | ~NativeRegisterContext () |
| const char * | GetRegisterSetNameForRegisterAtIndex (uint32_t reg_index) const |
| virtual uint32_t | GetRegisterSetCount () const =0 |
| virtual const RegisterSet * | GetRegisterSet (uint32_t set_index) const =0 |
| virtual Status | ReadRegister (const RegisterInfo *reg_info, RegisterValue ®_value)=0 |
| virtual Status | WriteRegister (const RegisterInfo *reg_info, const RegisterValue ®_value)=0 |
| virtual Status | ReadAllRegisterValues (lldb::WritableDataBufferSP &data_sp)=0 |
| virtual Status | WriteAllRegisterValues (const lldb::DataBufferSP &data_sp)=0 |
| uint32_t | ConvertRegisterKindToRegisterNumber (uint32_t kind, uint32_t num) const |
| virtual uint32_t | NumSupportedHardwareBreakpoints () |
| virtual uint32_t | SetHardwareBreakpoint (lldb::addr_t addr, size_t size) |
| virtual bool | ClearHardwareBreakpoint (uint32_t hw_idx) |
| virtual Status | ClearAllHardwareBreakpoints () |
| virtual Status | GetHardwareBreakHitIndex (uint32_t &bp_index, lldb::addr_t trap_addr) |
| virtual uint32_t | NumSupportedHardwareWatchpoints () |
| virtual uint32_t | SetHardwareWatchpoint (lldb::addr_t addr, size_t size, uint32_t watch_flags) |
| virtual bool | ClearHardwareWatchpoint (uint32_t hw_index) |
| virtual Status | ClearWatchpointHit (uint32_t hw_index) |
| virtual Status | ClearAllHardwareWatchpoints () |
| virtual Status | IsWatchpointHit (uint32_t wp_index, bool &is_hit) |
| virtual Status | GetWatchpointHitIndex (uint32_t &wp_index, lldb::addr_t trap_addr) |
| virtual Status | IsWatchpointVacant (uint32_t wp_index, bool &is_vacant) |
| virtual lldb::addr_t | GetWatchpointAddress (uint32_t wp_index) |
| virtual lldb::addr_t | GetWatchpointHitAddress (uint32_t wp_index) |
| virtual bool | HardwareSingleStep (bool enable) |
| virtual Status | ReadRegisterValueFromMemory (const lldb_private::RegisterInfo *reg_info, lldb::addr_t src_addr, size_t src_len, RegisterValue ®_value) |
| virtual Status | WriteRegisterValueToMemory (const lldb_private::RegisterInfo *reg_info, lldb::addr_t dst_addr, size_t dst_len, const RegisterValue ®_value) |
| virtual lldb::tid_t | GetThreadID () const |
| virtual NativeThreadProtocol & | GetThread () |
| virtual std::vector< uint32_t > | GetExpeditedRegisters (ExpeditedRegs expType) const |
| virtual bool | RegisterOffsetIsDynamic () const |
| const RegisterInfo * | GetRegisterInfoByName (llvm::StringRef reg_name, uint32_t start_idx=0) |
| const RegisterInfo * | GetRegisterInfo (uint32_t reg_kind, uint32_t reg_num) |
| lldb::addr_t | GetPC (lldb::addr_t fail_value=LLDB_INVALID_ADDRESS) |
| virtual lldb::addr_t | GetPCfromBreakpointLocation (lldb::addr_t fail_value=LLDB_INVALID_ADDRESS) |
| Status | SetPC (lldb::addr_t pc) |
| lldb::addr_t | GetSP (lldb::addr_t fail_value=LLDB_INVALID_ADDRESS) |
| Status | SetSP (lldb::addr_t sp) |
| lldb::addr_t | GetFP (lldb::addr_t fail_value=LLDB_INVALID_ADDRESS) |
| Status | SetFP (lldb::addr_t fp) |
| const char * | GetRegisterName (uint32_t reg) |
| lldb::addr_t | GetReturnAddress (lldb::addr_t fail_value=LLDB_INVALID_ADDRESS) |
| lldb::addr_t | GetFlags (lldb::addr_t fail_value=0) |
| lldb::addr_t | ReadRegisterAsUnsigned (uint32_t reg, lldb::addr_t fail_value) |
| lldb::addr_t | ReadRegisterAsUnsigned (const RegisterInfo *reg_info, lldb::addr_t fail_value) |
| Status | WriteRegisterFromUnsigned (uint32_t reg, uint64_t uval) |
| Status | WriteRegisterFromUnsigned (const RegisterInfo *reg_info, uint64_t uval) |
Static Public Member Functions | |
| static std::unique_ptr< NativeRegisterContextLinux > | CreateHostNativeRegisterContextLinux (const ArchSpec &target_arch, NativeThreadLinux &native_thread) |
| static llvm::Expected< ArchSpec > | DetermineArchitecture (lldb::tid_t tid) |
Protected Member Functions | |
| NativeRegisterContextLinux (NativeThreadProtocol &thread) | |
| lldb::ByteOrder | GetByteOrder () const |
| virtual Status | ReadRegisterRaw (uint32_t reg_index, RegisterValue ®_value) |
| virtual Status | WriteRegisterRaw (uint32_t reg_index, const RegisterValue ®_value) |
| virtual Status | ReadRegisterSet (void *buf, size_t buf_size, unsigned int regset) |
| virtual Status | WriteRegisterSet (void *buf, size_t buf_size, unsigned int regset) |
| virtual Status | ReadGPR () |
| virtual Status | WriteGPR () |
| virtual Status | ReadFPR () |
| virtual Status | WriteFPR () |
| virtual void * | GetGPRBuffer ()=0 |
| virtual size_t | GetGPRSize () const |
| virtual void * | GetFPRBuffer ()=0 |
| virtual size_t | GetFPRSize ()=0 |
| virtual uint32_t | GetPtraceOffset (uint32_t reg_index) |
| virtual Status | DoReadRegisterValue (uint32_t offset, const char *reg_name, uint32_t size, RegisterValue &value) |
| virtual Status | DoWriteRegisterValue (uint32_t offset, const char *reg_name, const RegisterValue &value) |
Static Protected Member Functions | |
| static llvm::Expected< ArchSpec > | DetermineArchitectureViaGPR (lldb::tid_t tid, size_t gpr64_size) |
Additional Inherited Members | |
| Protected Attributes inherited from lldb_private::NativeRegisterContextRegisterInfo | |
| std::unique_ptr< RegisterInfoInterface > | m_register_info_interface_up |
| Protected Attributes inherited from lldb_private::NativeRegisterContext | |
| NativeThreadProtocol & | m_thread |
Definition at line 23 of file NativeRegisterContextLinux.h.
|
inlineprotected |
Definition at line 89 of file NativeRegisterContextLinux.h.
References lldb_private::NativeRegisterContextRegisterInfo::NativeRegisterContextRegisterInfo().
|
static |
|
static |
|
staticprotected |
Definition at line 168 of file NativeRegisterContextLinux.cpp.
References lldb_private::Status::Fail(), PTRACE_GETREGSET, lldb_private::process_linux::NativeProcessLinux::PtraceWrapper(), and lldb_private::Status::ToError().
|
protectedvirtual |
Definition at line 137 of file NativeRegisterContextLinux.cpp.
References error(), lldb_private::GetLog(), LLDB_LOG, lldb_private::NativeRegisterContext::m_thread, lldb_private::process_linux::NativeProcessLinux::PtraceWrapper(), lldb_private::Registers, and lldb_private::RegisterValue::SetUInt().
Referenced by ReadRegisterRaw().
|
protectedvirtual |
Definition at line 156 of file NativeRegisterContextLinux.cpp.
References lldb_private::RegisterValue::GetAsUInt64(), lldb_private::GetLog(), LLDB_LOG, lldb_private::NativeRegisterContext::m_thread, lldb_private::process_linux::NativeProcessLinux::PtraceWrapper(), and lldb_private::Registers.
Referenced by WriteRegisterRaw().
|
protected |
Definition at line 23 of file NativeRegisterContextLinux.cpp.
References lldb_private::NativeRegisterContext::m_thread.
Referenced by WriteRegisterRaw().
|
protectedpure virtual |
Referenced by ReadFPR(), and WriteFPR().
|
protectedpure virtual |
Referenced by ReadFPR(), and WriteFPR().
|
protectedpure virtual |
Referenced by ReadGPR(), and WriteGPR().
|
inlineprotectedvirtual |
Definition at line 115 of file NativeRegisterContextLinux.h.
References lldb_private::RegisterInfoInterface::GetGPRSize(), and lldb_private::NativeRegisterContextRegisterInfo::GetRegisterInfoInterface().
Referenced by ReadGPR(), and WriteGPR().
|
inlinevirtual |
Return architecture specific data needed to use memory tags, if they are supported.
Definition at line 79 of file NativeRegisterContextLinux.h.
Referenced by lldb_private::process_linux::NativeThreadLinux::AnnotateSyncTagCheckFault(), lldb_private::process_linux::NativeProcessLinux::ReadMemoryTags(), and lldb_private::process_linux::NativeProcessLinux::WriteMemoryTags().
|
inlinevirtual |
Return the architecture-specific data needed to make mmap syscalls, if they are supported.
Definition at line 67 of file NativeRegisterContextLinux.h.
Referenced by lldb_private::process_linux::NativeProcessLinux::AllocateMemory(), and lldb_private::process_linux::NativeProcessLinux::DeallocateMemory().
|
inlineprotectedvirtual |
Definition at line 123 of file NativeRegisterContextLinux.h.
References lldb_private::RegisterInfo::byte_offset, and lldb_private::NativeRegisterContextRegisterInfo::GetRegisterInfoAtIndex().
Referenced by ReadRegisterRaw(), and WriteRegisterRaw().
|
inlinevirtual |
Return architecture-specific data needed to make inferior syscalls, if they are supported.
Definition at line 57 of file NativeRegisterContextLinux.h.
Referenced by lldb_private::process_linux::NativeProcessLinux::Syscall().
|
inlinevirtual |
Definition at line 41 of file NativeRegisterContextLinux.h.
Referenced by lldb_private::process_linux::NativeThreadLinux::SetStopped().
|
protectedvirtual |
Definition at line 111 of file NativeRegisterContextLinux.cpp.
References GetFPRBuffer(), GetFPRSize(), lldb_private::NativeRegisterContext::m_thread, PTRACE_GETFPREGS, and lldb_private::process_linux::NativeProcessLinux::PtraceWrapper().
|
protectedvirtual |
Definition at line 101 of file NativeRegisterContextLinux.cpp.
References GetGPRBuffer(), GetGPRSize(), lldb_private::NativeRegisterContext::m_thread, PTRACE_GETREGS, and lldb_private::process_linux::NativeProcessLinux::PtraceWrapper().
|
protectedvirtual |
Definition at line 27 of file NativeRegisterContextLinux.cpp.
References lldb_private::RegisterInfo::byte_size, DoReadRegisterValue(), lldb_private::Status::FromErrorStringWithFormat(), GetPtraceOffset(), lldb_private::NativeRegisterContextRegisterInfo::GetRegisterInfoAtIndex(), and lldb_private::RegisterInfo::name.
|
protectedvirtual |
Definition at line 123 of file NativeRegisterContextLinux.cpp.
References lldb_private::NativeRegisterContext::m_thread, PTRACE_GETREGSET, and lldb_private::process_linux::NativeProcessLinux::PtraceWrapper().
|
protectedvirtual |
Definition at line 117 of file NativeRegisterContextLinux.cpp.
References GetFPRBuffer(), GetFPRSize(), lldb_private::NativeRegisterContext::m_thread, PTRACE_SETFPREGS, and lldb_private::process_linux::NativeProcessLinux::PtraceWrapper().
|
protectedvirtual |
Definition at line 106 of file NativeRegisterContextLinux.cpp.
References GetGPRBuffer(), GetGPRSize(), lldb_private::NativeRegisterContext::m_thread, PTRACE_SETREGS, and lldb_private::process_linux::NativeProcessLinux::PtraceWrapper().
|
protectedvirtual |
Definition at line 39 of file NativeRegisterContextLinux.cpp.
References lldb_private::RegisterInfo::byte_offset, lldb_private::RegisterInfo::byte_size, lldb_private::RegisterInfo::data(), DoWriteRegisterValue(), error(), lldb_private::Status::FromErrorStringWithFormat(), lldb_private::RegisterValue::GetAsMemoryData(), GetByteOrder(), lldb_private::RegisterValue::GetByteSize(), GetPtraceOffset(), lldb_private::NativeRegisterContextRegisterInfo::GetRegisterInfoAtIndex(), lldb_private::RegisterInfo::invalidate_regs, LLDB_INVALID_REGNUM, lldb_private::RegisterInfo::name, lldb_private::NativeRegisterContext::ReadRegister(), lldb_private::RegisterValue::SetBytes(), and lldb_private::RegisterValue::SetType().
|
protectedvirtual |
Definition at line 130 of file NativeRegisterContextLinux.cpp.
References lldb_private::NativeRegisterContext::m_thread, PTRACE_SETREGSET, and lldb_private::process_linux::NativeProcessLinux::PtraceWrapper().