// $Id: Debugger.hh 5733 2006-10-02 13:16:39Z m9710797 $ #ifndef DEBUGGER_HH #define DEBUGGER_HH #include "noncopyable.hh" #include #include #include #include namespace openmsx { class MSXMotherBoard; class Debuggable; class MSXCPU; class DebugCmd; class Debugger : private noncopyable { public: explicit Debugger(MSXMotherBoard& motherBoard); ~Debugger(); void registerDebuggable (const std::string& name, Debuggable& interface); void unregisterDebuggable(const std::string& name, Debuggable& interface); Debuggable* findDebuggable(const std::string& name); void setCPU(MSXCPU* cpu); private: Debuggable* getDebuggable(const std::string& name); void getDebuggables(std::set& result) const; MSXMotherBoard& motherBoard; friend class DebugCmd; const std::auto_ptr debugCmd; std::map debuggables; MSXCPU* cpu; }; } // namespace openmsx #endif