Пример #1
0
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());
		}
}
Пример #2
0
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();
}
Пример #3
0
void CodeViewWidget::AddBreakpoint()
{
  PowerPC::breakpoints.Add(GetContextAddress());

  emit BreakpointsChanged();
  Update();
}
Пример #4
0
void CodeViewWidget::ToggleBreakpoint()
{
  if (PowerPC::debug_interface.IsBreakpoint(GetContextAddress()))
    PowerPC::breakpoints.Remove(GetContextAddress());
  else
    PowerPC::breakpoints.Add(GetContextAddress());

  emit BreakpointsChanged();
  Update();
}
Пример #5
0
void
XDLink::RemoveBreakpoint
	(
	const JIndex debuggerIndex
	)
{
	JString cmd = "breakpoint_remove -d ";
	cmd        += debuggerIndex;
	Send(cmd);

	Broadcast(BreakpointsChanged());
}
Пример #6
0
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());
}
Пример #7
0
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());
		}
}
Пример #8
0
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());
}