LLDB mainline
|
#include <NativeRegisterContextDBReg.h>
Classes | |
struct | DREG |
Debug register info for hardware breakpoints and watchpoints management. More... | |
struct | WatchpointDetails |
Public Types | |
enum | DREGType { eDREGTypeWATCH = 0 , eDREGTypeBREAK } |
Protected Types | |
using | BreakpointDetails = WatchpointDetails |
Protected Member Functions | |
bool | WatchpointIsEnabled (uint32_t wp_index) |
bool | BreakpointIsEnabled (uint32_t bp_index) |
virtual bool | ValidateBreakpoint (size_t size, lldb::addr_t addr) |
virtual std::optional< WatchpointDetails > | AdjustWatchpoint (const WatchpointDetails &details)=0 |
virtual BreakpointDetails | AdjustBreakpoint (const BreakpointDetails &details) |
virtual uint32_t | MakeBreakControlValue (size_t size)=0 |
virtual uint32_t | MakeWatchControlValue (size_t size, uint32_t watch_flags)=0 |
virtual uint32_t | GetWatchpointSize (uint32_t wp_index)=0 |
virtual llvm::Error | ReadHardwareDebugInfo ()=0 |
virtual llvm::Error | WriteHardwareDebugRegs (DREGType hwbType)=0 |
virtual lldb::addr_t | FixWatchpointHitAddress (lldb::addr_t hit_addr) |
Protected Attributes | |
std::array< struct DREG, 16 > | m_hbp_regs |
std::array< struct DREG, 16 > | m_hwp_regs |
uint32_t | m_max_hbp_supported |
uint32_t | m_max_hwp_supported |
const uint32_t | m_hw_dbg_enable_bit |
Protected Attributes inherited from lldb_private::NativeRegisterContextRegisterInfo | |
std::unique_ptr< RegisterInfoInterface > | m_register_info_interface_up |
Protected Attributes inherited from lldb_private::NativeRegisterContext | |
NativeThreadProtocol & | m_thread |
Definition at line 22 of file NativeRegisterContextDBReg.h.
|
protected |
Definition at line 91 of file NativeRegisterContextDBReg.h.
Enumerator | |
---|---|
eDREGTypeWATCH | |
eDREGTypeBREAK |
Definition at line 56 of file NativeRegisterContextDBReg.h.
|
inlineexplicit |
Definition at line 25 of file NativeRegisterContextDBReg.h.
References m_hw_dbg_enable_bit.
Referenced by lldb_private::NativeRegisterContextDBReg_arm::NativeRegisterContextDBReg_arm(), lldb_private::NativeRegisterContextDBReg_arm64::NativeRegisterContextDBReg_arm64(), and lldb_private::NativeRegisterContextDBReg_loongarch::NativeRegisterContextDBReg_loongarch().
|
inlineprotectedvirtual |
Reimplemented in lldb_private::NativeRegisterContextDBReg_arm.
Definition at line 92 of file NativeRegisterContextDBReg.h.
Referenced by SetHardwareBreakpoint().
|
protectedpure virtual |
|
protected |
Definition at line 184 of file NativeRegisterContextDBReg.cpp.
References m_hbp_regs, and m_hw_dbg_enable_bit.
Referenced by ClearAllHardwareBreakpoints(), GetHardwareBreakHitIndex(), and SetHardwareBreakpoint().
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 149 of file NativeRegisterContextDBReg.cpp.
References BreakpointIsEnabled(), lldb_private::Breakpoints, eDREGTypeBREAK, error(), lldb_private::Status::FromError(), lldb_private::GetLog(), LLDB_LOGF, m_hbp_regs, m_hw_dbg_enable_bit, m_max_hbp_supported, ReadHardwareDebugInfo(), lldb_private::Status, and WriteHardwareDebugRegs().
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 317 of file NativeRegisterContextDBReg.cpp.
References eDREGTypeWATCH, error(), lldb_private::Status::FromError(), m_hwp_regs, m_max_hwp_supported, ReadHardwareDebugInfo(), lldb_private::Status, WatchpointIsEnabled(), and WriteHardwareDebugRegs().
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 88 of file NativeRegisterContextDBReg.cpp.
References lldb_private::Breakpoints, eDREGTypeBREAK, error(), lldb_private::GetLog(), LLDB_LOG, LLDB_LOG_ERROR, m_hbp_regs, m_hw_dbg_enable_bit, m_max_hbp_supported, ReadHardwareDebugInfo(), and WriteHardwareDebugRegs().
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 277 of file NativeRegisterContextDBReg.cpp.
References eDREGTypeWATCH, error(), lldb_private::GetLog(), LLDB_LOG, LLDB_LOG_ERROR, m_hw_dbg_enable_bit, m_hwp_regs, m_max_hwp_supported, ReadHardwareDebugInfo(), lldb_private::Watchpoints, and WriteHardwareDebugRegs().
|
inlineprotectedvirtual |
Definition at line 101 of file NativeRegisterContextDBReg.h.
Referenced by GetWatchpointHitIndex().
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 128 of file NativeRegisterContextDBReg.cpp.
References BreakpointIsEnabled(), lldb_private::Breakpoints, lldb_private::GetLog(), LLDB_INVALID_INDEX32, LLDB_LOGF, m_hbp_regs, m_max_hbp_supported, and lldb_private::Status.
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 387 of file NativeRegisterContextDBReg.cpp.
References lldb_private::GetLog(), LLDB_INVALID_ADDRESS, LLDB_LOG, m_hwp_regs, m_max_hwp_supported, WatchpointIsEnabled(), and lldb_private::Watchpoints.
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 400 of file NativeRegisterContextDBReg.cpp.
References lldb_private::GetLog(), LLDB_INVALID_ADDRESS, LLDB_LOG, m_hwp_regs, m_max_hwp_supported, WatchpointIsEnabled(), and lldb_private::Watchpoints.
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 349 of file NativeRegisterContextDBReg.cpp.
References error(), FixWatchpointHitAddress(), lldb_private::Status::FromError(), lldb_private::GetLog(), GetWatchpointSize(), LLDB_INVALID_INDEX32, LLDB_LOG, m_hwp_regs, m_max_hwp_supported, ReadHardwareDebugInfo(), lldb_private::Status, WatchpointIsEnabled(), and lldb_private::Watchpoints.
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 17 of file NativeRegisterContextDBReg.cpp.
References lldb_private::Breakpoints, error(), lldb_private::GetLog(), LLDB_LOG, LLDB_LOG_ERROR, m_max_hbp_supported, and ReadHardwareDebugInfo().
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 188 of file NativeRegisterContextDBReg.cpp.
References error(), lldb_private::GetLog(), LLDB_LOG_ERROR, m_max_hwp_supported, ReadHardwareDebugInfo(), and lldb_private::Watchpoints.
|
protectedpure virtual |
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 33 of file NativeRegisterContextDBReg.cpp.
References AdjustBreakpoint(), BreakpointIsEnabled(), lldb_private::Breakpoints, eDREGTypeBREAK, error(), lldb_private::GetLog(), LLDB_INVALID_INDEX32, LLDB_LOG, LLDB_LOG_ERROR, m_hbp_regs, m_hw_dbg_enable_bit, m_max_hbp_supported, MakeBreakControlValue(), ReadHardwareDebugInfo(), ValidateBreakpoint(), and WriteHardwareDebugRegs().
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 200 of file NativeRegisterContextDBReg.cpp.
References AdjustWatchpoint(), eDREGTypeWATCH, error(), lldb_private::GetLog(), LLDB_INVALID_INDEX32, LLDB_LOG, LLDB_LOG_ERROR, m_hw_dbg_enable_bit, m_hwp_regs, m_max_hwp_supported, MakeWatchControlValue(), ReadHardwareDebugInfo(), WatchpointIsEnabled(), lldb_private::Watchpoints, and WriteHardwareDebugRegs().
|
inlineprotectedvirtual |
Reimplemented in lldb_private::NativeRegisterContextDBReg_arm.
Definition at line 80 of file NativeRegisterContextDBReg.h.
Referenced by SetHardwareBreakpoint().
|
protected |
Definition at line 380 of file NativeRegisterContextDBReg.cpp.
References lldb_private::GetLog(), LLDB_LOG, m_hw_dbg_enable_bit, m_hwp_regs, and lldb_private::Watchpoints.
Referenced by ClearAllHardwareWatchpoints(), GetWatchpointAddress(), GetWatchpointHitAddress(), GetWatchpointHitIndex(), and SetHardwareWatchpoint().
|
protectedpure virtual |
|
protected |
Definition at line 68 of file NativeRegisterContextDBReg.h.
Referenced by BreakpointIsEnabled(), ClearAllHardwareBreakpoints(), ClearHardwareBreakpoint(), GetHardwareBreakHitIndex(), and SetHardwareBreakpoint().
|
protected |
Definition at line 73 of file NativeRegisterContextDBReg.h.
Referenced by BreakpointIsEnabled(), ClearAllHardwareBreakpoints(), ClearHardwareBreakpoint(), ClearHardwareWatchpoint(), lldb_private::NativeRegisterContextDBReg_arm64::MakeBreakControlValue(), lldb_private::NativeRegisterContextDBReg_loongarch::MakeBreakControlValue(), lldb_private::NativeRegisterContextDBReg_arm64::MakeWatchControlValue(), lldb_private::NativeRegisterContextDBReg_loongarch::MakeWatchControlValue(), NativeRegisterContextDBReg(), SetHardwareBreakpoint(), SetHardwareWatchpoint(), and WatchpointIsEnabled().
|
protected |
Definition at line 69 of file NativeRegisterContextDBReg.h.
Referenced by ClearAllHardwareWatchpoints(), ClearHardwareWatchpoint(), GetWatchpointAddress(), GetWatchpointHitAddress(), GetWatchpointHitIndex(), lldb_private::NativeRegisterContextDBReg_arm64::GetWatchpointSize(), lldb_private::NativeRegisterContextDBReg_arm::GetWatchpointSize(), lldb_private::NativeRegisterContextDBReg_loongarch::GetWatchpointSize(), SetHardwareWatchpoint(), and WatchpointIsEnabled().
|
protected |
Definition at line 71 of file NativeRegisterContextDBReg.h.
Referenced by ClearAllHardwareBreakpoints(), ClearHardwareBreakpoint(), GetHardwareBreakHitIndex(), NumSupportedHardwareBreakpoints(), and SetHardwareBreakpoint().
|
protected |
Definition at line 72 of file NativeRegisterContextDBReg.h.
Referenced by ClearAllHardwareWatchpoints(), ClearHardwareWatchpoint(), GetWatchpointAddress(), GetWatchpointHitAddress(), GetWatchpointHitIndex(), NumSupportedHardwareWatchpoints(), and SetHardwareWatchpoint().