Index: lldb/source/Plugins/Process/Windows/Common/RegisterContextWindows.cpp =================================================================== --- lldb/source/Plugins/Process/Windows/Common/RegisterContextWindows.cpp +++ lldb/source/Plugins/Process/Windows/Common/RegisterContextWindows.cpp @@ -95,6 +95,7 @@ if (!CacheAllRegisterValues()) return false; +#if defined(__i386__) || defined(_M_IX86) || defined(__x86_64__) || defined(_M_AMD64) unsigned shift = 2 * slot; m_context.Dr7 |= 1ULL << shift; @@ -109,6 +110,10 @@ m_context.Dr7 |= (read ? 3ULL : (write ? 1ULL : 0)) << shift; return ApplyAllRegisterValues(); + +#else + return false; +#endif } bool RegisterContextWindows::RemoveHardwareBreakpoint(uint32_t slot) { @@ -118,19 +123,25 @@ if (!CacheAllRegisterValues()) return false; +#if defined(__i386__) || defined(_M_IX86) || defined(__x86_64__) || defined(_M_AMD64) unsigned shift = 2 * slot; m_context.Dr7 &= ~(1ULL << shift); return ApplyAllRegisterValues(); +#else + return false; +#endif } uint32_t RegisterContextWindows::GetTriggeredHardwareBreakpointSlotId() { if (!CacheAllRegisterValues()) return LLDB_INVALID_INDEX32; +#if defined(__i386__) || defined(_M_IX86) || defined(__x86_64__) || defined(_M_AMD64) for (unsigned i = 0UL; i < NUM_HARDWARE_BREAKPOINT_SLOTS; i++) if (m_context.Dr6 & (1ULL << i)) return i; +#endif return LLDB_INVALID_INDEX32; }