public override void Clear() { localsProvider.Clear(); extraLocals.Clear(); localsProvider = null !; realLocalVariables = null !; localVariables = null !; }
public InterpreterLocalsProvider(DebuggerRuntimeImpl runtime) { localsProvider = null !; realLocalVariables = null !; localVariables = null !; this.runtime = runtime; extraLocals = new Dictionary <int, DbgDotNetValue>(); }
public override void Initialize(DbgEvaluationContext context, DbgStackFrame frame, 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; this.localsProvider = localsProvider ?? DefaultLocalsProvider; Debug.Assert(valuesToDispose.Count == 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); }
public override void Clear(DbgDotNetValue returnValue) { context = null; frame = null; cancellationToken = default; canFuncEval = false; foreach (var v in valuesToDispose) { if (v != returnValue && argumentsProvider.CanDispose(v) && localsProvider.CanDispose(v)) v.Dispose(); } valuesToDispose.Clear(); argumentsProvider.Clear(); localsProvider.Clear(); argumentsProvider = null; localsProvider = null; reflectionAppDomain = null; }
public override void Clear(DbgDotNetValue returnValue) { evalInfo = null; canFuncEval = false; foreach (var v in valuesToDispose) { if (v != returnValue && argumentsProvider.CanDispose(v) && interpreterLocalsProvider.CanDispose(v)) { v.Dispose(); } } valuesToDispose.Clear(); argumentsProvider.Clear(); interpreterLocalsProvider.Clear(); argumentsProvider = null; }
public abstract DbgDotNetValueResult Execute(DbgEvaluationContext context, DbgStackFrame frame, IList <DmdType> genericTypeArguments, IList <DmdType> genericMethodArguments, VariablesProvider argumentsProvider, VariablesProvider localsProvider, DbgDotNetILInterpreterState state, string typeName, string methodName, DbgEvaluationOptions options, out DmdType expectedType, CancellationToken cancellationToken);
internal void Initialize(DmdMethodBody?realMethodBody, VariablesProvider localsProvider) { Debug.Assert(extraLocals.Count == 0); realLocalVariables = realMethodBody?.LocalVariables ?? emptyLocalVariableInfos; this.localsProvider = localsProvider; }
public abstract DbgDotNetValueResult Execute(DbgEvaluationInfo evalInfo, IList <DmdType> genericTypeArguments, IList <DmdType> genericMethodArguments, VariablesProvider argumentsProvider, VariablesProvider localsProvider, DbgDotNetILInterpreterState state, string typeName, string methodName, DbgEvaluationOptions options, out DmdType expectedType);
public abstract void Initialize(DbgEvaluationContext context, DbgStackFrame frame, DmdMethodBody realMethodBody, VariablesProvider argumentsProvider, VariablesProvider localsProvider, bool canFuncEval, CancellationToken cancellationToken);
public abstract void Initialize(DbgEvaluationInfo evalInfo, DmdMethodBody realMethodBody, VariablesProvider argumentsProvider, VariablesProvider localsProvider, bool canFuncEval);