LLDB  mainline
RegisterContextPOSIXProcessMonitor_mips64.h
Go to the documentation of this file.
1 //===-- RegisterContextPOSIXProcessMonitor_mips64.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 liblldb_RegisterContextPOSIXProcessMonitor_mips64_H_
10 #define liblldb_RegisterContextPOSIXProcessMonitor_mips64_H_
11 
14 #include "RegisterContextPOSIX.h"
15 
16 class ProcessMonitor;
17 
21 public:
23  lldb_private::Thread &thread, uint32_t concrete_frame_idx,
25 
26 protected:
27  bool ReadGPR() override;
28 
29  bool ReadFPR() override;
30 
31  bool WriteGPR() override;
32 
33  bool WriteFPR() override;
34 
35  // lldb_private::RegisterContext
36  bool ReadRegister(const unsigned reg, lldb_private::RegisterValue &value);
37 
38  bool WriteRegister(const unsigned reg,
39  const lldb_private::RegisterValue &value);
40 
41  bool ReadRegister(const lldb_private::RegisterInfo *reg_info,
42  lldb_private::RegisterValue &value) override;
43 
44  bool WriteRegister(const lldb_private::RegisterInfo *reg_info,
45  const lldb_private::RegisterValue &value) override;
46 
47  bool ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override;
48 
49  bool WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;
50 
51  uint32_t SetHardwareWatchpoint(lldb::addr_t addr, size_t size, bool read,
52  bool write) override;
53 
54  bool ClearHardwareWatchpoint(uint32_t hw_index) override;
55 
56  bool HardwareSingleStep(bool enable) override;
57 
58  // POSIXBreakpointProtocol
59  bool UpdateAfterBreakpoint() override;
60 
61  unsigned GetRegisterIndexFromOffset(unsigned offset) override;
62 
63  bool IsWatchpointHit(uint32_t hw_index) override;
64 
65  bool ClearWatchpointHits() override;
66 
67  lldb::addr_t GetWatchpointAddress(uint32_t hw_index) override;
68 
69  bool IsWatchpointVacant(uint32_t hw_index) override;
70 
71  bool SetHardwareWatchpointWithIndex(lldb::addr_t addr, size_t size, bool read,
72  bool write, uint32_t hw_index) override;
73 
75 
76 private:
77  uint64_t
80 };
81 
82 #endif
Extends RegisterClass with a few virtual operations useful on POSIX.
Manages communication with the inferior (debugee) process.
uint64_t m_gpr_mips64[lldb_private::k_num_gpr_registers_mips64]
bool ReadRegister(const lldb_private::RegisterInfo *reg_info, lldb_private::RegisterValue &value) override
unsigned GetRegisterIndexFromOffset(unsigned offset) override
Determines the index in lldb's register file given a kernel byte offset.
bool ReadRegister(const unsigned reg, lldb_private::RegisterValue &value)
bool WriteRegister(const unsigned reg, const lldb_private::RegisterValue &value)
bool ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override
bool SetHardwareWatchpointWithIndex(lldb::addr_t addr, size_t size, bool read, bool write, uint32_t hw_index) override
bool WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override
uint32_t SetHardwareWatchpoint(lldb::addr_t addr, size_t size, bool read, bool write) override
bool WriteRegister(const lldb_private::RegisterInfo *reg_info, const lldb_private::RegisterValue &value) override
RegisterContextPOSIXProcessMonitor_mips64(lldb_private::Thread &thread, uint32_t concrete_frame_idx, lldb_private::RegisterInfoInterface *register_info)
bool UpdateAfterBreakpoint() override
Updates the register state of the associated thread after hitting a breakpoint (if that make sense fo...
RegisterInfo interface to patch RegisterInfo structure for archs.
uint64_t addr_t
Definition: lldb-types.h:83