From aaafd372e90776ff7f6c1d430b9fe64b302df8dd Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sat, 29 Jun 2013 10:54:33 -0700 Subject: [PATCH] Clear temp breakpoints off the CPU thread. This should make it possible to actually clear them. Fixes #2519. --- Core/MIPS/x86/Jit.cpp | 3 --- Windows/Debugger/Debugger_Disasm.cpp | 5 +++++ Windows/Debugger/Debugger_Disasm.h | 3 +++ Windows/WindowsHost.cpp | 6 ++++-- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Core/MIPS/x86/Jit.cpp b/Core/MIPS/x86/Jit.cpp index 064fee39c1..01e4ed3f8d 100644 --- a/Core/MIPS/x86/Jit.cpp +++ b/Core/MIPS/x86/Jit.cpp @@ -64,9 +64,6 @@ void JitBreakpoint() Core_EnableStepping(true); host->SetDebugMode(true); - if (CBreakPoints::IsTempBreakPoint(currentMIPS->pc)) - CBreakPoints::RemoveBreakPoint(currentMIPS->pc); - // There's probably a better place for this. if (USE_JIT_MISSMAP) { diff --git a/Windows/Debugger/Debugger_Disasm.cpp b/Windows/Debugger/Debugger_Disasm.cpp index 1ab6ad1f01..07c1a3937d 100644 --- a/Windows/Debugger/Debugger_Disasm.cpp +++ b/Windows/Debugger/Debugger_Disasm.cpp @@ -732,6 +732,11 @@ BOOL CDisasm::DlgProc(UINT message, WPARAM wParam, LPARAM lParam) UpdateDialog(); } break; + + case WM_DISASM_SETDEBUG: + SetDebugMode(lParam != 0); + return TRUE; + case WM_SIZE: { UpdateSize(LOWORD(lParam), HIWORD(lParam)); diff --git a/Windows/Debugger/Debugger_Disasm.h b/Windows/Debugger/Debugger_Disasm.h index 1ddbe6bbf5..0fe671cbe2 100644 --- a/Windows/Debugger/Debugger_Disasm.h +++ b/Windows/Debugger/Debugger_Disasm.h @@ -12,6 +12,9 @@ #include +// Takes lParam for debug mode, zero or non zero. +const int WM_DISASM_SETDEBUG = WM_APP + 0; + class CDisasm : public Dialog { private: diff --git a/Windows/WindowsHost.cpp b/Windows/WindowsHost.cpp index 942925b68d..52d11254fa 100644 --- a/Windows/WindowsHost.cpp +++ b/Windows/WindowsHost.cpp @@ -124,9 +124,11 @@ void WindowsHost::UpdateDisassembly() void WindowsHost::SetDebugMode(bool mode) { - for (int i=0; iSetDebugMode(mode); + PostMessage(disasmWindow[i]->GetDlgHandle(), WM_DISASM_SETDEBUG, 0, (LPARAM)mode); + } } extern BOOL g_bFullScreen;