47 [[nodiscard]]
Debuggable& getDebuggable(std::string_view name);
48 [[nodiscard]]
ProbeBase& getProbe(std::string_view name);
50 unsigned insertProbeBreakPoint(
52 ProbeBase& probe,
bool once,
unsigned newId = -1);
57 unsigned beginAddr,
unsigned endAddr,
58 bool once,
unsigned newId = -1);
67 [[nodiscard]]
bool needRecord(std::span<const TclObject> tokens)
const override;
68 void execute(std::span<const TclObject> tokens,
69 TclObject& result, EmuTime::param time)
override;
70 [[nodiscard]] std::string help(std::span<const TclObject> tokens)
const override;
71 void tabCompletion(std::vector<std::string>& tokens)
const override;
76 void list(TclObject& result);
77 void desc(std::span<const TclObject> tokens, TclObject& result);
78 void size(std::span<const TclObject> tokens, TclObject& result);
79 void read(std::span<const TclObject> tokens, TclObject& result);
80 void readBlock(std::span<const TclObject> tokens, TclObject& result);
81 void write(std::span<const TclObject> tokens, TclObject& result);
82 void writeBlock(std::span<const TclObject> tokens, TclObject& result);
83 void setBreakPoint(std::span<const TclObject> tokens, TclObject& result);
84 void removeBreakPoint(std::span<const TclObject> tokens, TclObject& result);
85 void listBreakPoints(std::span<const TclObject> tokens, TclObject& result);
86 [[nodiscard]] std::vector<std::string> getBreakPointIds()
const;
87 [[nodiscard]] std::vector<std::string> getWatchPointIds()
const;
88 [[nodiscard]] std::vector<std::string> getConditionIds()
const;
89 void setWatchPoint(std::span<const TclObject> tokens, TclObject& result);
90 void removeWatchPoint(std::span<const TclObject> tokens, TclObject& result);
91 void listWatchPoints(std::span<const TclObject> tokens, TclObject& result);
92 void setCondition(std::span<const TclObject> tokens, TclObject& result);
93 void removeCondition(std::span<const TclObject> tokens, TclObject& result);
94 void listConditions(std::span<const TclObject> tokens, TclObject& result);
95 void probe(std::span<const TclObject> tokens, TclObject& result);
96 void probeList(std::span<const TclObject> tokens, TclObject& result);
97 void probeDesc(std::span<const TclObject> tokens, TclObject& result);
98 void probeRead(std::span<const TclObject> tokens, TclObject& result);
99 void probeSetBreakPoint(std::span<const TclObject> tokens, TclObject& result);
100 void probeRemoveBreakPoint(std::span<const TclObject> tokens, TclObject& result);
101 void probeListBreakPoints(std::span<const TclObject> tokens, TclObject& result);
104 struct NameFromProbe {
105 [[nodiscard]]
const std::string& operator()(
const ProbeBase* p)
const {
112 std::vector<std::unique_ptr<ProbeBreakPoint>> probeBreakPoints;
void registerProbe(ProbeBase &probe)
void setCPU(MSXCPU *cpu_)
Debuggable * findDebuggable(std::string_view name)
Debugger(const Debugger &)=delete
void transfer(Debugger &other)
void unregisterProbe(ProbeBase &probe)
void unregisterDebuggable(std::string_view name, Debuggable &debuggable)
ProbeBase * findProbe(std::string_view name)
MSXMotherBoard & getMotherBoard()
void removeProbeBreakPoint(ProbeBreakPoint &bp)
void registerDebuggable(std::string name, Debuggable &debuggable)
Debugger & operator=(const Debugger &)=delete
Commands that directly influence the MSX state should send and events so that they can be recorded by...
This file implemented 3 utility functions:
size_t size(std::string_view utf8)
#define OUTER(type, member)