summaryrefslogtreecommitdiff
path: root/m68k_debugging.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'm68k_debugging.hpp')
-rw-r--r--m68k_debugging.hpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/m68k_debugging.hpp b/m68k_debugging.hpp
index d1acce8..1aa3bfc 100644
--- a/m68k_debugging.hpp
+++ b/m68k_debugging.hpp
@@ -3,6 +3,8 @@
#pragma once
+#include "gdbremote_parser.hpp"
+
#include <cstdint>
#include <cstddef>
@@ -41,6 +43,8 @@ struct M68KCPUState {
class M68KDebuggingControl {
public:
+ using BreakpointType = GDBRemote::BreakpointType;
+
M68KDebuggingControl() = default;
M68KDebuggingControl(M68KDebuggingControl&&) = delete;
M68KDebuggingControl(const M68KDebuggingControl&) = delete;
@@ -59,7 +63,13 @@ public:
void Write8(uint32_t address, uint8_t value);
void Write16(uint32_t address, uint16_t value);
void Write32(uint32_t address, uint32_t value);
+ void SetBreakpoint(BreakpointType type, uint32_t address, uint32_t length);
+ void RemoveBreakpoint(BreakpointType type, uint32_t address, uint32_t length);
+ void RaiseBreakpoint() { _have_break_risen = true; }
+ bool HasBreakpoint() const { return _have_break_risen; }
+ void ResetPendingBreakpoint() { _have_break_risen = false; }
private:
bool _is_running{};
+ bool _have_break_risen{};
};