--- nono/debugger/debugger.h 2026/04/29 17:05:24 1.1.1.10 +++ nono/debugger/debugger.h 2026/04/29 17:05:49 1.1.1.13 @@ -120,8 +120,8 @@ class Debugger : public ThreadDevice private: void Close(); - void RxCallback(); - void AcceptCallback(); + void RxCallback(uint32); + void AcceptCallback(uint32); void Input(int); void EnterPrompt(); void LeavePrompt(bool trace); @@ -170,8 +170,16 @@ class Debugger : public ThreadDevice CmdAct cmd_z(); bool Check(DebuggerMD *); + bool ParseOptBreakAddr(const std::string&); + bool ParseOptBreakInst(const std::string&); + bool ParseOptBreakVector(const std::string&); + bool IsCPUStr(const std::string&) const; DebuggerMD *ParseCPU(const std::string&) const; - int AddBreakpoint(const breakpoint_t&, const std::string&); + int AddBreakInst(const std::string& cpustr, const std::string& inststr, + const std::string& skipstr, std::string *errstr); + int AddBreakVector(const std::string& cpustr, const std::string& vecstr, + const std::string& skipstr, std::string *errstr); + int AddBreakpoint(const breakpoint_t&); void RecalcInstMask(); bool GetAddr(busaddr *addr, bool); CmdAct cmd_d_common(busaddr access_mode); @@ -197,7 +205,7 @@ class Debugger : public ThreadDevice std::string HelpConvert(const std::string& msg); // モニタを更新して表示 - void ShowMonitor(Monitor& monitor); + void ShowMonitor(Monitor *monitor); // テキストスクリーンを表示 void ShowTextScreen(TextScreen& screen); @@ -224,7 +232,7 @@ class Debugger : public ThreadDevice const char *prompt {}; // プロンプト文字列 std::string cmdbuf {}; // 現在のコマンドライン std::string last_cmdbuf {}; // 直前のコマンドライン - std::vector args {}; + std::vector cmdargs {}; uint32 pc {}; std::array bpoint {}; @@ -257,7 +265,7 @@ class Debugger : public ThreadDevice // ブレークポイントモニタ DECLARE_MONITOR_CALLBACK(MonitorUpdateBpoint); - Monitor bpoint_monitor { this }; + Monitor *bpoint_monitor {}; // 逆アセンブルとメモリダンプモニタ std::array, MAX_MEMDUMP_MONITOR>