Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_x86.h
96380 views
1
//===-- NativeRegisterContextDBReg_x86.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-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#ifndef lldb_NativeRegisterContextDBReg_x86_h
10
#define lldb_NativeRegisterContextDBReg_x86_h
11
12
#include "Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h"
13
14
namespace lldb_private {
15
16
class NativeRegisterContextDBReg_x86
17
: public virtual NativeRegisterContextRegisterInfo {
18
public:
19
// NB: This constructor is here only because gcc<=6.5 requires a virtual base
20
// class initializer on abstract class (even though it is never used). It can
21
// be deleted once we move to gcc>=7.0.
22
NativeRegisterContextDBReg_x86(NativeThreadProtocol &thread)
23
: NativeRegisterContextRegisterInfo(thread, nullptr) {}
24
25
Status IsWatchpointHit(uint32_t wp_index, bool &is_hit) override;
26
27
Status GetWatchpointHitIndex(uint32_t &wp_index,
28
lldb::addr_t trap_addr) override;
29
30
Status IsWatchpointVacant(uint32_t wp_index, bool &is_vacant) override;
31
32
bool ClearHardwareWatchpoint(uint32_t wp_index) override;
33
34
Status ClearWatchpointHit(uint32_t wp_index) override;
35
36
Status ClearAllHardwareWatchpoints() override;
37
38
Status SetHardwareWatchpointWithIndex(lldb::addr_t addr, size_t size,
39
uint32_t watch_flags,
40
uint32_t wp_index);
41
42
uint32_t SetHardwareWatchpoint(lldb::addr_t addr, size_t size,
43
uint32_t watch_flags) override;
44
45
lldb::addr_t GetWatchpointAddress(uint32_t wp_index) override;
46
47
uint32_t NumSupportedHardwareWatchpoints() override;
48
49
virtual const RegisterInfo *GetDR(int num) const;
50
};
51
52
} // namespace lldb_private
53
54
#endif // #ifndef lldb_NativeRegisterContextDBReg_x86_h
55
56