public void EnableBreakpoint(string file, int line) { BreakpointDetails bkpt = FindBreakpoint(file, line); if (bkpt == null) { bkpt = new BreakpointDetails(file, line, true); mBreakpoints.Add(bkpt); } else if (!bkpt.Enabled) { bkpt.Enabled = true; } else { return; } if (mConnectedTarget != null) { bkpt.TargetState = BreakpointState.PendingAdd; mConnectedTarget.AddBreakpoint(file, line, bkpt.ID); } OnBreakpointChanged(bkpt, true); }
void Debugger_BreakpointChanged(DebugManager sender, BreakpointDetails bkpt, bool valid) { ListViewItem item = FindBreakpoint(bkpt.FileName, bkpt.Line); mUpdating = true; if (item == null && valid) { item = new ListViewItem(bkpt.FileName); item.SubItems.Add(bkpt.Line.ToString()); item.SubItems.Add(bkpt.TargetState.ToString()); item.ImageIndex = 0; item.Checked = bkpt.Enabled; item.Tag = bkpt; breakpointListView.Items.Add(item); } else if (item != null && valid) { item.Checked = bkpt.Enabled; item.SubItems[2].Text = bkpt.TargetState.ToString(); } else if (item != null && !valid) { breakpointListView.Items.Remove(item); } mUpdating = false; }
void Debugger_BreakpointChanged(DebugManager sender, BreakpointDetails bkpt, bool valid) { if (PathUtils.Compare(Document.FileName, bkpt.FileName) == 0) { SetBreakpoint(bkpt.Line, valid); } }
void OnBreakpointChanged(BreakpointDetails bkpt, bool valid) { if (BreakpointChanged != null) { BreakpointChanged(this, bkpt, valid); } }
void Debugger_BreakpointChanged(DebugManager sender, BreakpointDetails bkpt, bool valid) { ListViewItem item = FindBreakpoint(bkpt.FileName, bkpt.Line); mUpdating = true; if(item == null && valid) { item = new ListViewItem(bkpt.FileName); item.SubItems.Add(bkpt.Line.ToString()); item.SubItems.Add(bkpt.TargetState.ToString()); item.ImageIndex = 0; item.Checked = bkpt.Enabled; item.Tag = bkpt; breakpointListView.Items.Add(item); } else if(item != null && valid) { item.Checked = bkpt.Enabled; item.SubItems[2].Text = bkpt.TargetState.ToString(); } else if(item != null && !valid) { breakpointListView.Items.Remove(item); } mUpdating = false; }
private void removeBreakpointToolStripMenuItem_Click(object sender, EventArgs e) { List <BreakpointDetails> bkpts = new List <BreakpointDetails>(); foreach (ListViewItem item in breakpointListView.SelectedItems) { BreakpointDetails bkpt = (BreakpointDetails)item.Tag; bkpts.Add(bkpt); } foreach (BreakpointDetails bkpt in bkpts) { mDebugger.RemoveBreakpoint(bkpt.FileName, bkpt.Line); } }
private void breakpointListView_ItemChecked(object sender, ItemCheckedEventArgs e) { if (!mUpdating) { BreakpointDetails bkpt = (BreakpointDetails)e.Item.Tag; if (e.Item.Checked) { mDebugger.EnableBreakpoint(bkpt.FileName, bkpt.Line); } else { mDebugger.DisableBreakpoint(bkpt.FileName, bkpt.Line); } } }
public BreakpointDetails ToggleBreakpoint(string file, int line) { BreakpointDetails bkpt = FindBreakpoint(file, line); if (bkpt == null) { return(AddBreakpoint(file, line)); } else { RemoveBreakpoint(file, line); } return(null); }
public BreakpointDetails AddBreakpoint(string file, int line) { BreakpointDetails bkpt = FindBreakpoint(file, line); if (bkpt == null) { bkpt = new BreakpointDetails(file, line, true); mBreakpoints.Add(bkpt); if (mTargetStatus != TargetState.Disconnected && mConnectedTarget != null) { bkpt.TargetState = BreakpointState.PendingAdd; mConnectedTarget.AddBreakpoint(file, line, bkpt.ID); } } OnBreakpointChanged(bkpt, true); return(bkpt); }
public void RemoveBreakpoint(string file, int line) { BreakpointDetails bkpt = FindBreakpoint(file, line); if (bkpt != null) { if (mTargetStatus != TargetState.Disconnected && bkpt.Enabled && mConnectedTarget != null && bkpt.TargetState != BreakpointState.PendingRemove) { bkpt.TargetState = BreakpointState.PendingRemove; mConnectedTarget.RemoveBreakpoint(bkpt.ID); OnBreakpointChanged(bkpt, true); } else if (mTargetStatus == TargetState.Disconnected || mConnectedTarget == null) { mBreakpoints.Remove(bkpt); OnBreakpointChanged(bkpt, false); } } }
public void DisableBreakpoint(string file, int line) { BreakpointDetails bkpt = FindBreakpoint(file, line); if (bkpt == null) { bkpt = new BreakpointDetails(file, line, false); mBreakpoints.Add(bkpt); } else if (bkpt.Enabled) { bkpt.Enabled = false; if (mConnectedTarget != null) { bkpt.TargetState = BreakpointState.PendingDisable; mConnectedTarget.RemoveBreakpoint(bkpt.ID); } } OnBreakpointChanged(bkpt, true); }
/// <summary> /// Triggered when the target has accepted or rejected a breakpoint. /// </summary> /// <param name="sender"></param> /// <param name="args"></param> void Target_BreakpointUpdate(Target sender, BreakpointUpdateEventArgs args) { BreakpointDetails bkpt = FindBreakpoint(args.ID); if (bkpt != null) { if (args.State == BreakpointUpdateEventState.Added) { // Force it to be displayed as enabled, 'cos the debugger is gonna break on it anyway! bkpt.Enabled = true; bkpt.TargetState = BreakpointState.Accepted; } else if (args.State == BreakpointUpdateEventState.Invalid) { bkpt.TargetState = BreakpointState.Invalid; } else if (args.State == BreakpointUpdateEventState.Removed) { if (bkpt.TargetState == BreakpointState.PendingRemove) { bkpt.TargetState = BreakpointState.Removed; } else if (bkpt.TargetState == BreakpointState.PendingDisable) { bkpt.TargetState = BreakpointState.NotSent; } } if (bkpt.TargetState == BreakpointState.Removed) { mBreakpoints.Remove(bkpt); } OnBreakpointChanged(bkpt, bkpt.TargetState != BreakpointState.Removed); } }
void OnBreakpointChanged(BreakpointDetails bkpt, bool valid) { if (BreakpointChanged != null) BreakpointChanged(this, bkpt, valid); }
public BreakpointDetails AddBreakpoint(string file, int line) { BreakpointDetails bkpt = FindBreakpoint(file, line); if (bkpt == null) { bkpt = new BreakpointDetails(file, line, true); mBreakpoints.Add(bkpt); if (mTargetStatus != TargetState.Disconnected && mConnectedTarget != null) { bkpt.TargetState = BreakpointState.PendingAdd; mConnectedTarget.AddBreakpoint(file, line, bkpt.ID); } } OnBreakpointChanged(bkpt, true); return bkpt; }