43 lines · c
1//===-- NativeRegisterContextDBReg_arm.h ------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef lldb_NativeRegisterContextDBReg_arm_h10#define lldb_NativeRegisterContextDBReg_arm_h11 12#include "Plugins/Process/Utility/NativeRegisterContextDBReg.h"13 14namespace lldb_private {15 16class NativeRegisterContextDBReg_arm : public NativeRegisterContextDBReg {17public:18 NativeRegisterContextDBReg_arm()19 : NativeRegisterContextDBReg(/*enable_bit=*/0x1U) {}20 21private:22 uint32_t GetWatchpointSize(uint32_t wp_index) override;23 24 std::optional<WatchpointDetails>25 AdjustWatchpoint(const WatchpointDetails &details) override;26 27 BreakpointDetails AdjustBreakpoint(const BreakpointDetails &details) override;28 29 uint32_t MakeBreakControlValue(size_t size) override;30 31 uint32_t MakeWatchControlValue(size_t size, uint32_t watch_flags) override;32 33 bool ValidateBreakpoint(size_t size,34 [[maybe_unused]] lldb::addr_t addr) override {35 // Break on 4 or 2 byte instructions.36 return size == 4 || size == 2;37 }38};39 40} // namespace lldb_private41 42#endif // #ifndef lldb_NativeRegisterContextDBReg_arm_h43