LLDB mainline
|
#include <RegisterContextUnifiedCore.h>
Public Member Functions | |
RegisterContextUnifiedCore (Thread &thread, uint32_t concrete_frame_idx, lldb::RegisterContextSP core_thread_regctx_sp, lldb_private::StructuredData::ObjectSP metadata_thread_registers) | |
void | InvalidateAllRegisters () override |
size_t | GetRegisterCount () override |
const lldb_private::RegisterInfo * | GetRegisterInfoAtIndex (size_t reg) override |
size_t | GetRegisterSetCount () override |
const lldb_private::RegisterSet * | GetRegisterSet (size_t set) override |
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 |
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 | 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 ®_checkpoint) |
virtual bool | WriteAllRegisterValues (const lldb_private::RegisterCheckpoint ®_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 ®_value) |
virtual Status | WriteRegisterValueToMemory (const lldb_private::RegisterInfo *reg_info, lldb::addr_t dst_addr, uint32_t dst_len, const RegisterValue ®_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 |
Private Attributes | |
std::vector< lldb_private::RegisterSet > | m_register_sets |
std::vector< lldb_private::RegisterInfo > | m_register_infos |
std::map< size_t, std::vector< uint32_t > > | m_regset_regnum_collection |
For each register set, an array of register numbers included. | |
std::vector< uint8_t > | m_register_data |
Bytes of the register contents. |
Additional Inherited Members | |
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 inherited from lldb_private::RegisterContext | |
Thread & | m_thread |
uint32_t | m_concrete_frame_idx |
uint32_t | m_stop_id |
Definition at line 23 of file RegisterContextUnifiedCore.h.
RegisterContextUnifiedCore::RegisterContextUnifiedCore | ( | Thread & | thread, |
uint32_t | concrete_frame_idx, | ||
lldb::RegisterContextSP | core_thread_regctx_sp, | ||
lldb_private::StructuredData::ObjectSP | metadata_thread_registers ) |
Definition at line 19 of file RegisterContextUnifiedCore.cpp.
References lldb_private::StructuredData::Dictionary::AddIntegerItem(), lldb_private::ConstString::AsCString(), lldb_private::RegisterInfo::byte_offset, lldb_private::RegisterInfo::byte_size, lldb_private::DynamicRegisterInfo::Create(), error(), lldb_private::StructuredData::Array::ForEach(), lldb_private::Target::GetArchitecture(), lldb_private::StructuredData::Object::GetAsDictionary(), lldb_private::Scalar::GetAsMemoryData(), lldb_private::RegisterValue::GetBytes(), lldb_private::RegisterValue::GetByteSize(), GetRegisterSetCount(), lldb_private::StructuredData::Dictionary::GetValueForKey(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsArray(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsInteger(), lldb_private::StructuredData::Dictionary::HasKey(), m_register_data, m_register_infos, m_register_sets, m_regset_regnum_collection, lldb_private::RegisterSet::name, lldb_private::RegisterSet::num_registers, lldb_private::RegisterContext::RegisterContext(), lldb_private::RegisterSet::registers, lldb_private::RegisterSet::short_name, and lldb_private::RegisterInfo::value_regs.
|
overridevirtual |
Implements lldb_private::RegisterContext.
Definition at line 259 of file RegisterContextUnifiedCore.cpp.
References m_register_infos.
|
overridevirtual |
Implements lldb_private::RegisterContext.
Definition at line 264 of file RegisterContextUnifiedCore.cpp.
References m_register_infos.
|
overridevirtual |
Implements lldb_private::RegisterContext.
Definition at line 274 of file RegisterContextUnifiedCore.cpp.
References m_register_sets.
|
overridevirtual |
Implements lldb_private::RegisterContext.
Definition at line 270 of file RegisterContextUnifiedCore.cpp.
References m_register_sets.
Referenced by RegisterContextUnifiedCore().
|
inlineoverridevirtual |
Implements lldb_private::RegisterContext.
Definition at line 30 of file RegisterContextUnifiedCore.h.
|
overridevirtual |
Implements lldb_private::RegisterContext.
Definition at line 280 of file RegisterContextUnifiedCore.cpp.
References lldb_private::RegisterInfo::byte_offset, lldb_private::RegisterInfo::byte_size, lldb_private::DataExtractor::GetU16(), lldb_private::DataExtractor::GetU32(), lldb_private::DataExtractor::GetU64(), m_register_data, lldb_private::RegisterContext::m_thread, lldb_private::RegisterValue::SetUInt16(), lldb_private::RegisterValue::SetUInt32(), and lldb_private::RegisterValue::SetUInt64().
|
overridevirtual |
Implements lldb_private::RegisterContext.
Definition at line 308 of file RegisterContextUnifiedCore.cpp.
|
private |
Bytes of the register contents.
Definition at line 52 of file RegisterContextUnifiedCore.h.
Referenced by ReadRegister(), and RegisterContextUnifiedCore().
|
private |
Definition at line 48 of file RegisterContextUnifiedCore.h.
Referenced by GetRegisterCount(), GetRegisterInfoAtIndex(), and RegisterContextUnifiedCore().
|
private |
Definition at line 47 of file RegisterContextUnifiedCore.h.
Referenced by GetRegisterSet(), GetRegisterSetCount(), and RegisterContextUnifiedCore().
|
private |
For each register set, an array of register numbers included.
Definition at line 50 of file RegisterContextUnifiedCore.h.
Referenced by RegisterContextUnifiedCore().