LLDB mainline
|
#include <NativeRegisterContextDBReg.h>
Classes | |
struct | DREG |
Debug register info for hardware breakpoints and watchpoints management. More... | |
struct | WatchpointDetails |
Protected Types | |
enum | DREGType { eDREGTypeWATCH = 0 , eDREGTypeBREAK } |
Protected Member Functions | |
bool | WatchpointIsEnabled (uint32_t wp_index) |
bool | BreakpointIsEnabled (uint32_t bp_index) |
bool | ValidateBreakpoint (size_t size, lldb::addr_t addr) |
virtual std::optional< WatchpointDetails > | AdjustWatchpoint (const WatchpointDetails &details)=0 |
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 21 of file NativeRegisterContextDBReg.h.
|
protected |
Enumerator | |
---|---|
eDREGTypeWATCH | |
eDREGTypeBREAK |
Definition at line 56 of file NativeRegisterContextDBReg.h.
|
inlineexplicit |
Definition at line 24 of file NativeRegisterContextDBReg.h.
|
protectedpure virtual |
Implemented in lldb_private::NativeRegisterContextDBReg_arm64, and lldb_private::NativeRegisterContextDBReg_loongarch.
Referenced by SetHardwareWatchpoint().
|
protected |
Definition at line 183 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 148 of file NativeRegisterContextDBReg.cpp.
References BreakpointIsEnabled(), lldb_private::Breakpoints, eDREGTypeBREAK, error(), lldb_private::Status::FromError(), lldb_private::GetLog(), LLDB_LOGF, m_hbp_regs, m_max_hbp_supported, ReadHardwareDebugInfo(), and WriteHardwareDebugRegs().
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 316 of file NativeRegisterContextDBReg.cpp.
References eDREGTypeWATCH, error(), lldb_private::Status::FromError(), m_hwp_regs, m_max_hwp_supported, ReadHardwareDebugInfo(), WatchpointIsEnabled(), and WriteHardwareDebugRegs().
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 87 of file NativeRegisterContextDBReg.cpp.
References lldb_private::Breakpoints, eDREGTypeBREAK, error(), lldb_private::GetLog(), LLDB_LOG, LLDB_LOG_ERROR, m_hbp_regs, m_max_hbp_supported, ReadHardwareDebugInfo(), and WriteHardwareDebugRegs().
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 276 of file NativeRegisterContextDBReg.cpp.
References eDREGTypeWATCH, error(), lldb_private::GetLog(), LLDB_INVALID_INDEX32, LLDB_LOG, LLDB_LOG_ERROR, m_hwp_regs, m_max_hwp_supported, ReadHardwareDebugInfo(), lldb_private::Watchpoints, and WriteHardwareDebugRegs().
|
inlineprotectedvirtual |
Definition at line 94 of file NativeRegisterContextDBReg.h.
Referenced by GetWatchpointHitIndex().
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 127 of file NativeRegisterContextDBReg.cpp.
References BreakpointIsEnabled(), lldb_private::Breakpoints, lldb_private::GetLog(), LLDB_INVALID_INDEX32, LLDB_LOGF, m_hbp_regs, and m_max_hbp_supported.
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 386 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 399 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 348 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(), WatchpointIsEnabled(), and lldb_private::Watchpoints.
|
protectedpure virtual |
Implemented in lldb_private::NativeRegisterContextDBReg_arm64, and lldb_private::NativeRegisterContextDBReg_loongarch.
Referenced by GetWatchpointHitIndex().
|
protectedpure virtual |
Implemented in lldb_private::NativeRegisterContextDBReg_arm64, and lldb_private::NativeRegisterContextDBReg_loongarch.
Referenced by SetHardwareBreakpoint().
|
protectedpure virtual |
Implemented in lldb_private::NativeRegisterContextDBReg_arm64, and lldb_private::NativeRegisterContextDBReg_loongarch.
Referenced by SetHardwareWatchpoint().
|
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 187 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 BreakpointIsEnabled(), lldb_private::Breakpoints, eDREGTypeBREAK, error(), lldb_private::GetLog(), LLDB_INVALID_INDEX32, LLDB_LOG, LLDB_LOG_ERROR, m_hbp_regs, m_max_hbp_supported, MakeBreakControlValue(), ReadHardwareDebugInfo(), ValidateBreakpoint(), and WriteHardwareDebugRegs().
|
overridevirtual |
Reimplemented from lldb_private::NativeRegisterContext.
Definition at line 199 of file NativeRegisterContextDBReg.cpp.
References AdjustWatchpoint(), eDREGTypeWATCH, error(), lldb_private::GetLog(), LLDB_INVALID_INDEX32, LLDB_LOG, LLDB_LOG_ERROR, m_hwp_regs, m_max_hwp_supported, MakeWatchControlValue(), ReadHardwareDebugInfo(), WatchpointIsEnabled(), lldb_private::Watchpoints, and WriteHardwareDebugRegs().
|
inlineprotected |
Definition at line 79 of file NativeRegisterContextDBReg.h.
Referenced by SetHardwareBreakpoint().
|
protected |
Definition at line 379 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 67 of file NativeRegisterContextDBReg.h.
Referenced by BreakpointIsEnabled(), ClearAllHardwareBreakpoints(), ClearHardwareBreakpoint(), GetHardwareBreakHitIndex(), and SetHardwareBreakpoint().
|
protected |
Definition at line 72 of file NativeRegisterContextDBReg.h.
Referenced by BreakpointIsEnabled(), lldb_private::NativeRegisterContextDBReg_arm64::MakeBreakControlValue(), lldb_private::NativeRegisterContextDBReg_loongarch::MakeBreakControlValue(), lldb_private::NativeRegisterContextDBReg_arm64::MakeWatchControlValue(), lldb_private::NativeRegisterContextDBReg_loongarch::MakeWatchControlValue(), and WatchpointIsEnabled().
|
protected |
Definition at line 68 of file NativeRegisterContextDBReg.h.
Referenced by ClearAllHardwareWatchpoints(), ClearHardwareWatchpoint(), GetWatchpointAddress(), GetWatchpointHitAddress(), GetWatchpointHitIndex(), lldb_private::NativeRegisterContextDBReg_arm64::GetWatchpointSize(), lldb_private::NativeRegisterContextDBReg_loongarch::GetWatchpointSize(), SetHardwareWatchpoint(), and WatchpointIsEnabled().
|
protected |
Definition at line 70 of file NativeRegisterContextDBReg.h.
Referenced by ClearAllHardwareBreakpoints(), ClearHardwareBreakpoint(), GetHardwareBreakHitIndex(), NumSupportedHardwareBreakpoints(), and SetHardwareBreakpoint().
|
protected |
Definition at line 71 of file NativeRegisterContextDBReg.h.
Referenced by ClearAllHardwareWatchpoints(), ClearHardwareWatchpoint(), GetWatchpointAddress(), GetWatchpointHitAddress(), GetWatchpointHitIndex(), NumSupportedHardwareWatchpoints(), and SetHardwareWatchpoint().