void OnBreakpointUpdated (object s, BreakpointEventArgs args) { TreeIter it; if (!store.GetIterFirst (out it)) return; do { Breakpoint bp = (Breakpoint) store.GetValue (it, (int) Columns.Breakpoint); if (bp == args.Breakpoint) { string traceVal = bp.HitAction == HitAction.PrintExpression ? bp.LastTraceValue : ""; string hitCount = bp.HitCount > 0 ? bp.HitCount.ToString () : ""; store.SetValue (it, (int) Columns.HitCount, hitCount); store.SetValue (it, (int) Columns.LastTrace, traceVal); break; } } while (store.IterNext (ref it)); }
void OnBreakpointStatusChanged (object s, BreakpointEventArgs args) { if (ContentName == null || args.Breakpoint.FileName != Path.GetFullPath (ContentName)) return; // Updated with a delay, to make sure it works when called as a // result of inserting/removing lines before a breakpoint position GLib.Timeout.Add (10, delegate { if (!isDisposed) UpdateBreakpoints (true); return false; }); }
void OnBreakpointUpdated (object s, BreakpointEventArgs args) { Runtime.RunInMainThread (() => { TreeIter it; if (!store.GetIterFirst (out it)) return; do { var bp = (BreakEvent) store.GetValue (it, (int) Columns.Breakpoint); if (bp == args.Breakpoint) { string hitCount = bp.HitCountMode != HitCountMode.None ? bp.CurrentHitCount.ToString () : ""; string traceVal = (bp.HitAction & HitAction.PrintExpression) != HitAction.None ? bp.LastTraceValue : ""; store.SetValue (it, (int) Columns.HitCount, hitCount); store.SetValue (it, (int) Columns.LastTrace, traceVal); break; } } while (store.IterNext (ref it)); }); }