Merge pull request #4706 from Kingcom/Debugger

Automatically pause core when changing breakpoints
This commit is contained in:
Henrik Rydgård 2013-12-02 01:51:15 -08:00
commit 1c04e923f6

View File

@ -324,13 +324,24 @@ const std::vector<BreakPoint> CBreakPoints::GetBreakpoints()
void CBreakPoints::Update(u32 addr) void CBreakPoints::Update(u32 addr)
{ {
if (MIPSComp::jit && Core_IsInactive()) if (MIPSComp::jit)
{ {
bool resume = false;
if (Core_IsStepping() == false)
{
Core_EnableStepping(true);
Core_WaitInactive();
resume = true;
}
// In case this is a delay slot, clear the previous instruction too. // In case this is a delay slot, clear the previous instruction too.
if (addr != 0) if (addr != 0)
MIPSComp::jit->ClearCacheAt(addr - 4, 8); MIPSComp::jit->ClearCacheAt(addr - 4, 8);
else else
MIPSComp::jit->ClearCache(); MIPSComp::jit->ClearCache();
if (resume)
Core_EnableStepping(false);
} }
// Redraw in order to show the breakpoint. // Redraw in order to show the breakpoint.