From 610a6f9b23e7cc2b9553781f24ede40633c0ab3e Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 5 Mar 2014 20:51:27 -0500 Subject: [PATCH] Add ClearAllMemChecks to DebugInterface Breakpoints have one, but memchecks don't, despite being cleared directly in the breakpoint window. Now DolphinWX should call the interface functions and not the direct functions of the breakpoints or memchecks for clearing. --- Source/Core/Common/DebugInterface.h | 1 + Source/Core/Core/Debugger/PPCDebugInterface.cpp | 5 +++++ Source/Core/Core/Debugger/PPCDebugInterface.h | 1 + Source/Core/Core/HW/DSPLLE/DSPDebugInterface.cpp | 5 +++++ Source/Core/Core/HW/DSPLLE/DSPDebugInterface.h | 1 + Source/Core/DolphinWX/Debugger/BreakpointWindow.cpp | 5 +++-- 6 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Source/Core/Common/DebugInterface.h b/Source/Core/Common/DebugInterface.h index 0bd9c29beb..26e0a3e2ee 100644 --- a/Source/Core/Common/DebugInterface.h +++ b/Source/Core/Common/DebugInterface.h @@ -18,6 +18,7 @@ public: virtual void ClearBreakpoint(unsigned int /*address*/){} virtual void ClearAllBreakpoints() {} virtual void ToggleBreakpoint(unsigned int /*address*/){} + virtual void ClearAllMemChecks() {} virtual bool IsMemCheck(unsigned int /*address*/) {return false;} virtual void ToggleMemCheck(unsigned int /*address*/){} virtual unsigned int ReadMemory(unsigned int /*address*/){return 0;} diff --git a/Source/Core/Core/Debugger/PPCDebugInterface.cpp b/Source/Core/Core/Debugger/PPCDebugInterface.cpp index 131ff307bf..0d34a56f0a 100644 --- a/Source/Core/Core/Debugger/PPCDebugInterface.cpp +++ b/Source/Core/Core/Debugger/PPCDebugInterface.cpp @@ -121,6 +121,11 @@ void PPCDebugInterface::ToggleBreakpoint(unsigned int address) PowerPC::breakpoints.Add(address); } +void PPCDebugInterface::ClearAllMemChecks() +{ + PowerPC::memchecks.Clear(); +} + bool PPCDebugInterface::IsMemCheck(unsigned int address) { return (Memory::AreMemoryBreakpointsActivated() diff --git a/Source/Core/Core/Debugger/PPCDebugInterface.h b/Source/Core/Core/Debugger/PPCDebugInterface.h index bd4cd42bf5..fbd01e06af 100644 --- a/Source/Core/Core/Debugger/PPCDebugInterface.h +++ b/Source/Core/Core/Debugger/PPCDebugInterface.h @@ -23,6 +23,7 @@ public: virtual void ClearBreakpoint(unsigned int address) override; virtual void ClearAllBreakpoints() override; virtual void ToggleBreakpoint(unsigned int address) override; + virtual void ClearAllMemChecks() override; virtual bool IsMemCheck(unsigned int address) override; virtual void ToggleMemCheck(unsigned int address) override; virtual unsigned int ReadMemory(unsigned int address) override; diff --git a/Source/Core/Core/HW/DSPLLE/DSPDebugInterface.cpp b/Source/Core/Core/HW/DSPLLE/DSPDebugInterface.cpp index e9aba0fd15..863daf7a05 100644 --- a/Source/Core/Core/HW/DSPLLE/DSPDebugInterface.cpp +++ b/Source/Core/Core/HW/DSPLLE/DSPDebugInterface.cpp @@ -127,6 +127,11 @@ bool DSPDebugInterface::IsMemCheck(unsigned int address) return false; } +void DSPDebugInterface::ClearAllMemChecks() +{ + PanicAlert("MemCheck functionality not supported in DSP module."); +} + void DSPDebugInterface::ToggleMemCheck(unsigned int address) { PanicAlert("MemCheck functionality not supported in DSP module."); diff --git a/Source/Core/Core/HW/DSPLLE/DSPDebugInterface.h b/Source/Core/Core/HW/DSPLLE/DSPDebugInterface.h index c406120c3f..7e3a6efabc 100644 --- a/Source/Core/Core/HW/DSPLLE/DSPDebugInterface.h +++ b/Source/Core/Core/HW/DSPLLE/DSPDebugInterface.h @@ -23,6 +23,7 @@ public: virtual void ClearBreakpoint(unsigned int address); virtual void ClearAllBreakpoints(); virtual void ToggleBreakpoint(unsigned int address); + virtual void ClearAllMemChecks(); virtual bool IsMemCheck(unsigned int address); virtual void ToggleMemCheck(unsigned int address); virtual unsigned int ReadMemory(unsigned int address); diff --git a/Source/Core/DolphinWX/Debugger/BreakpointWindow.cpp b/Source/Core/DolphinWX/Debugger/BreakpointWindow.cpp index b16f150d74..b650ac2655 100644 --- a/Source/Core/DolphinWX/Debugger/BreakpointWindow.cpp +++ b/Source/Core/DolphinWX/Debugger/BreakpointWindow.cpp @@ -153,8 +153,9 @@ void CBreakPointWindow::OnSelectBP(wxListEvent& event) // Clear all breakpoints and memchecks void CBreakPointWindow::OnClear(wxCommandEvent& WXUNUSED(event)) { - PowerPC::breakpoints.Clear(); - PowerPC::memchecks.Clear(); + PowerPC::debug_interface.ClearAllBreakpoints(); + PowerPC::debug_interface.ClearAllMemChecks(); + NotifyUpdate(); }