9#if defined(__arm__) || defined(__arm64__) || defined(__aarch64__)
11#ifndef lldb_NativeRegisterContextLinux_arm_h
12#define lldb_NativeRegisterContextLinux_arm_h
25 public NativeRegisterContextDBReg_arm {
27 NativeRegisterContextLinux_arm(
const ArchSpec &target_arch,
28 NativeThreadProtocol &native_thread);
30 uint32_t GetRegisterSetCount()
const override;
32 const RegisterSet *GetRegisterSet(uint32_t set_index)
const override;
34 uint32_t GetUserRegisterCount()
const override;
36 Status ReadRegister(
const RegisterInfo *reg_info,
37 RegisterValue ®_value)
override;
39 Status WriteRegister(
const RegisterInfo *reg_info,
40 const RegisterValue ®_value)
override;
47 Status DoReadRegisterValue(uint32_t offset,
const char *reg_name,
48 uint32_t size, RegisterValue &value)
override;
50 Status DoWriteRegisterValue(uint32_t offset,
const char *reg_name,
51 const RegisterValue &value)
override;
55 Status WriteGPR()
override;
59 Status WriteFPR()
override;
61 void *GetGPRBuffer()
override {
return &m_gpr_arm; }
63 void *GetFPRBuffer()
override {
return &m_fpr; }
65 size_t GetFPRSize()
override {
return sizeof(m_fpr); }
69 RegisterInfoPOSIX_arm::FPU m_fpr;
71 bool m_refresh_hwdebug_info;
73 bool IsGPR(
unsigned reg)
const;
75 bool IsFPR(
unsigned reg)
const;
81 llvm::Error WriteHardwareDebugReg(DREGType hwbType,
int hwb_index);
84 uint32_t CalculateFprOffset(
const RegisterInfo *reg_info)
const;
86 RegisterInfoPOSIX_arm &GetRegisterInfo()
const;
Manages communication with the inferior (debugee) process.
Status WriteHardwareDebugRegs(int hwbType, ::pid_t tid, uint32_t max_supported, const std::array< NativeRegisterContextDBReg::DREG, 16 > ®s)
Status ReadHardwareDebugInfo(::pid_t tid, uint32_t &max_hwp_supported, uint32_t &max_hbp_supported)
A class that represents a running process on the host machine.
@ k_num_gpr_registers_arm
std::shared_ptr< lldb_private::DataBuffer > DataBufferSP
std::shared_ptr< lldb_private::WritableDataBuffer > WritableDataBufferSP