void BeforeGetValue(string name)
        {
            NamedValue localVar;

            try {
                localVar = process.LocalVariables[name];
            } catch (DebuggerException) {
                return;
            }
            PrintLine("Getting local variable " + name);
            // First, get out of GC unsafe point
            Stepper stepOut = new Stepper(process.SelectedThread.LastFunction, "Boo interperter");

            stepOut.StepComplete += delegate {
                process.Debugger.MTA2STA.AsyncCall(delegate {
                    if (!interpreter_localVariable.SetValue(localVar))
                    {
                        PrintLine("Getting of local variable " + name + " failed");
                    }
                    process.Continue();
                });
            };
            stepOut.StepOut();
        }
Beispiel #2
0
        /// <summary> Step out of the stack frame </summary>
        public void AsyncStepOut()
        {
            Stepper.StepOut(this, "normal");

            AsyncContinue();
        }
Beispiel #3
0
        /// <summary> Step out of the stack frame </summary>
        public void AsyncStepOut()
        {
            Stepper.StepOut(this, "normal");

            process.AsyncContinue(DebuggeeStateAction.Clear);
        }
Beispiel #4
0
 public StepperEventArgs(Stepper stepper, CorDebugStepReason reason) : base(stepper.Process)
 {
     this.stepper = stepper;
     this.reason  = reason;
 }
Beispiel #5
0
		public static Stepper StepOut(StackFrame stackFrame, string name)
		{
			// JMC off - Needed for multiple events. See docs\Stepping.txt
			Stepper stepper = new Stepper(stackFrame, StepperOperation.StepOut, null, name, false);
			stepper.corStepper.StepOut();
			return stepper;
		}
Beispiel #6
0
		public StepperEventArgs(Stepper stepper, CorDebugStepReason reason)
		{
			this.stepper = stepper;
			this.reason = reason;
		}
Beispiel #7
0
		public static Stepper StepOver(StackFrame stackFrame, int[] stepRanges, string name)
		{
			Stepper stepper = new Stepper(stackFrame, StepperOperation.StepOver, stepRanges, name, stackFrame.Process.Options.EnableJustMyCode);
			stepper.corStepper.StepRange(false /* step over */, stepRanges);
			return stepper;
		}
Beispiel #8
0
 public StepperEventArgs(Stepper stepper, CorDebugStepReason reason)
     : base(stepper.Process)
 {
     this.stepper = stepper;
     this.reason = reason;
 }
Beispiel #9
0
		internal Function(Thread thread, FrameID frameID, ICorDebugILFrame corILFrame)
		{
			this.process = thread.Process;
			this.thread = thread;
			this.frameID = frameID;
			this.CorILFrame = corILFrame;
			corFunction = corILFrame.Function;
			module = process.GetModule(corFunction.Module);
			
			methodProps = module.MetaData.GetMethodProps(corFunction.Token);
			
			// Force some callback when function steps out so that we can expire it
			stepOutStepper = new Stepper(this, "Function Tracker");
			stepOutStepper.StepOut();
			stepOutStepper.PauseWhenComplete = false;
			
			process.TraceMessage("Function " + this.ToString() + " created");
		}
		public StepperEventArgs(Stepper stepper): base(stepper.Process)
		{
			this.stepper = stepper;
		}
		void BeforeGetValue(string name)
		{
			NamedValue localVar;
			try {
				localVar = process.LocalVariables[name];
			} catch (DebuggerException) {
				return;
			}
			PrintLine("Getting local variable " + name);
			// First, get out of GC unsafe point
			Stepper stepOut = new Stepper(process.SelectedThread.LastFunction, "Boo interperter");
			stepOut.StepComplete  += delegate {
				process.Debugger.MTA2STA.AsyncCall(delegate {
					if (!interpreter_localVariable.SetValue(localVar)) {
						PrintLine("Getting of local variable " + name + " failed");
					}
					process.Continue();
				});
			};
			stepOut.StepOut();
		}
Beispiel #12
0
 public StepperEventArgs(Stepper stepper, CorDebugStepReason reason)
 {
     this.stepper = stepper;
     this.reason  = reason;
 }
 public StepperEventArgs(Stepper stepper) : base(stepper.Process)
 {
     this.stepper = stepper;
 }