55 [[nodiscard]]
Debuggable& getDebuggable(std::string_view name);
56 [[nodiscard]]
ProbeBase& getProbe(std::string_view name);
58 std::string insertProbeBreakPoint(
60 ProbeBase& probe,
bool once,
unsigned newId = -1);
70 [[nodiscard]]
bool needRecord(std::span<const TclObject> tokens)
const override;
71 void execute(std::span<const TclObject> tokens,
72 TclObject& result, EmuTime::param time)
override;
73 [[nodiscard]] std::string help(std::span<const TclObject> tokens)
const override;
74 void tabCompletion(std::vector<std::string>& tokens)
const override;
78 [[nodiscard]]
const Debugger& debugger()
const {
return OUTER(Debugger, cmd); }
79 [[nodiscard]] SymbolManager& getSymbolManager();
80 void list(TclObject& result);
81 void desc(std::span<const TclObject> tokens, TclObject& result);
82 void size(std::span<const TclObject> tokens, TclObject& result);
83 void read(std::span<const TclObject> tokens, TclObject& result);
84 void readBlock(std::span<const TclObject> tokens, TclObject& result);
85 void write(std::span<const TclObject> tokens, TclObject& result);
86 void writeBlock(std::span<const TclObject> tokens, TclObject& result);
87 void disasm(std::span<const TclObject> tokens, TclObject& result, EmuTime::param time)
const;
88 void disasmBlob(std::span<const TclObject> tokens, TclObject& result)
const;
89 void breakPoint(std::span<const TclObject> tokens, TclObject& result);
90 void watchPoint(std::span<const TclObject> tokens, TclObject& result);
91 void condition (std::span<const TclObject> tokens, TclObject& result);
92 [[nodiscard]] BreakPoint* lookupBreakPoint(std::string_view str);
93 [[nodiscard]] std::shared_ptr<WatchPoint> lookupWatchPoint(std::string_view str);
94 [[nodiscard]] DebugCondition* lookupCondition(std::string_view str);
95 void breakPointList(std::span<const TclObject> tokens, TclObject& result);
96 void watchPointList(std::span<const TclObject> tokens, TclObject& result);
97 void conditionList (std::span<const TclObject> tokens, TclObject& result);
98 void parseCreateBreakPoint(BreakPoint& bp, std::span<const TclObject> tokens);
99 void parseCreateWatchPoint(WatchPoint& bp, std::span<const TclObject> tokens);
100 void parseCreateCondition (DebugCondition& bp, std::span<const TclObject> tokens);
101 void breakPointCreate(std::span<const TclObject> tokens, TclObject& result);
102 void watchPointCreate(std::span<const TclObject> tokens, TclObject& result);
103 void conditionCreate (std::span<const TclObject> tokens, TclObject& result);
104 void breakPointConfigure(std::span<const TclObject> tokens, TclObject& result);
105 void watchPointConfigure(std::span<const TclObject> tokens, TclObject& result);
106 void conditionConfigure (std::span<const TclObject> tokens, TclObject& result);
107 void breakPointRemove(std::span<const TclObject> tokens, TclObject& result);
108 void watchPointRemove(std::span<const TclObject> tokens, TclObject& result);
109 void conditionRemove (std::span<const TclObject> tokens, TclObject& result);
110 void setBreakPoint(std::span<const TclObject> tokens, TclObject& result);
111 void removeBreakPoint(std::span<const TclObject> tokens, TclObject& result);
112 void listBreakPoints(std::span<const TclObject> tokens, TclObject& result)
const;
113 [[nodiscard]] std::vector<std::string> getBreakPointIds()
const;
114 [[nodiscard]] std::vector<std::string> getWatchPointIds()
const;
115 [[nodiscard]] std::vector<std::string> getConditionIds()
const;
116 void setWatchPoint(std::span<const TclObject> tokens, TclObject& result);
117 void removeWatchPoint(std::span<const TclObject> tokens, TclObject& result);
118 void listWatchPoints(std::span<const TclObject> tokens, TclObject& result);
119 void setCondition(std::span<const TclObject> tokens, TclObject& result);
120 void removeCondition(std::span<const TclObject> tokens, TclObject& result);
121 void listConditions(std::span<const TclObject> tokens, TclObject& result)
const;
122 void probe(std::span<const TclObject> tokens, TclObject& result);
123 void probeList(std::span<const TclObject> tokens, TclObject& result);
124 void probeDesc(std::span<const TclObject> tokens, TclObject& result);
125 void probeRead(std::span<const TclObject> tokens, TclObject& result);
126 void probeSetBreakPoint(std::span<const TclObject> tokens, TclObject& result);
127 void probeRemoveBreakPoint(std::span<const TclObject> tokens, TclObject& result);
128 void probeListBreakPoints(std::span<const TclObject> tokens, TclObject& result);
129 void symbols(std::span<const TclObject> tokens, TclObject& result);
130 void symbolsTypes(std::span<const TclObject> tokens, TclObject& result)
const;
131 void symbolsLoad(std::span<const TclObject> tokens, TclObject& result);
132 void symbolsRemove(std::span<const TclObject> tokens, TclObject& result);
133 void symbolsFiles(std::span<const TclObject> tokens, TclObject& result);
134 void symbolsLookup(std::span<const TclObject> tokens, TclObject& result);
137 struct NameFromProbe {
138 [[nodiscard]]
const std::string& operator()(
const ProbeBase* p)
const {
145 std::vector<std::unique_ptr<ProbeBreakPoint>> probeBreakPoints;