public void Initialize(DbgEvaluationContext context, DbgStackFrame frame, VariablesProvider argumentsProvider, VariablesProvider localsProvider, CancellationToken cancellationToken) { Debug.Assert(this.context == null); if (this.context != null) { throw new InvalidOperationException(); } this.context = context; this.frame = frame; this.cancellationToken = cancellationToken; this.argumentsProvider = argumentsProvider ?? DefaultArgumentsProvider; this.localsProvider = localsProvider ?? DefaultLocalsProvider; Debug.Assert(valuesToDispose.Count == 0); }
public void Clear(DbgDotNetValue returnValue) { context = null; frame = null; cancellationToken = default; 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; }
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);