Clear temp breakpoints off the CPU thread.

This should make it possible to actually clear them.  Fixes #2519.
This commit is contained in:
Unknown W. Brackets 2013-06-29 10:54:33 -07:00
parent 0d0e1db1b9
commit aaafd372e9
4 changed files with 12 additions and 5 deletions

View File

@ -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)
{

View File

@ -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));

View File

@ -12,6 +12,9 @@
#include <windows.h>
// Takes lParam for debug mode, zero or non zero.
const int WM_DISASM_SETDEBUG = WM_APP + 0;
class CDisasm : public Dialog
{
private:

View File

@ -124,9 +124,11 @@ void WindowsHost::UpdateDisassembly()
void WindowsHost::SetDebugMode(bool mode)
{
for (int i=0; i<numCPUs; i++)
for (int i = 0; i < numCPUs; i++)
{
if (disasmWindow[i])
disasmWindow[i]->SetDebugMode(mode);
PostMessage(disasmWindow[i]->GetDlgHandle(), WM_DISASM_SETDEBUG, 0, (LPARAM)mode);
}
}
extern BOOL g_bFullScreen;