// Copyright 2008 Dolphin Emulator Project // Licensed under GPLv2+ // Refer to the license.txt file included. #pragma once #include #include "Common/DebugInterface.h" // wrapper between disasm control and Dolphin debugger class PPCDebugInterface final : public DebugInterface { public: PPCDebugInterface() {} std::string Disassemble(unsigned int address) override; std::string GetRawMemoryString(int memory, unsigned int address) override; int GetInstructionSize(int /*instruction*/) override { return 4; } bool IsAlive() override; bool IsBreakpoint(unsigned int address) override; void SetBreakpoint(unsigned int address) override; void ClearBreakpoint(unsigned int address) override; void ClearAllBreakpoints() override; void AddWatch(unsigned int address) override; void ToggleBreakpoint(unsigned int address) override; void ClearAllMemChecks() override; bool IsMemCheck(unsigned int address) override; void ToggleMemCheck(unsigned int address, bool read = true, bool write = true, bool log = true) override; unsigned int ReadMemory(unsigned int address) override; enum { EXTRAMEM_ARAM = 1, }; unsigned int ReadExtraMemory(int memory, unsigned int address) override; unsigned int ReadInstruction(unsigned int address) override; unsigned int GetPC() override; void SetPC(unsigned int address) override; void Step() override {} void RunToBreakpoint() override; void InsertBLR(unsigned int address, unsigned int value) override; int GetColor(unsigned int address) override; std::string GetDescription(unsigned int address) override; };