9#ifndef LLDB_SOURCE_PLUGINS_PROCESS_GDB_REMOTE_GDBREMOTEREGISTERCONTEXT_H
10#define LLDB_SOURCE_PLUGINS_PROCESS_GDB_REMOTE_GDBREMOTEREGISTERCONTEXT_H
32typedef std::shared_ptr<GDBRemoteDynamicRegisterInfo>
49 bool read_all_at_once,
bool write_all_at_once);
79 uint32_t num)
override;
91 uint32_t data_offset);
DynamicRegisterInfo(DynamicRegisterInfo &)=default
RegisterContext(Thread &thread, uint32_t concrete_frame_idx)
GDBRemoteDynamicRegisterInfo()
~GDBRemoteDynamicRegisterInfo() override=default
void UpdateARM64SMERegistersInfos(uint64_t svg)
void UpdateARM64SVERegistersInfos(uint64_t vg)
friend class ThreadGDBRemote
LazyBool GetRegisterValidState(uint32_t reg) const
bool GetRegisterIsUnavailable(uint32_t reg) const
const RegisterInfo * GetRegisterInfoAtIndex(size_t reg) override
const RegisterSet * GetRegisterSet(size_t reg_set) override
bool GetRegisterIsUnfetched(uint32_t reg) const
void SetRegisterIsUnavailable(uint32_t reg)
bool ReadRegisterBytes(const RegisterInfo *reg_info)
~GDBRemoteRegisterContext() override
void SetRegisterIsValid(const RegisterInfo *reg_info)
bool GetRegisterIsValid(uint32_t reg) const
void SetRegisterIsValid(uint32_t reg)
const GDBRemoteRegisterContext & operator=(const GDBRemoteRegisterContext &)=delete
bool RegisterWriteCausesReconfigure(const llvm::StringRef name) override
GDBRemoteRegisterContext(ThreadGDBRemote &thread, uint32_t concrete_frame_idx, GDBRemoteDynamicRegisterInfoSP reg_info_sp, bool read_all_at_once, bool write_all_at_once)
GDBRemoteDynamicRegisterInfoSP m_reg_info_sp
GDBRemoteRegisterContext(const GDBRemoteRegisterContext &)=delete
bool WriteRegisterBytes(const RegisterInfo *reg_info, DataExtractor &data, uint32_t data_offset)
void SetAllRegistersUnfetched()
void SetRegisterIsUnavailable(const RegisterInfo *reg_info)
bool PrivateSetRegisterValue(uint32_t reg, llvm::ArrayRef< uint8_t > data)
bool ReadRegister(const RegisterInfo *reg_info, RegisterValue &value) override
size_t GetRegisterCount() override
bool WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override
void SetAllRegistersValid()
void SetAllRegistersValidState(LazyBool valid)
bool WriteRegister(const RegisterInfo *reg_info, const RegisterValue &value) override
bool ReadAllRegisterValues(lldb::WritableDataBufferSP &data_sp) override
size_t GetRegisterSetCount() override
void SetRegisterIsValidState(const RegisterInfo *reg_info, LazyBool valid)
void SetRegisterIsUnfetched(uint32_t reg)
bool SetPrimordialRegister(const RegisterInfo *reg_info, GDBRemoteCommunicationClient &gdb_comm)
void SetRegisterIsUnfetched(const RegisterInfo *reg_info)
uint32_t ConvertRegisterKindToRegisterNumber(lldb::RegisterKind kind, uint32_t num) override
Convert from a given register numbering scheme to the lldb register numbering scheme.
bool ReconfigureRegisterInfo() override
void InvalidateAllRegisters() override
bool GetPrimordialRegister(const RegisterInfo *reg_info, GDBRemoteCommunicationClient &gdb_comm)
std::vector< LazyBool > m_reg_valid
eLazyBoolYes - we have the bytes for this register locally.
std::shared_ptr< GDBRemoteDynamicRegisterInfo > GDBRemoteDynamicRegisterInfoSP
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::DataBuffer > DataBufferSP
std::shared_ptr< lldb_private::WritableDataBuffer > WritableDataBufferSP
RegisterKind
Register numbering types.
Every register is described in detail including its name, alternate name (optional),...
Registers are grouped into register sets.