Skip to content

Commit

Permalink
Merge pull request #130 from lioncash/breakpoint-clear
Browse files Browse the repository at this point in the history
Actually make PPCDebugInterface::ClearAllBreakpoints have functionality.
  • Loading branch information
delroth committed Mar 7, 2014
2 parents 0be38e7 + aa82680 commit 248f5d7
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 46 deletions.
1 change: 1 addition & 0 deletions Source/Core/Common/DebugInterface.h
Expand Up @@ -18,6 +18,7 @@ class DebugInterface
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;}
Expand Down
10 changes: 9 additions & 1 deletion Source/Core/Core/Debugger/PPCDebugInterface.cpp
Expand Up @@ -108,7 +108,10 @@ void PPCDebugInterface::ClearBreakpoint(unsigned int address)
PowerPC::breakpoints.Remove(address);
}

void PPCDebugInterface::ClearAllBreakpoints() {}
void PPCDebugInterface::ClearAllBreakpoints()
{
PowerPC::breakpoints.Clear();
}

void PPCDebugInterface::ToggleBreakpoint(unsigned int address)
{
Expand All @@ -118,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()
Expand Down
47 changes: 24 additions & 23 deletions Source/Core/Core/Debugger/PPCDebugInterface.h
Expand Up @@ -14,31 +14,32 @@ class PPCDebugInterface : public DebugInterface
{
public:
PPCDebugInterface(){}
virtual void Disassemble(unsigned int address, char *dest, int max_size) override;
virtual void GetRawMemoryString(int memory, unsigned int address, char *dest, int max_size) override;
virtual int GetInstructionSize(int /*instruction*/) override {return 4;}
virtual bool IsAlive() override;
virtual bool IsBreakpoint(unsigned int address) override;
virtual void SetBreakpoint(unsigned int address) override;
virtual void ClearBreakpoint(unsigned int address) override;
virtual void ClearAllBreakpoints() override;
virtual void ToggleBreakpoint(unsigned int address) override;
virtual bool IsMemCheck(unsigned int address) override;
virtual void ToggleMemCheck(unsigned int address) override;
virtual unsigned int ReadMemory(unsigned int address) override;
virtual void Disassemble(unsigned int address, char *dest, int max_size) final;
virtual void GetRawMemoryString(int memory, unsigned int address, char *dest, int max_size) final;
virtual int GetInstructionSize(int /*instruction*/) final {return 4;}
virtual bool IsAlive() final;
virtual bool IsBreakpoint(unsigned int address) final;
virtual void SetBreakpoint(unsigned int address) final;
virtual void ClearBreakpoint(unsigned int address) final;
virtual void ClearAllBreakpoints() final;
virtual void ToggleBreakpoint(unsigned int address) final;
virtual void ClearAllMemChecks() final;
virtual bool IsMemCheck(unsigned int address) final;
virtual void ToggleMemCheck(unsigned int address) final;
virtual unsigned int ReadMemory(unsigned int address) final;

enum {
EXTRAMEM_ARAM = 1,
};
virtual unsigned int ReadExtraMemory(int memory, unsigned int address) override;
virtual unsigned int ReadInstruction(unsigned int address) override;
virtual unsigned int GetPC() override;
virtual void SetPC(unsigned int address) override;
virtual void Step() override {}
virtual void BreakNow() override;
virtual void RunToBreakpoint() override;
virtual void InsertBLR(unsigned int address, unsigned int value) override;
virtual int GetColor(unsigned int address) override;
virtual std::string GetDescription(unsigned int address) override;
virtual void ShowJitResults(u32 address) override;
virtual unsigned int ReadExtraMemory(int memory, unsigned int address) final;
virtual unsigned int ReadInstruction(unsigned int address) final;
virtual unsigned int GetPC() final;
virtual void SetPC(unsigned int address) final;
virtual void Step() final {}
virtual void BreakNow() final;
virtual void RunToBreakpoint() final;
virtual void InsertBLR(unsigned int address, unsigned int value) final;
virtual int GetColor(unsigned int address) final;
virtual std::string GetDescription(unsigned int address) final;
virtual void ShowJitResults(u32 address) final;
};
5 changes: 5 additions & 0 deletions Source/Core/Core/HW/DSPLLE/DSPDebugInterface.cpp
Expand Up @@ -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.");
Expand Down
41 changes: 21 additions & 20 deletions Source/Core/Core/HW/DSPLLE/DSPDebugInterface.h
Expand Up @@ -14,24 +14,25 @@ class DSPDebugInterface : public DebugInterface
{
public:
DSPDebugInterface(){}
virtual void Disassemble(unsigned int address, char *dest, int max_size);
virtual void GetRawMemoryString(int memory, unsigned int address, char *dest, int max_size);
virtual int GetInstructionSize(int instruction) {return 1;}
virtual bool IsAlive();
virtual bool IsBreakpoint(unsigned int address);
virtual void SetBreakpoint(unsigned int address);
virtual void ClearBreakpoint(unsigned int address);
virtual void ClearAllBreakpoints();
virtual void ToggleBreakpoint(unsigned int address);
virtual bool IsMemCheck(unsigned int address);
virtual void ToggleMemCheck(unsigned int address);
virtual unsigned int ReadMemory(unsigned int address);
virtual unsigned int ReadInstruction(unsigned int address);
virtual unsigned int GetPC();
virtual void SetPC(unsigned int address);
virtual void Step() {}
virtual void RunToBreakpoint();
virtual void InsertBLR(unsigned int address, unsigned int value);
virtual int GetColor(unsigned int address);
virtual std::string GetDescription(unsigned int address);
virtual void Disassemble(unsigned int address, char *dest, int max_size) final;
virtual void GetRawMemoryString(int memory, unsigned int address, char *dest, int max_size) final;
virtual int GetInstructionSize(int instruction) final {return 1;}
virtual bool IsAlive() final;
virtual bool IsBreakpoint(unsigned int address) final;
virtual void SetBreakpoint(unsigned int address) final;
virtual void ClearBreakpoint(unsigned int address) final;
virtual void ClearAllBreakpoints() final;
virtual void ToggleBreakpoint(unsigned int address) final;
virtual void ClearAllMemChecks() final;
virtual bool IsMemCheck(unsigned int address) final;
virtual void ToggleMemCheck(unsigned int address) final;
virtual unsigned int ReadMemory(unsigned int address) final;
virtual unsigned int ReadInstruction(unsigned int address) final;
virtual unsigned int GetPC() final;
virtual void SetPC(unsigned int address) final;
virtual void Step() final {}
virtual void RunToBreakpoint() final;
virtual void InsertBLR(unsigned int address, unsigned int value) final;
virtual int GetColor(unsigned int address) final;
virtual std::string GetDescription(unsigned int address) final;
};
5 changes: 3 additions & 2 deletions Source/Core/DolphinWX/Debugger/BreakpointWindow.cpp
Expand Up @@ -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();
}

Expand Down

0 comments on commit 248f5d7

Please sign in to comment.