LLDB  mainline
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
RegisterContextCorePOSIX_x86_64 Class Reference

#include <RegisterContextPOSIXCore_x86_64.h>

Inheritance diagram for RegisterContextCorePOSIX_x86_64:
Inheritance graph
Collaboration diagram for RegisterContextCorePOSIX_x86_64:
Collaboration graph

Public Member Functions

 RegisterContextCorePOSIX_x86_64 (lldb_private::Thread &thread, lldb_private::RegisterInfoInterface *register_info, const lldb_private::DataExtractor &gpregset, llvm::ArrayRef< lldb_private::CoreNote > notes)
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::DataBufferSP &data_sp) override
bool WriteAllRegisterValues (const lldb::DataBufferSP &data_sp) override
bool HardwareSingleStep (bool enable) override
- Public Member Functions inherited from RegisterContextPOSIX_x86
 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)
uint32_t UpdateDynamicRegisterSize (const lldb_private::ArchSpec &arch, RegisterInfo *reg_info)
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_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. More...
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 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 ThreadGetThread ()
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)
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. More...
uint32_t GetStopID () const
void SetStopID (uint32_t stop_id)
- Public Member Functions inherited from lldb_private::ExecutionContextScope
virtual ~ExecutionContextScope ()

Protected Member Functions

bool ReadGPR () override
bool ReadFPR () override
bool WriteGPR () override
bool WriteFPR () override
- Protected Member Functions inherited from RegisterContextPOSIX_x86
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 ()

Private Attributes

std::unique_ptr< uint8_t[]> m_gpregset
std::unique_ptr< uint8_t[]> m_fpregset

Additional Inherited Members

