20 LLDB_LOG(log,
"wp_index: {0}", wp_index);
22 switch ((
m_hwp_regs[wp_index].control >> 5) & 0xff) {
36std::optional<NativeRegisterContextDBReg::WatchpointDetails>
39 size_t size = details.
size;
42 if (size != 1 && size != 2 && size != 4 && size != 8)
49 uint8_t watch_mask = (addr & 0x07) + size;
51 if (watch_mask > 0x08)
54 if (watch_mask <= 0x02)
56 else if (watch_mask <= 0x04)
61 addr = addr & (~0x07);
68 const uint32_t pac_bits = 2 << 1;
75 size_t encoded_size = ((1 << size) - 1) << 5;
83 uint32_t watch_flags) {
85 const uint32_t pac_bits = 2 << 1;
92 size_t encoded_size = ((1 << size) - 1) << 5;
#define LLDB_LOG(log,...)
The LLDB_LOG* macros defined below are the way to emit log messages.
uint32_t MakeBreakControlValue(size_t size) override
uint32_t GetWatchpointSize(uint32_t wp_index) override
uint32_t MakeWatchControlValue(size_t size, uint32_t watch_flags) override
std::optional< WatchpointDetails > AdjustWatchpoint(const WatchpointDetails &details) override
const uint32_t m_hw_dbg_enable_bit
std::array< struct DREG, 16 > m_hwp_regs
A class that represents a running process on the host machine.
Log * GetLog(Cat mask)
Retrieve the Log object for the channel associated with the given log enum.