예제 #1
0
 public void SetMethodExecState(ILValue[] arguments, DmdMethodBody body)
 {
     staticFields.Clear();
     this.arguments = (ILValue[])arguments.Clone();
     locals         = new ILValue[body.LocalVariables.Count];
     for (int i = 0; i < locals.Length; i++)
     {
         locals[i] = CreateDefaultValue(body.LocalVariables[i].LocalType);
     }
 }
예제 #2
0
 public override void Initialize(DbgEvaluationInfo evalInfo, DmdMethodBody realMethodBody, VariablesProvider argumentsProvider, VariablesProvider localsProvider, bool canFuncEval)
 {
     Debug.Assert(this.evalInfo == null);
     if (this.evalInfo != null)
     {
         throw new InvalidOperationException();
     }
     this.evalInfo          = evalInfo;
     this.canFuncEval       = canFuncEval;
     this.argumentsProvider = argumentsProvider ?? DefaultArgumentsProvider;
     interpreterLocalsProvider.Initialize(realMethodBody, localsProvider ?? DefaultLocalsProvider);
     Debug.Assert(valuesToDispose.Count == 0);
 }
예제 #3
0
 public override void SetMethodExecState(ILValue[] arguments, DmdMethodBody body) => debuggerRuntime.SetMethodExecState(arguments, body);
예제 #4
0
 public override void Initialize(DbgEvaluationInfo evalInfo, DmdMethodBase method, DmdMethodBody body)
 {
     Debug.Assert(extraLocals.Count == 0);
     localVariables = body.LocalVariables;
     localsProvider.Initialize(evalInfo, method, body);
 }
 public override void Initialize(DbgEvaluationInfo evalInfo, DmdMethodBase method, DmdMethodBody body) => this.evalInfo = evalInfo;
예제 #6
0
 public abstract void Initialize(DbgEvaluationInfo evalInfo, DmdMethodBase method, DmdMethodBody body);
예제 #7
0
 public override void Initialize(DmdMethodBase method, DmdMethodBody body)
 {
 }
예제 #8
0
 public override void Initialize(DmdMethodBase method, DmdMethodBody body)
 {
     argumentsProvider.Initialize(evalInfo, method, body);
     interpreterLocalsProvider.Initialize(evalInfo, method, body);
 }
예제 #9
0
 public abstract void Initialize(DbgEvaluationContext context, DbgStackFrame frame, DmdMethodBody realMethodBody, VariablesProvider argumentsProvider, VariablesProvider localsProvider, bool canFuncEval, CancellationToken cancellationToken);
예제 #10
0
 public override void Initialize(DmdMethodBase method, DmdMethodBody body)
 {
     reflectionAppDomain = method.AppDomain;
     argumentsProvider.Initialize(context, frame, method, body, cancellationToken);
     interpreterLocalsProvider.Initialize(context, frame, method, body, cancellationToken);
 }
예제 #11
0
 public override void Initialize(DbgEvaluationContext context, DbgStackFrame frame, DmdMethodBody realMethodBody, VariablesProvider argumentsProvider, VariablesProvider localsProvider, bool canFuncEval, CancellationToken cancellationToken)
 {
     Debug.Assert(this.context == null);
     if (this.context != null)
     {
         throw new InvalidOperationException();
     }
     this.context           = context;
     this.frame             = frame;
     this.cancellationToken = cancellationToken;
     this.canFuncEval       = canFuncEval;
     this.argumentsProvider = argumentsProvider ?? DefaultArgumentsProvider;
     interpreterLocalsProvider.Initialize(realMethodBody, localsProvider ?? DefaultLocalsProvider);
     Debug.Assert(valuesToDispose.Count == 0);
 }
예제 #12
0
 public override void Initialize(DbgEvaluationContext context, DbgStackFrame frame, DmdMethodBase method, DmdMethodBody body, CancellationToken cancellationToken)
 {
     Debug.Assert(extraLocals.Count == 0);
     localVariables = body.LocalVariables;
     localsProvider.Initialize(context, frame, method, body, cancellationToken);
 }
예제 #13
0
 internal void Initialize(DmdMethodBody realMethodBody, VariablesProvider localsProvider)
 {
     Debug.Assert(extraLocals.Count == 0);
     realLocalVariables  = realMethodBody.LocalVariables;
     this.localsProvider = localsProvider;
 }
예제 #14
0
 public abstract void Initialize(DbgEvaluationInfo evalInfo, DmdMethodBody realMethodBody, VariablesProvider argumentsProvider, VariablesProvider localsProvider, bool canFuncEval);
예제 #15
0
 public override void Initialize(DmdMethodBase method, DmdMethodBody body)
 {
     argumentsProvider.Initialize(context, frame, method, body, cancellationToken);
     localsProvider.Initialize(context, frame, method, body, cancellationToken);
 }
예제 #16
0
 /// <summary>
 /// Called before executing the method
 /// </summary>
 /// <param name="method">Method</param>
 /// <param name="body">Method body</param>
 public abstract void Initialize(DmdMethodBase method, DmdMethodBody body);
예제 #17
0
 public abstract void Initialize(DbgEvaluationContext context, DbgStackFrame frame, DmdMethodBase method, DmdMethodBody body, CancellationToken cancellationToken);