--- nono/debugger/debugger_private.h 2026/04/29 17:04:43 1.1.1.5 +++ nono/debugger/debugger_private.h 2026/04/29 17:04:57 1.1.1.8 @@ -9,6 +9,7 @@ #include "branchhistory.h" #include "bus.h" #include "cvprompt.h" +#include "monitor.h" #include "textscreen.h" #include @@ -105,8 +106,9 @@ class Console; class DebuggerMD; class Disasm; -class Debugger final +class Debugger final : public Object { + using inherited = Object; friend class DebuggerMD_m680x0; friend class DebuggerMD_m88xx0; public: @@ -174,8 +176,12 @@ class Debugger final bool Check(); void NotifyException(int vector); - // ブレークポイントモニタを更新 - void MonitorBreakpoint(TextScreen& monitor); + // メモリダンプモニタ + // GUI 用 (show コマンドでも見れるけど) + std::array memdump_monitor; + + // m/M コマンド用のメモリダンプモニタ + Monitor m_monitor { this }; private: bool Accept(); @@ -191,6 +197,7 @@ class Debugger final void cmd_bv(); void cmd_b_list(); void cmd_b_set(BreakpointType); + void cmd_b_delete(); void cmd_brhist(); void cmd_bx(); void cmd_c(); @@ -222,7 +229,7 @@ class Debugger final void RecalcInstMask(); bool GetAddr(saddr_t *addr, bool); void cmd_d_common(MemoryMode access_mode, MMULookupMode lookup_mode); - void cmd_hist_common(BranchHistory& hist, uint64 flag); + void cmd_hist_common(BranchHistory& hist); void cmd_m_common(MemoryMode access_mode, MMULookupMode lookup_mode); void cmd_n_common(bool); void cmd_s_common(bool); @@ -240,7 +247,7 @@ class Debugger final std::string HelpConvert(const std::string& msg); // モニターを更新して表示 - void ShowMonitor(IMonitor& monitor); + void ShowMonitor(Monitor& monitor); // テキストスクリーンを表示 void ShowTextScreen(TextScreen& screen); @@ -278,6 +285,17 @@ class Debugger final // プロンプトで表示するレジスタ群 std::vector disp_regs {}; + // ブレークポイント到達メッセージ + // (コンソールが獲得できるまで保留しておくため) + std::string bpointmsg {}; + + // ブレークポイントモニタ + DECLARE_MONITOR_CALLBACK(MonitorUpdateBpoint); + Monitor bpoint_monitor { this }; + + // メモリダンプモニタ + DECLARE_MONITOR_CALLBACK(MonitorUpdateMemdump); + static std::vector cmdtable; };