protected override void Run () { FunctionBreakpoint bp = new FunctionBreakpoint ("", "C#"); if (DebuggingService.ShowBreakpointProperties (bp, true)) DebuggingService.Breakpoints.Add (bp); }
void SetInitialFunctionBreakpointData (FunctionBreakpoint fb) { stopOnLocation.Visible = false; vboxLocation.Visible = false; stopOnException.Visible = false; vboxException.Visible = false; stopOnFunction.Active = true; if (fb.ParamTypes != null) { // FIXME: support non-C# syntax based on fb.Language entryFunctionName.Text = fb.FunctionName + " (" + String.Join (", ", fb.ParamTypes) + ")"; } else entryFunctionName.Text = fb.FunctionName; }
void SaveFunctionBreakpoint (FunctionBreakpoint fb) { fb.FunctionName = parsedFunction; fb.ParamTypes = parsedParamTypes; }
public override void Process(string args) { if (args.Length == 0) { Log.Error("No method name given"); return; } foreach (var be in Debugger.Breakpoints) { if (!(be.Value is FunctionBreakpoint)) continue; if (((FunctionBreakpoint)be.Value).FunctionName == args) { Log.Error("A method breakpoint for '{0}' already exists ('{1}')", args, be.Key); return; } } // TODO: Parameter types too. var id = Debugger.GetBreakpointId(); var fbp = new FunctionBreakpoint(args, "C#"); Debugger.Breakpoints.Add(id, fbp); Debugger.BreakEvents.Add(fbp); Log.Info("Breakpoint '{0}' added for method '{1}'", id, args); }