45 unsigned beginAddr,
unsigned endAddr,
46 bool once,
unsigned newId = -1);
56 [[nodiscard]]
Debuggable& getDebuggable(std::string_view name);
57 [[nodiscard]]
ProbeBase& getProbe(std::string_view name);
59 unsigned insertProbeBreakPoint(
61 ProbeBase& probe,
bool once,
unsigned newId = -1);
71 [[nodiscard]]
bool needRecord(std::span<const TclObject> tokens)
const override;
72 void execute(std::span<const TclObject> tokens,
73 TclObject& result, EmuTime::param time)
override;
74 [[nodiscard]] std::string help(std::span<const TclObject> tokens)
const override;
75 void tabCompletion(std::vector<std::string>& tokens)
const override;
79 [[nodiscard]]
const Debugger& debugger()
const {
return OUTER(Debugger, cmd); }
80 [[nodiscard]] SymbolManager& getSymbolManager();
81 void list(TclObject& result);
82 void desc(std::span<const TclObject> tokens, TclObject& result);
83 void size(std::span<const TclObject> tokens, TclObject& result);
84 void read(std::span<const TclObject> tokens, TclObject& result);
85 void readBlock(std::span<const TclObject> tokens, TclObject& result);
86 void write(std::span<const TclObject> tokens, TclObject& result);
87 void writeBlock(std::span<const TclObject> tokens, TclObject& result);
88 void setBreakPoint(std::span<const TclObject> tokens, TclObject& result);
89 void removeBreakPoint(std::span<const TclObject> tokens, TclObject& result);
90 void listBreakPoints(std::span<const TclObject> tokens, TclObject& result);
91 [[nodiscard]] std::vector<std::string> getBreakPointIds()
const;
92 [[nodiscard]] std::vector<std::string> getWatchPointIds()
const;
93 [[nodiscard]] std::vector<std::string> getConditionIds()
const;
94 void setWatchPoint(std::span<const TclObject> tokens, TclObject& result);
95 void removeWatchPoint(std::span<const TclObject> tokens, TclObject& result);
96 void listWatchPoints(std::span<const TclObject> tokens, TclObject& result);
97 void setCondition(std::span<const TclObject> tokens, TclObject& result);
98 void removeCondition(std::span<const TclObject> tokens, TclObject& result);
99 void listConditions(std::span<const TclObject> tokens, TclObject& result);
100 void probe(std::span<const TclObject> tokens, TclObject& result);
101 void probeList(std::span<const TclObject> tokens, TclObject& result);
102 void probeDesc(std::span<const TclObject> tokens, TclObject& result);
103 void probeRead(std::span<const TclObject> tokens, TclObject& result);
104 void probeSetBreakPoint(std::span<const TclObject> tokens, TclObject& result);
105 void probeRemoveBreakPoint(std::span<const TclObject> tokens, TclObject& result);
106 void probeListBreakPoints(std::span<const TclObject> tokens, TclObject& result);
107 void symbols(std::span<const TclObject> tokens, TclObject& result);
108 void symbolsTypes(std::span<const TclObject> tokens, TclObject& result)
const;
109 void symbolsLoad(std::span<const TclObject> tokens, TclObject& result);
110 void symbolsRemove(std::span<const TclObject> tokens, TclObject& result);
111 void symbolsFiles(std::span<const TclObject> tokens, TclObject& result);
112 void symbolsLookup(std::span<const TclObject> tokens, TclObject& result);
115 struct NameFromProbe {
116 [[nodiscard]]
const std::string& operator()(
const ProbeBase* p)
const {
123 std::vector<std::unique_ptr<ProbeBreakPoint>> probeBreakPoints;