LLDB mainline
RegisterContextPOSIX_x86 Class Referenceabstract

#include <RegisterContextPOSIX_x86.h>

Inheritance diagram for RegisterContextPOSIX_x86:
[legend]

Public Types

enum  FPRType {
  eNotValid = 0 , eFSAVE , eFXSAVE , eSOFT ,
  eXSAVE
}

Public Member Functions

 RegisterContextPOSIX_x86 (lldb_private::Thread &thread, uint32_t concrete_frame_idx, lldb_private::RegisterInfoInterface *register_info)
 ~RegisterContextPOSIX_x86 () override
void Invalidate ()
void InvalidateAllRegisters () override
size_t GetRegisterCount () override
virtual size_t GetGPRSize ()
virtual size_t GetFXSAVEOffset ()
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 lldb::ByteOrder GetByteOrder ()
virtual bool ReadRegister (const RegisterInfo *reg_info, RegisterValue &reg_value)=0
virtual bool WriteRegister (const RegisterInfo *reg_info, const RegisterValue &reg_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 &reg_checkpoint)
virtual bool WriteAllRegisterValues (const lldb_private::RegisterCheckpoint &reg_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 &reg_value)
virtual Status WriteRegisterValueToMemory (const lldb_private::RegisterInfo *reg_info, lldb::addr_t dst_addr, uint32_t dst_len, const RegisterValue &reg_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

Protected Member Functions

virtual bool IsRegisterSetAvailable (size_t set_index)
virtual const lldb_private::RegisterInfo * GetRegisterInfo ()
bool IsGPR (unsigned reg)
bool IsFPR (unsigned reg)
bool IsAVX (unsigned reg)
bool CopyXSTATEtoYMM (uint32_t reg, lldb::ByteOrder byte_order)
bool CopyYMMtoXSTATE (uint32_t reg, lldb::ByteOrder byte_order)
bool IsFPR (unsigned reg, FPRType fpr_type)
FPRType GetFPRType ()
virtual bool ReadGPR ()=0
virtual bool ReadFPR ()=0
virtual bool WriteGPR ()=0
virtual bool WriteFPR ()=0
virtual lldb_private::RegInfo & GetRegInfo ()
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.

Protected Attributes

FPRType m_fpr_type
lldb_private::FPR m_fpr
lldb_private::YMM m_ymm_set
std::unique_ptr< lldb_private::RegisterInfoInterface > 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

Detailed Description

Definition at line 19 of file RegisterContextPOSIX_x86.h.

Member Enumeration Documentation

◆ FPRType

Enumerator
eNotValid 
eFSAVE 
eFXSAVE 
eSOFT 
eXSAVE 

Definition at line 50 of file RegisterContextPOSIX_x86.h.

Constructor & Destructor Documentation

◆ RegisterContextPOSIX_x86()

◆ ~RegisterContextPOSIX_x86()

RegisterContextPOSIX_x86::~RegisterContextPOSIX_x86 ( )
overridedefault

Member Function Documentation

◆ CopyXSTATEtoYMM()

bool RegisterContextPOSIX_x86::CopyXSTATEtoYMM ( uint32_t reg,
lldb::ByteOrder byte_order )
protected

◆ CopyYMMtoXSTATE()

bool RegisterContextPOSIX_x86::CopyYMMtoXSTATE ( uint32_t reg,
lldb::ByteOrder byte_order )
protected

◆ GetFPRType()

RegisterContextPOSIX_x86::FPRType RegisterContextPOSIX_x86::GetFPRType ( )
protected

Definition at line 212 of file RegisterContextPOSIX_x86.cpp.

References eFXSAVE, eNotValid, eXSAVE, m_fpr_type, and ReadFPR().

Referenced by GetRegisterCount(), and IsRegisterSetAvailable().

◆ GetFXSAVEOffset()

size_t RegisterContextPOSIX_x86::GetFXSAVEOffset ( )
virtual

◆ GetGPRSize()

size_t RegisterContextPOSIX_x86::GetGPRSize ( )
virtual

◆ GetRegInfo()

◆ GetRegisterCount()

size_t RegisterContextPOSIX_x86::GetRegisterCount ( )
overridevirtual

◆ GetRegisterInfo()

const RegisterInfo * RegisterContextPOSIX_x86::GetRegisterInfo ( )
protectedvirtual

◆ GetRegisterInfoAtIndex()

const RegisterInfo * RegisterContextPOSIX_x86::GetRegisterInfoAtIndex ( size_t reg)
overridevirtual

Implements lldb_private::RegisterContext.

Definition at line 266 of file RegisterContextPOSIX_x86.cpp.

References GetRegInfo(), and GetRegisterInfo().

◆ GetRegisterName()

const char * RegisterContextPOSIX_x86::GetRegisterName ( unsigned reg)

◆ GetRegisterOffset()

unsigned RegisterContextPOSIX_x86::GetRegisterOffset ( unsigned reg)
virtual

◆ GetRegisterSet()

const RegisterSet * RegisterContextPOSIX_x86::GetRegisterSet ( size_t set)
overridevirtual

◆ GetRegisterSetCount()

size_t RegisterContextPOSIX_x86::GetRegisterSetCount ( )
overridevirtual

◆ GetRegisterSize()

unsigned RegisterContextPOSIX_x86::GetRegisterSize ( unsigned reg)
virtual

◆ Invalidate()

void RegisterContextPOSIX_x86::Invalidate ( )

Definition at line 222 of file RegisterContextPOSIX_x86.cpp.

◆ InvalidateAllRegisters()

void RegisterContextPOSIX_x86::InvalidateAllRegisters ( )
overridevirtual

Implements lldb_private::RegisterContext.

Definition at line 224 of file RegisterContextPOSIX_x86.cpp.

◆ IsAVX()

bool RegisterContextPOSIX_x86::IsAVX ( unsigned reg)
protected

Definition at line 186 of file RegisterContextPOSIX_x86.cpp.

References GetRegInfo().

Referenced by CopyXSTATEtoYMM(), CopyYMMtoXSTATE(), and IsFPR().

◆ IsFPR() [1/2]

bool RegisterContextPOSIX_x86::IsFPR ( unsigned reg)
protected

Definition at line 182 of file RegisterContextPOSIX_x86.cpp.

References GetRegInfo().

Referenced by IsFPR().

◆ IsFPR() [2/2]

bool RegisterContextPOSIX_x86::IsFPR ( unsigned reg,
FPRType fpr_type )
protected

Definition at line 190 of file RegisterContextPOSIX_x86.cpp.

References eXSAVE, IsAVX(), and IsFPR().

◆ IsGPR()

bool RegisterContextPOSIX_x86::IsGPR ( unsigned reg)
protected

Definition at line 178 of file RegisterContextPOSIX_x86.cpp.

References GetRegInfo(), and lldb_private::RegInfo::last_gpr.

◆ IsRegisterSetAvailable()

bool RegisterContextPOSIX_x86::IsRegisterSetAvailable ( size_t set_index)
protectedvirtual

◆ ReadFPR()

virtual bool RegisterContextPOSIX_x86::ReadFPR ( )
protectedpure virtual

◆ ReadGPR()

virtual bool RegisterContextPOSIX_x86::ReadGPR ( )
protectedpure virtual

◆ WriteFPR()

virtual bool RegisterContextPOSIX_x86::WriteFPR ( )
protectedpure virtual

◆ WriteGPR()

virtual bool RegisterContextPOSIX_x86::WriteGPR ( )
protectedpure virtual

Member Data Documentation

◆ m_fpr

lldb_private::FPR RegisterContextPOSIX_x86::m_fpr
protected

◆ m_fpr_type

FPRType RegisterContextPOSIX_x86::m_fpr_type
protected

Definition at line 60 of file RegisterContextPOSIX_x86.h.

Referenced by GetFPRType(), and RegisterContextPOSIX_x86().

◆ m_register_info_up

◆ m_ymm_set

lldb_private::YMM RegisterContextPOSIX_x86::m_ymm_set
protected

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