예제 #1
0
		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));
		}
예제 #2
0
		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;
			});
		}
예제 #3
0
		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));
			});
		}