示例#1
0
		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;
		}
示例#4
0
                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);
                }