void XDLink::RemoveAllBreakpointsOnLine ( const JCharacter* fileName, const JIndex lineIndex ) { JBoolean changed = kJFalse; JPtrArray<CMBreakpoint> list(JPtrArrayT::kForgetAll); JString cmd; if (itsBPMgr->GetBreakpoints(fileName, &list)) { for (JIndex i=1; i<=list.GetElementCount(); i++) { CMBreakpoint* bp = list.NthElement(i); if (bp->GetLineNumber() == lineIndex) { cmd = "breakpoint_remove -d "; cmd += bp->GetDebuggerIndex(); Send(cmd); changed = kJTrue; } } } if (changed) { Broadcast(BreakpointsChanged()); } }
void MemoryViewWidget::ToggleRowBreakpoint(bool row) { TMemCheck check; const u32 addr = row ? GetContextAddress() & 0xFFFFFFF0 : GetContextAddress(); const auto length = row ? 16 : (16 / GetColumnCount(m_type)); if (!PowerPC::memchecks.OverlapsMemcheck(addr, length)) { check.start_address = addr; check.end_address = check.start_address + length - 1; check.is_ranged = length > 0; check.is_break_on_read = (m_bp_type == BPType::ReadOnly || m_bp_type == BPType::ReadWrite); check.is_break_on_write = (m_bp_type == BPType::WriteOnly || m_bp_type == BPType::ReadWrite); check.log_on_hit = m_do_log; check.break_on_hit = true; PowerPC::memchecks.Add(check); } else { PowerPC::memchecks.Remove(addr); } emit BreakpointsChanged(); Update(); }
void CodeViewWidget::AddBreakpoint() { PowerPC::breakpoints.Add(GetContextAddress()); emit BreakpointsChanged(); Update(); }
void CodeViewWidget::ToggleBreakpoint() { if (PowerPC::debug_interface.IsBreakpoint(GetContextAddress())) PowerPC::breakpoints.Remove(GetContextAddress()); else PowerPC::breakpoints.Add(GetContextAddress()); emit BreakpointsChanged(); Update(); }
void XDLink::RemoveBreakpoint ( const JIndex debuggerIndex ) { JString cmd = "breakpoint_remove -d "; cmd += debuggerIndex; Send(cmd); Broadcast(BreakpointsChanged()); }
void XDLink::SetBreakpointEnabled ( const JIndex debuggerIndex, const JBoolean enabled, const JBoolean once ) { JString cmd = "breakpoint_update -d "; cmd += debuggerIndex; cmd += " -s "; cmd += (enabled ? "enabled" : "disabled"); Send(cmd); Broadcast(BreakpointsChanged()); }
void XDLink::RemoveAllBreakpoints() { JBoolean changed = kJFalse; const JPtrArray<CMBreakpoint>& list = itsBPMgr->GetBreakpoints(); JString cmd; for (JIndex i=1; i<=list.GetElementCount(); i++) { const CMBreakpoint* bp = list.NthElement(i); cmd = "breakpoint_remove -d "; cmd += bp->GetDebuggerIndex(); Send(cmd); changed = kJTrue; } if (changed) { Broadcast(BreakpointsChanged()); } }
void XDLink::SetBreakpoint ( const JCharacter* fileName, const JIndex lineIndex, const JBoolean temporary ) { JString cmd = "breakpoint_set -t line -f "; cmd += fileName; cmd += " -n "; cmd += lineIndex; if (temporary) { cmd += " -r 1"; } Send(cmd); Broadcast(BreakpointsChanged()); }