LLDB mainline
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | List of all members
lldb_private::process_linux::NativeRegisterContextLinux Class Referenceabstract

#include <NativeRegisterContextLinux.h>

Inheritance diagram for lldb_private::process_linux::NativeRegisterContextLinux:
Inheritance graph
[legend]

Classes

struct  MemoryTaggingDetails
 
struct  MmapData
 
struct  SyscallData
 

Public Member Functions

virtual void InvalidateAllRegisters ()
 
virtual std::optional< SyscallDataGetSyscallData ()
 Return architecture-specific data needed to make inferior syscalls, if they are supported.
 
virtual std::optional< MmapDataGetMmapData ()
 Return the architecture-specific data needed to make mmap syscalls, if they are supported.
 
virtual llvm::Expected< MemoryTaggingDetailsGetMemoryTaggingDetails (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 RegisterInfoGetRegisterInfoAtIndex (uint32_t reg_index) const override
 
const RegisterInfoInterfaceGetRegisterInfoInterface () const
 
- Public Member Functions inherited from lldb_private::NativeRegisterContext
 NativeRegisterContext (NativeThreadProtocol &thread)
 
virtual ~NativeRegisterContext ()
 
virtual uint32_t GetRegisterCount () const =0
 
virtual uint32_t GetUserRegisterCount () const =0
 
virtual const RegisterInfoGetRegisterInfoAtIndex (uint32_t reg) const =0
 
const char * GetRegisterSetNameForRegisterAtIndex (uint32_t reg_index) const
 
virtual uint32_t GetRegisterSetCount () const =0
 
virtual const RegisterSetGetRegisterSet (uint32_t set_index) const =0
 
virtual Status ReadRegister (const RegisterInfo *reg_info, RegisterValue &reg_value)=0
 
virtual Status WriteRegister (const RegisterInfo *reg_info, const RegisterValue &reg_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 &reg_value)
 
virtual Status WriteRegisterValueToMemory (const lldb_private::RegisterInfo *reg_info, lldb::addr_t dst_addr, size_t dst_len, const RegisterValue &reg_value)
 
virtual lldb::tid_t GetThreadID () const
 
virtual NativeThreadProtocolGetThread ()
 
virtual std::vector< uint32_t > GetExpeditedRegisters (ExpeditedRegs expType) const
 
virtual bool RegisterOffsetIsDynamic () const
 
const RegisterInfoGetRegisterInfoByName (llvm::StringRef reg_name, uint32_t start_idx=0)
 
const RegisterInfoGetRegisterInfo (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< NativeRegisterContextLinuxCreateHostNativeRegisterContextLinux (const ArchSpec &target_arch, NativeThreadLinux &native_thread)
 
static llvm::Expected< ArchSpecDetermineArchitecture (lldb::tid_t tid)
 

Protected Member Functions

 NativeRegisterContextLinux (NativeThreadProtocol &thread)
 
lldb::ByteOrder GetByteOrder () const
 
virtual Status ReadRegisterRaw (uint32_t reg_index, RegisterValue &reg_value)
 
virtual Status WriteRegisterRaw (uint32_t reg_index, const RegisterValue &reg_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< ArchSpecDetermineArchitectureViaGPR (lldb::tid_t tid, size_t gpr64_size)
 

Additional Inherited Members

- Protected Attributes inherited from lldb_private::NativeRegisterContextRegisterInfo
std::unique_ptr< RegisterInfoInterfacem_register_info_interface_up
 
- Protected Attributes inherited from lldb_private::NativeRegisterContext
NativeThreadProtocolm_thread
 

Detailed Description

Definition at line 23 of file NativeRegisterContextLinux.h.

Constructor & Destructor Documentation

◆ NativeRegisterContextLinux()

lldb_private::process_linux::NativeRegisterContextLinux::NativeRegisterContextLinux ( NativeThreadProtocol thread)
inlineprotected

Definition at line 89 of file NativeRegisterContextLinux.h.

Member Function Documentation

◆ CreateHostNativeRegisterContextLinux()

static std::unique_ptr< NativeRegisterContextLinux > lldb_private::process_linux::NativeRegisterContextLinux::CreateHostNativeRegisterContextLinux ( const ArchSpec target_arch,
NativeThreadLinux native_thread 
)
static

◆ DetermineArchitecture()

static llvm::Expected< ArchSpec > lldb_private::process_linux::NativeRegisterContextLinux::DetermineArchitecture ( lldb::tid_t  tid)
static

◆ DetermineArchitectureViaGPR()

llvm::Expected< ArchSpec > NativeRegisterContextLinux::DetermineArchitectureViaGPR ( lldb::tid_t  tid,
size_t  gpr64_size 
)
staticprotected

◆ DoReadRegisterValue()

Status NativeRegisterContextLinux::DoReadRegisterValue ( uint32_t  offset,
const char *  reg_name,
uint32_t  size,
RegisterValue value 
)
protectedvirtual

◆ DoWriteRegisterValue()

Status NativeRegisterContextLinux::DoWriteRegisterValue ( uint32_t  offset,
const char *  reg_name,
const RegisterValue value 
)
protectedvirtual

◆ GetByteOrder()

lldb::ByteOrder NativeRegisterContextLinux::GetByteOrder ( ) const
protected

◆ GetFPRBuffer()

virtual void * lldb_private::process_linux::NativeRegisterContextLinux::GetFPRBuffer ( )
protectedpure virtual

Referenced by ReadFPR(), and WriteFPR().

◆ GetFPRSize()

virtual size_t lldb_private::process_linux::NativeRegisterContextLinux::GetFPRSize ( )
protectedpure virtual

Referenced by ReadFPR(), and WriteFPR().

◆ GetGPRBuffer()

virtual void * lldb_private::process_linux::NativeRegisterContextLinux::GetGPRBuffer ( )
protectedpure virtual

Referenced by ReadGPR(), and WriteGPR().

◆ GetGPRSize()

virtual size_t lldb_private::process_linux::NativeRegisterContextLinux::GetGPRSize ( ) const
inlineprotectedvirtual

◆ GetMemoryTaggingDetails()

virtual llvm::Expected< MemoryTaggingDetails > lldb_private::process_linux::NativeRegisterContextLinux::GetMemoryTaggingDetails ( int32_t  type)
inlinevirtual

◆ GetMmapData()

virtual std::optional< MmapData > lldb_private::process_linux::NativeRegisterContextLinux::GetMmapData ( )
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().

◆ GetPtraceOffset()

virtual uint32_t lldb_private::process_linux::NativeRegisterContextLinux::GetPtraceOffset ( uint32_t  reg_index)
inlineprotectedvirtual

◆ GetSyscallData()

virtual std::optional< SyscallData > lldb_private::process_linux::NativeRegisterContextLinux::GetSyscallData ( )
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().

◆ InvalidateAllRegisters()

virtual void lldb_private::process_linux::NativeRegisterContextLinux::InvalidateAllRegisters ( )
inlinevirtual

◆ ReadFPR()

Status NativeRegisterContextLinux::ReadFPR ( )
protectedvirtual

◆ ReadGPR()

Status NativeRegisterContextLinux::ReadGPR ( )
protectedvirtual

◆ ReadRegisterRaw()

Status NativeRegisterContextLinux::ReadRegisterRaw ( uint32_t  reg_index,
RegisterValue reg_value 
)
protectedvirtual

◆ ReadRegisterSet()

Status NativeRegisterContextLinux::ReadRegisterSet ( void *  buf,
size_t  buf_size,
unsigned int  regset 
)
protectedvirtual

◆ WriteFPR()

Status NativeRegisterContextLinux::WriteFPR ( )
protectedvirtual

◆ WriteGPR()

Status NativeRegisterContextLinux::WriteGPR ( )
protectedvirtual

◆ WriteRegisterRaw()

Status NativeRegisterContextLinux::WriteRegisterRaw ( uint32_t  reg_index,
const RegisterValue reg_value 
)
protectedvirtual

◆ WriteRegisterSet()

Status NativeRegisterContextLinux::WriteRegisterSet ( void *  buf,
size_t  buf_size,
unsigned int  regset 
)
protectedvirtual

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