- Public Types inherited from RegisterContextPOSIX_x86
enum  FPRType {
  eNotValid = 0 , eFSAVE , eFXSAVE , eSOFT ,
- Static Public Attributes inherited from RegisterContextPOSIX_x86
static uint32_t g_contained_eax []
static uint32_t g_contained_ebx []
static uint32_t g_contained_ecx []
static uint32_t g_contained_edx []
static uint32_t g_contained_edi []
static uint32_t g_contained_esi []
static uint32_t g_contained_ebp []
static uint32_t g_contained_esp []
static uint32_t g_invalidate_eax []
static uint32_t g_invalidate_ebx []
static uint32_t g_invalidate_ecx []
static uint32_t g_invalidate_edx []
static uint32_t g_invalidate_edi []
static uint32_t g_invalidate_esi []
static uint32_t g_invalidate_ebp []
static uint32_t g_invalidate_esp []
static uint32_t g_contained_rax []
static uint32_t g_contained_rbx []
static uint32_t g_contained_rcx []
static uint32_t g_contained_rdx []
static uint32_t g_contained_rdi []
static uint32_t g_contained_rsi []
static uint32_t g_contained_rbp []
static uint32_t g_contained_rsp []
static uint32_t g_contained_r8 []
static uint32_t g_contained_r9 []
static uint32_t g_contained_r10 []
static uint32_t g_contained_r11 []
static uint32_t g_contained_r12 []
static uint32_t g_contained_r13 []
static uint32_t g_contained_r14 []
static uint32_t g_contained_r15 []
static uint32_t g_invalidate_rax []
static uint32_t g_invalidate_rbx []
static uint32_t g_invalidate_rcx []
static uint32_t g_invalidate_rdx []
static uint32_t g_invalidate_rdi []
static uint32_t g_invalidate_rsi []
static uint32_t g_invalidate_rbp []
static uint32_t g_invalidate_rsp []
static uint32_t g_invalidate_r8 []
static uint32_t g_invalidate_r9 []
static uint32_t g_invalidate_r10 []
static uint32_t g_invalidate_r11 []
static uint32_t g_invalidate_r12 []
static uint32_t g_invalidate_r13 []
static uint32_t g_invalidate_r14 []
static uint32_t g_invalidate_r15 []
static uint32_t g_contained_fip []
static uint32_t g_contained_fdp []
static uint32_t g_invalidate_fip []
static uint32_t g_invalidate_fdp []
static uint32_t g_contained_st0_32 []
static uint32_t g_contained_st1_32 []
static uint32_t g_contained_st2_32 []
static uint32_t g_contained_st3_32 []
static uint32_t g_contained_st4_32 []
static uint32_t g_contained_st5_32 []
static uint32_t g_contained_st6_32 []
static uint32_t g_contained_st7_32 []
static uint32_t g_invalidate_st0_32 []
static uint32_t g_invalidate_st1_32 []
static uint32_t g_invalidate_st2_32 []
static uint32_t g_invalidate_st3_32 []
static uint32_t g_invalidate_st4_32 []
static uint32_t g_invalidate_st5_32 []
static uint32_t g_invalidate_st6_32 []
static uint32_t g_invalidate_st7_32 []
static uint32_t g_contained_st0_64 []
static uint32_t g_contained_st1_64 []
static uint32_t g_contained_st2_64 []
static uint32_t g_contained_st3_64 []
static uint32_t g_contained_st4_64 []
static uint32_t g_contained_st5_64 []
static uint32_t g_contained_st6_64 []
static uint32_t g_contained_st7_64 []
static uint32_t g_invalidate_st0_64 []
static uint32_t g_invalidate_st1_64 []
static uint32_t g_invalidate_st2_64 []
static uint32_t g_invalidate_st3_64 []
static uint32_t g_invalidate_st4_64 []
static uint32_t g_invalidate_st5_64 []
static uint32_t g_invalidate_st6_64 []
static uint32_t g_invalidate_st7_64 []
- Protected Attributes inherited from RegisterContextPOSIX_x86
uint64_t m_gpr_x86_64 [lldb_private::k_num_gpr_registers_x86_64]
RegInfo m_reg_info
FPRType m_fpr_type
lldb_private::FPR m_fpr
lldb_private::YMM m_ymm_set
std::unique_ptr< lldb_private::RegisterInfoInterfacem_register_info_up
- Protected Attributes inherited from lldb_private::RegisterContext
uint32_t m_concrete_frame_idx
uint32_t m_stop_id

Detailed Description

Definition at line 15 of file RegisterContextPOSIXCore_x86_64.h.

Constructor & Destructor Documentation

◆ RegisterContextCorePOSIX_x86_64()

RegisterContextCorePOSIX_x86_64::RegisterContextCorePOSIX_x86_64 ( lldb_private::Thread thread,
lldb_private::RegisterInfoInterface register_info,
const lldb_private::DataExtractor gpregset,
llvm::ArrayRef< lldb_private::CoreNote notes 

Member Function Documentation

◆ HardwareSingleStep()

bool RegisterContextCorePOSIX_x86_64::HardwareSingleStep ( bool  enable)

Reimplemented from lldb_private::RegisterContext.

Definition at line 97 of file RegisterContextPOSIXCore_x86_64.cpp.

◆ ReadAllRegisterValues()

bool RegisterContextCorePOSIX_x86_64::ReadAllRegisterValues ( lldb::DataBufferSP &  data_sp)

Reimplemented from lldb_private::RegisterContext.

Definition at line 82 of file RegisterContextPOSIXCore_x86_64.cpp.

◆ ReadFPR()

bool RegisterContextCorePOSIX_x86_64::ReadFPR ( )

Implements RegisterContextPOSIX_x86.

Definition at line 43 of file RegisterContextPOSIXCore_x86_64.cpp.

References m_fpregset.

◆ ReadGPR()

bool RegisterContextCorePOSIX_x86_64::ReadGPR ( )

Implements RegisterContextPOSIX_x86.

Definition at line 39 of file RegisterContextPOSIXCore_x86_64.cpp.

References m_gpregset.

◆ ReadRegister()

bool RegisterContextCorePOSIX_x86_64::ReadRegister ( const lldb_private::RegisterInfo *  reg_info,
lldb_private::RegisterValue value 

◆ WriteAllRegisterValues()

bool RegisterContextCorePOSIX_x86_64::WriteAllRegisterValues ( const lldb::DataBufferSP &  data_sp)

Reimplemented from lldb_private::RegisterContext.

Definition at line 92 of file RegisterContextPOSIXCore_x86_64.cpp.

◆ WriteFPR()

bool RegisterContextCorePOSIX_x86_64::WriteFPR ( )

Implements RegisterContextPOSIX_x86.

Definition at line 52 of file RegisterContextPOSIXCore_x86_64.cpp.

◆ WriteGPR()

bool RegisterContextCorePOSIX_x86_64::WriteGPR ( )

Implements RegisterContextPOSIX_x86.

Definition at line 47 of file RegisterContextPOSIXCore_x86_64.cpp.

◆ WriteRegister()

bool RegisterContextCorePOSIX_x86_64::WriteRegister ( const lldb_private::RegisterInfo *  reg_info,
const lldb_private::RegisterValue value 

Definition at line 87 of file RegisterContextPOSIXCore_x86_64.cpp.

Member Data Documentation

◆ m_fpregset

std::unique_ptr<uint8_t[]> RegisterContextCorePOSIX_x86_64::m_fpregset

◆ m_gpregset

std::unique_ptr<uint8_t[]> RegisterContextCorePOSIX_x86_64::m_gpregset

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