LLDB mainline
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
lldb_private::RegisterContext Class Referenceabstract

#include <RegisterContext.h>

Inheritance diagram for lldb_private::RegisterContext:
Inheritance graph
[legend]

Public Member Functions

 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 RegisterInfoGetRegisterInfoAtIndex (size_t reg)=0
 
virtual size_t GetRegisterSetCount ()=0
 
virtual const RegisterSetGetRegisterSet (size_t reg_set)=0
 
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 ThreadGetThread ()
 
const RegisterInfoGetRegisterInfoByName (llvm::StringRef reg_name, uint32_t start_idx=0)
 
const RegisterInfoGetRegisterInfo (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.
 

Protected Member Functions

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

Threadm_thread
 
uint32_t m_concrete_frame_idx
 
uint32_t m_stop_id
 

Private Member Functions

 RegisterContext (const RegisterContext &)=delete
 
const RegisterContextoperator= (const RegisterContext &)=delete
 

Detailed Description

Definition at line 17 of file RegisterContext.h.

Constructor & Destructor Documentation

◆ RegisterContext() [1/2]

RegisterContext::RegisterContext ( Thread thread,
uint32_t  concrete_frame_idx 
)

Definition at line 26 of file RegisterContext.cpp.

◆ ~RegisterContext()

RegisterContext::~RegisterContext ( )
overridedefault

◆ RegisterContext() [2/2]

lldb_private::RegisterContext::RegisterContext ( const RegisterContext )
privatedelete

Member Function Documentation

◆ BehavesLikeZerothFrame()

virtual bool lldb_private::RegisterContext::BehavesLikeZerothFrame ( ) const
inlineprotectedvirtual

Indicates that this frame is currently executing code, that the PC value is not a return-pc but an actual executing instruction.

Some places in lldb will treat a return-pc value differently than the currently-executing-pc value, and this method can indicate if that should be done. The base class implementation only uses the frame index, but subclasses may have additional information that they can use to detect frames in this state, for instance a frame above a trap handler (sigtramp etc)..

Reimplemented in lldb_private::RegisterContextUnwind.

Definition at line 239 of file RegisterContext.h.

References m_concrete_frame_idx.

Referenced by GetPCForSymbolication().

◆ CalculateExecutionContext()

void RegisterContext::CalculateExecutionContext ( ExecutionContext exe_ctx)
overridevirtual

Reconstruct the object's execution context into sc.

The object should fill in as much of the ExecutionContextScope as it can so function calls that require a execution context can be made for the given object.

Parameters
[out]exe_ctxA reference to an execution context object that gets filled in.

Implements lldb_private::ExecutionContextScope.

Definition at line 451 of file RegisterContext.cpp.

References lldb_private::Thread::CalculateExecutionContext(), and m_thread.

◆ CalculateProcess()

ProcessSP RegisterContext::CalculateProcess ( )
overridevirtual

◆ CalculateStackFrame()

StackFrameSP RegisterContext::CalculateStackFrame ( )
overridevirtual

Implements lldb_private::ExecutionContextScope.

Definition at line 444 of file RegisterContext.cpp.

◆ CalculateTarget()

TargetSP RegisterContext::CalculateTarget ( )
overridevirtual

◆ CalculateThread()

ThreadSP RegisterContext::CalculateThread ( )
overridevirtual

◆ ClearHardwareBreakpoint()

bool RegisterContext::ClearHardwareBreakpoint ( uint32_t  hw_idx)
virtual

◆ ClearHardwareWatchpoint()

bool RegisterContext::ClearHardwareWatchpoint ( uint32_t  hw_index)
virtual

◆ ConvertBetweenRegisterKinds()

bool RegisterContext::ConvertBetweenRegisterKinds ( lldb::RegisterKind  source_rk,
uint32_t  source_regnum,
lldb::RegisterKind  target_rk,
uint32_t &  target_regnum 
)

◆ ConvertRegisterKindToRegisterNumber()

uint32_t RegisterContext::ConvertRegisterKindToRegisterNumber ( lldb::RegisterKind  kind,
uint32_t  num 
)
virtual

Convert from a given register numbering scheme to the lldb register numbering scheme.

There may be multiple ways to enumerate the registers for a given architecture. ABI references will specify one to be used with DWARF, the register numberings from process plugin, there may be a variation used for eh_frame unwind instructions (e.g. on Darwin), and so on. Register 5 by itself is meaningless - RegisterKind enumeration tells you what context that number should be translated as.

Inside lldb, register numbers are in the eRegisterKindLLDB scheme; arguments which take a register number should take one in that scheme.

eRegisterKindGeneric is a special numbering scheme which gives us constant values for the pc, frame register, stack register, etc., for use within lldb. They may not be defined for all architectures but it allows generic code to translate these common registers into the lldb numbering scheme.

This method translates a given register kind + register number into the eRegisterKindLLDB register numbering.

Parameters
[in]kindThe register numbering scheme (RegisterKind) that the following register number is in.
[in]numA register number in the 'kind' register numbering scheme.
Returns
The equivalent register number in the eRegisterKindLLDB numbering scheme, if possible, else LLDB_INVALID_REGNUM.

Reimplemented in lldb_private::RegisterContextUnwind, lldb_private::process_gdb_remote::GDBRemoteRegisterContext, lldb_private::minidump::RegisterContextMinidump_ARM, lldb_private::minidump::RegisterContextMinidump_ARM64, RegisterContextDarwin_arm, RegisterContextDarwin_arm64, RegisterContextDarwin_i386, RegisterContextDarwin_x86_64, lldb_private::RegisterContextDummy, lldb_private::RegisterContextHistory, RegisterContextMemory, RegisterContextPOSIX_mips64, lldb_private::RegisterContextThreadMemory, and lldb_private::RegisterContextWindows.

Definition at line 274 of file RegisterContext.cpp.

References GetRegisterCount(), GetRegisterInfoAtIndex(), lldb_private::RegisterInfo::kinds, lldb::kNumRegisterKinds, and LLDB_INVALID_REGNUM.

Referenced by DumpRegister(), ABIMacOSX_arm64::GetArgumentValues(), ABIMacOSX_arm::GetArgumentValues(), GetFlags(), GetFP(), lldb_private::EmulateInstruction::GetInternalRegisterNumber(), GetPC(), GetRegisterInfo(), lldb_private::UnwindPlan::GetRegisterInfo(), GetReturnAddress(), GetSP(), GetThreadPointer(), LoadValueFromConsecutiveGPRRegisters(), ABIMacOSX_i386::PrepareTrivialCall(), ABIMacOSX_arm::PrepareTrivialCall(), ABISysV_arm::PrepareTrivialCall(), ABIMacOSX_arm64::PrepareTrivialCall(), ABISysV_i386::PrepareTrivialCall(), ReadRegisterValueAsScalar(), SetFP(), SetPC(), and SetSP().

◆ CopyFromRegisterContext()

bool RegisterContext::CopyFromRegisterContext ( lldb::RegisterContextSP  context)

◆ GetByteOrder()

lldb::ByteOrder RegisterContext::GetByteOrder ( )
virtual

◆ GetFlags()

uint64_t RegisterContext::GetFlags ( uint64_t  fail_value = 0)

◆ GetFP()

uint64_t RegisterContext::GetFP ( uint64_t  fail_value = LLDB_INVALID_ADDRESS)

◆ GetPC()

uint64_t RegisterContext::GetPC ( uint64_t  fail_value = LLDB_INVALID_ADDRESS)

◆ GetPCForSymbolication()

bool RegisterContext::GetPCForSymbolication ( Address address)

Get an address suitable for symbolication.

When symbolicating – computing line, block, function – for a function in the middle of the stack, using the return address can lead to unexpected results for the user. A function that ends in a tail-call may have another function as the "return" address, but it will never actually return. Or a noreturn call in the middle of a function is the end of a block of instructions, and a DWARF location list entry for the return address may be a very different code path with incorrect results when printing variables for this frame.

At a source line view, the user expects the current-line indictation to point to the function call they're under, not the next source line.

The return address (GetPC()) should always be shown to the user, but when computing context, keeping within the bounds of the call instruction is what the user expects to see.

Parameters
[out]addressAn Address object that will be filled in, if a PC can be retrieved.
Returns
Returns true if the Address param was filled in.

Definition at line 133 of file RegisterContext.cpp.

References BehavesLikeZerothFrame(), lldb_private::Thread::CalculateTarget(), GetPC(), LLDB_INVALID_ADDRESS, m_thread, pc, and lldb_private::Address::SetLoadAddress().

Referenced by lldb_private::DWARFExpressionList::Evaluate().

◆ GetRegisterCount()

virtual size_t lldb_private::RegisterContext::GetRegisterCount ( )
pure virtual

◆ GetRegisterInfo()

const RegisterInfo * RegisterContext::GetRegisterInfo ( lldb::RegisterKind  reg_kind,
uint32_t  reg_num 
)

◆ GetRegisterInfoAtIndex()

virtual const RegisterInfo * lldb_private::RegisterContext::GetRegisterInfoAtIndex ( size_t  reg)
pure virtual

Implemented in lldb_private::RegisterContextUnwind, lldb_private::process_gdb_remote::GDBRemoteRegisterContext, lldb_private::minidump::RegisterContextMinidump_ARM, lldb_private::minidump::RegisterContextMinidump_ARM64, RegisterContextDarwin_arm, RegisterContextDarwin_arm64, RegisterContextDarwin_i386, RegisterContextDarwin_x86_64, lldb_private::RegisterContextDummy, lldb_private::RegisterContextHistory, RegisterContextMemory, RegisterContextPOSIX_arm, RegisterContextPOSIX_arm64, RegisterContextPOSIX_loongarch64, RegisterContextPOSIX_mips64, RegisterContextPOSIX_powerpc, RegisterContextPOSIX_ppc64le, RegisterContextPOSIX_riscv64, RegisterContextPOSIX_s390x, RegisterContextPOSIX_x86, and lldb_private::RegisterContextThreadMemory.

Referenced by ConvertBetweenRegisterKinds(), ConvertRegisterKindToRegisterNumber(), lldb_private::RegisterContextWindows::ConvertRegisterKindToRegisterNumber(), CopyFromRegisterContext(), DumpRegister(), lldb_private::DumpRegisterInfo(), CommandObjectRegisterRead::DumpRegisterSet(), ABIMacOSX_arm64::GetArgumentValues(), ABIMacOSX_arm::GetArgumentValues(), GetRegisterInfo(), lldb_private::UnwindPlan::GetRegisterInfo(), GetRegisterInfoByName(), GetRegisterName(), ABISysV_hexagon::GetReturnValueObjectImpl(), LoadValueFromConsecutiveGPRRegisters(), lldb_private::ThreadPlanAssemblyTracer::Log(), ABIMacOSX_arm64::PrepareTrivialCall(), ABISysV_ppc64::PrepareTrivialCall(), ReadRegisterAsUnsigned(), ReadRegisterValueAsScalar(), lldb_private::CommandCompletions::Registers(), lldb_private::ThreadPlanCallFunction::ReportRegisterState(), and WriteRegisterFromUnsigned().

◆ GetRegisterInfoByName()

const RegisterInfo * RegisterContext::GetRegisterInfoByName ( llvm::StringRef  reg_name,
uint32_t  start_idx = 0 
)

Definition at line 52 of file RegisterContext.cpp.

References lldb_private::RegisterInfo::alt_name, lldb::eRegisterKindGeneric, GetRegisterCount(), GetRegisterInfo(), GetRegisterInfoAtIndex(), LLDB_INVALID_REGNUM, lldb_private::RegisterInfo::name, and lldb_private::Args::StringToGenericRegister().

Referenced by lldb_private::StopInfoMachException::DeterminePtrauthFailure(), CommandObjectRegisterRead::DoExecute(), CommandObjectRegisterWrite::DoExecute(), CommandObjectRegisterInfo::DoExecute(), DumpRegister(), ABIMacOSX_arm64::GetArgumentValues(), ABIMacOSX_arm::GetArgumentValues(), ABIMacOSX_arm64::GetReturnValueObjectImpl(), ABISysV_arm64::GetReturnValueObjectImpl(), ABIMacOSX_arm::GetReturnValueObjectImpl(), ABISysV_arm::GetReturnValueObjectImpl(), ABIMacOSX_i386::GetReturnValueObjectImpl(), ABISysV_mips::GetReturnValueObjectImpl(), ABISysV_mips64::GetReturnValueObjectImpl(), ABISysV_ppc::GetReturnValueObjectSimple(), ABISysV_s390x::GetReturnValueObjectSimple(), ABISysV_i386::GetReturnValueObjectSimple(), ABISysV_x86_64::GetReturnValueObjectSimple(), ABIWindows_x86_64::GetReturnValueObjectSimple(), ABISysV_arc::IsRegisterFileReduced(), LoadValueFromConsecutiveGPRRegisters(), ABIMacOSX_i386::PrepareTrivialCall(), ABIMacOSX_arm::PrepareTrivialCall(), ABISysV_mips::PrepareTrivialCall(), ABISysV_mips64::PrepareTrivialCall(), ABISysV_s390x::PrepareTrivialCall(), ABISysV_i386::PrepareTrivialCall(), read_register_u128(), read_register_u16_raw(), read_register_u32_raw(), read_register_u64_raw(), ABIMacOSX_arm64::SetReturnValueObject(), ABISysV_arm64::SetReturnValueObject(), ABIMacOSX_arm::SetReturnValueObject(), ABISysV_mips::SetReturnValueObject(), ABISysV_mips64::SetReturnValueObject(), ABISysV_ppc::SetReturnValueObject(), ABISysV_ppc64::SetReturnValueObject(), ABISysV_s390x::SetReturnValueObject(), ABIMacOSX_i386::SetReturnValueObject(), ABISysV_i386::SetReturnValueObject(), ABISysV_x86_64::SetReturnValueObject(), and ABIWindows_x86_64::SetReturnValueObject().

◆ GetRegisterName()

const char * RegisterContext::GetRegisterName ( uint32_t  reg)

◆ GetRegisterSet()

virtual const RegisterSet * lldb_private::RegisterContext::GetRegisterSet ( size_t  reg_set)
pure virtual

◆ GetRegisterSetCount()

virtual size_t lldb_private::RegisterContext::GetRegisterSetCount ( )
pure virtual

◆ GetReturnAddress()

uint64_t RegisterContext::GetReturnAddress ( uint64_t  fail_value = LLDB_INVALID_ADDRESS)

◆ GetSP()

uint64_t RegisterContext::GetSP ( uint64_t  fail_value = LLDB_INVALID_ADDRESS)

◆ GetStopID()

uint32_t lldb_private::RegisterContext::GetStopID ( ) const
inline

Definition at line 225 of file RegisterContext.h.

References m_stop_id.

Referenced by InvalidateIfNeeded().

◆ GetThread()

virtual Thread & lldb_private::RegisterContext::GetThread ( )
inlinevirtual

Definition at line 143 of file RegisterContext.h.

References m_thread.

◆ GetThreadID()

lldb::tid_t RegisterContext::GetThreadID ( ) const
virtual

◆ GetThreadPointer()

uint64_t RegisterContext::GetThreadPointer ( uint64_t  fail_value = LLDB_INVALID_ADDRESS)

◆ HardwareSingleStep()

bool RegisterContext::HardwareSingleStep ( bool  enable)
virtual

◆ InvalidateAllRegisters()

virtual void lldb_private::RegisterContext::InvalidateAllRegisters ( )
pure virtual

◆ InvalidateIfNeeded()

void RegisterContext::InvalidateIfNeeded ( bool  force)

◆ NumSupportedHardwareBreakpoints()

uint32_t RegisterContext::NumSupportedHardwareBreakpoints ( )
virtual

◆ NumSupportedHardwareWatchpoints()

uint32_t RegisterContext::NumSupportedHardwareWatchpoints ( )
virtual

◆ operator=()

const RegisterContext & lldb_private::RegisterContext::operator= ( const RegisterContext )
privatedelete

◆ ReadAllRegisterValues() [1/2]

virtual bool lldb_private::RegisterContext::ReadAllRegisterValues ( lldb::WritableDataBufferSP data_sp)
inlinevirtual

◆ ReadAllRegisterValues() [2/2]

bool RegisterContext::ReadAllRegisterValues ( lldb_private::RegisterCheckpoint reg_checkpoint)
virtual

◆ ReadRegister()

virtual bool lldb_private::RegisterContext::ReadRegister ( const RegisterInfo reg_info,
RegisterValue reg_value 
)
pure virtual

Implemented in RegisterContextDarwin_arm, RegisterContextDarwin_arm64, RegisterContextMemory, lldb_private::RegisterContextUnwind, RegisterContextCorePOSIX_arm, RegisterContextCorePOSIX_arm64, RegisterContextCorePOSIX_mips64, RegisterContextCorePOSIX_powerpc, RegisterContextCorePOSIX_ppc64le, RegisterContextCorePOSIX_riscv64, RegisterContextCorePOSIX_s390x, RegisterContextCorePOSIX_x86_64, RegisterContextFreeBSDKernel_arm64, RegisterContextFreeBSDKernel_i386, RegisterContextFreeBSDKernel_x86_64, RegisterContextDarwin_i386, RegisterContextDarwin_x86_64, lldb_private::RegisterContextDummy, lldb_private::RegisterContextHistory, lldb_private::minidump::RegisterContextMinidump_ARM, lldb_private::minidump::RegisterContextMinidump_ARM64, lldb_private::RegisterContextThreadMemory, and lldb_private::process_gdb_remote::GDBRemoteRegisterContext.

Referenced by lldb_private::StopInfoMachException::DeterminePtrauthFailure(), CommandObjectRegisterRead::DumpRegister(), DumpRegister(), ABIMacOSX_arm64::GetArgumentValues(), ABISysV_arm64::GetArgumentValues(), ABIMacOSX_arm::GetArgumentValues(), ABISysV_arm::GetArgumentValues(), ABIMacOSX_arm64::GetReturnValueObjectImpl(), ABISysV_arm64::GetReturnValueObjectImpl(), ABIMacOSX_arm::GetReturnValueObjectImpl(), ABISysV_arm::GetReturnValueObjectImpl(), ABISysV_mips::GetReturnValueObjectImpl(), ABISysV_mips64::GetReturnValueObjectImpl(), ABISysV_hexagon::GetReturnValueObjectImpl(), ABISysV_ppc::GetReturnValueObjectSimple(), ABISysV_s390x::GetReturnValueObjectSimple(), ABISysV_i386::GetReturnValueObjectSimple(), ABISysV_x86_64::GetReturnValueObjectSimple(), ABIWindows_x86_64::GetReturnValueObjectSimple(), LoadValueFromConsecutiveGPRRegisters(), lldb_private::ThreadPlanAssemblyTracer::Log(), read_register_u128(), read_register_u16_raw(), read_register_u32_raw(), read_register_u64_raw(), ReadRegisterAsUnsigned(), ReadRegisterValueAsScalar(), and lldb_private::ThreadPlanCallFunction::ReportRegisterState().

◆ ReadRegisterAsUnsigned() [1/2]

uint64_t RegisterContext::ReadRegisterAsUnsigned ( const RegisterInfo reg_info,
uint64_t  fail_value 
)

◆ ReadRegisterAsUnsigned() [2/2]

uint64_t RegisterContext::ReadRegisterAsUnsigned ( uint32_t  reg,
uint64_t  fail_value 
)

◆ ReadRegisterValueFromMemory()

Status RegisterContext::ReadRegisterValueFromMemory ( const lldb_private::RegisterInfo reg_info,
lldb::addr_t  src_addr,
uint32_t  src_len,
RegisterValue reg_value 
)
virtual

◆ ReconfigureRegisterInfo()

virtual bool lldb_private::RegisterContext::ReconfigureRegisterInfo ( )
inlinevirtual

◆ RegisterWriteCausesReconfigure()

virtual bool lldb_private::RegisterContext::RegisterWriteCausesReconfigure ( const llvm::StringRef  name)
inlinevirtual

◆ SetFP()

bool RegisterContext::SetFP ( uint64_t  fp)

◆ SetHardwareBreakpoint()

uint32_t RegisterContext::SetHardwareBreakpoint ( lldb::addr_t  addr,
size_t  size 
)
virtual

◆ SetHardwareWatchpoint()

uint32_t RegisterContext::SetHardwareWatchpoint ( lldb::addr_t  addr,
size_t  size,
bool  read,
bool  write 
)
virtual

◆ SetPC() [1/2]

bool RegisterContext::SetPC ( Address  addr)

◆ SetPC() [2/2]

bool RegisterContext::SetPC ( uint64_t  pc)

◆ SetSP()

bool RegisterContext::SetSP ( uint64_t  sp)

◆ SetStopID()

void lldb_private::RegisterContext::SetStopID ( uint32_t  stop_id)
inline

Definition at line 227 of file RegisterContext.h.

References m_stop_id.

Referenced by InvalidateIfNeeded().

◆ WriteAllRegisterValues() [1/2]

virtual bool lldb_private::RegisterContext::WriteAllRegisterValues ( const lldb::DataBufferSP data_sp)
inlinevirtual

◆ WriteAllRegisterValues() [2/2]

bool RegisterContext::WriteAllRegisterValues ( const lldb_private::RegisterCheckpoint reg_checkpoint)
virtual

◆ WriteRegister()

virtual bool lldb_private::RegisterContext::WriteRegister ( const RegisterInfo reg_info,
const RegisterValue reg_value 
)
pure virtual

◆ WriteRegisterFromUnsigned() [1/2]

bool RegisterContext::WriteRegisterFromUnsigned ( const RegisterInfo reg_info,
uint64_t  uval 
)

◆ WriteRegisterFromUnsigned() [2/2]

bool RegisterContext::WriteRegisterFromUnsigned ( uint32_t  reg,
uint64_t  uval 
)

◆ WriteRegisterValueToMemory()

Status RegisterContext::WriteRegisterValueToMemory ( const lldb_private::RegisterInfo reg_info,
lldb::addr_t  dst_addr,
uint32_t  dst_len,
const RegisterValue reg_value 
)
virtual

Member Data Documentation

◆ m_concrete_frame_idx

uint32_t lldb_private::RegisterContext::m_concrete_frame_idx
protected

Definition at line 245 of file RegisterContext.h.

Referenced by BehavesLikeZerothFrame(), and SetPC().

◆ m_stop_id

uint32_t lldb_private::RegisterContext::m_stop_id
protected

Definition at line 247 of file RegisterContext.h.

Referenced by GetStopID(), and SetStopID().

◆ m_thread

Thread& lldb_private::RegisterContext::m_thread
protected

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