Exemple #1
0
 public DbgEngineLocalsProviderImpl(DbgModuleReferenceProvider dbgModuleReferenceProvider, DbgDotNetExpressionCompiler expressionCompiler, DbgDotNetEngineValueNodeFactory valueNodeFactory, DbgDotNetILInterpreter dnILInterpreter)
 {
     this.dbgModuleReferenceProvider = dbgModuleReferenceProvider ?? throw new ArgumentNullException(nameof(dbgModuleReferenceProvider));
     this.expressionCompiler         = expressionCompiler ?? throw new ArgumentNullException(nameof(expressionCompiler));
     this.valueNodeFactory           = valueNodeFactory ?? throw new ArgumentNullException(nameof(valueNodeFactory));
     this.dnILInterpreter            = dnILInterpreter ?? throw new ArgumentNullException(nameof(dnILInterpreter));
 }
 public DbgDotNetValueCreator(DbgDotNetEngineValueNodeFactory valueNodeFactory, DbgDotNetILInterpreter dnILInterpreter, DbgEvaluationInfo evalInfo, DbgValueNodeEvaluationOptions nodeOptions, DbgEvaluationOptions options, byte[] assemblyBytes)
 {
     this.valueNodeFactory = valueNodeFactory;
     this.dnILInterpreter  = dnILInterpreter;
     this.evalInfo         = evalInfo;
     this.nodeOptions      = nodeOptions;
     this.options          = options;
     this.assemblyBytes    = assemblyBytes;
 }
 bool TryGetFactory(Guid guid, DbgDotNetFormatter formatter, out DbgDotNetEngineValueNodeFactory factory)
 {
     if (!toLazyFactory.TryGetValue(guid, out var lz))
     {
         factory = null;
         return(false);
     }
     factory = GetFactory(formatter, lz);
     return(true);
 }
Exemple #4
0
 public DbgDotNetValueCreator(DbgDotNetEngineValueNodeFactory valueNodeFactory, DbgDotNetILInterpreter dnILInterpreter, DbgEvaluationContext context, DbgStackFrame frame, DbgValueNodeEvaluationOptions nodeOptions, DbgEvaluationOptions options, byte[] assemblyBytes, CancellationToken cancellationToken)
 {
     this.valueNodeFactory  = valueNodeFactory;
     this.dnILInterpreter   = dnILInterpreter;
     this.context           = context;
     this.frame             = frame;
     this.nodeOptions       = nodeOptions;
     this.options           = options;
     this.assemblyBytes     = assemblyBytes;
     this.cancellationToken = cancellationToken;
 }
        public DbgEngineLanguageImpl(DbgModuleReferenceProvider dbgModuleReferenceProvider, string name, string displayName, DbgDotNetExpressionCompiler expressionCompiler, DbgMethodDebugInfoProvider dbgMethodDebugInfoProvider, IDecompiler decompiler, DbgDotNetFormatter formatter, DbgDotNetEngineValueNodeFactory valueNodeFactory, DbgDotNetILInterpreter dnILInterpreter, DbgAliasProvider dbgAliasProvider, IPredefinedEvaluationErrorMessagesHelper predefinedEvaluationErrorMessagesHelper)
        {
            if (dbgModuleReferenceProvider == null)
            {
                throw new ArgumentNullException(nameof(dbgModuleReferenceProvider));
            }
            if (formatter == null)
            {
                throw new ArgumentNullException(nameof(formatter));
            }
            if (valueNodeFactory == null)
            {
                throw new ArgumentNullException(nameof(valueNodeFactory));
            }
            if (dnILInterpreter == null)
            {
                throw new ArgumentNullException(nameof(dnILInterpreter));
            }
            if (dbgAliasProvider == null)
            {
                throw new ArgumentNullException(nameof(dbgAliasProvider));
            }
            if (predefinedEvaluationErrorMessagesHelper == null)
            {
                throw new ArgumentNullException(nameof(predefinedEvaluationErrorMessagesHelper));
            }
            Name        = name ?? throw new ArgumentNullException(nameof(name));
            DisplayName = displayName ?? throw new ArgumentNullException(nameof(displayName));
            this.dbgMethodDebugInfoProvider = dbgMethodDebugInfoProvider ?? throw new ArgumentNullException(nameof(dbgMethodDebugInfoProvider));
            this.expressionCompiler         = expressionCompiler ?? throw new ArgumentNullException(nameof(expressionCompiler));
            this.decompiler = decompiler ?? throw new ArgumentNullException(nameof(decompiler));
            var expressionEvaluator = new DbgEngineExpressionEvaluatorImpl(dbgModuleReferenceProvider, expressionCompiler, dnILInterpreter, dbgAliasProvider, predefinedEvaluationErrorMessagesHelper);

            ExpressionEvaluator               = expressionEvaluator;
            Formatter                         = new DbgEngineFormatterImpl(formatter);
            LocalsProvider                    = new DbgEngineLocalsProviderImpl(dbgModuleReferenceProvider, expressionCompiler, valueNodeFactory, dnILInterpreter, dbgAliasProvider);
            AutosProvider                     = new DbgEngineAutosProviderImpl(valueNodeFactory);
            ExceptionsProvider                = new DbgEngineExceptionsProviderImpl(valueNodeFactory);
            ReturnValuesProvider              = new DbgEngineReturnValuesProviderImpl(valueNodeFactory);
            TypeVariablesProvider             = new DbgEngineTypeVariablesProviderImpl(valueNodeFactory);
            ValueNodeFactory                  = new DbgEngineValueNodeFactoryImpl(expressionEvaluator, valueNodeFactory, formatter);
            debuggerDisplayAttributeEvaluator = expressionEvaluator;
        }
Exemple #6
0
 public DbgEngineValueNodeFactoryImpl(DbgEngineExpressionEvaluatorImpl expressionEvaluator, DbgDotNetEngineValueNodeFactory valueNodeFactory, DbgDotNetFormatter formatter)
 {
     this.expressionEvaluator = expressionEvaluator ?? throw new ArgumentNullException(nameof(expressionEvaluator));
     this.valueNodeFactory    = valueNodeFactory ?? throw new ArgumentNullException(nameof(valueNodeFactory));
     this.formatter           = formatter ?? throw new ArgumentNullException(nameof(formatter));
 }
 public DbgEngineExceptionsProviderImpl(DbgDotNetEngineValueNodeFactory valueNodeFactory) =>
 this.valueNodeFactory = valueNodeFactory ?? throw new ArgumentNullException(nameof(valueNodeFactory));
 public static DbgEngineValueNode[] CreateInternalErrorResult(this DbgDotNetEngineValueNodeFactory valueNodeFactory, DbgEvaluationInfo evalInfo)
 {
     return(new DbgEngineValueNode[] {
         valueNodeFactory.CreateError(evalInfo, errorName, PredefinedEvaluationErrorMessages.InternalDebuggerError, "<expression>", false),
     });
 }
 public static DbgEngineValueNode[] CreateInternalErrorResult(this DbgDotNetEngineValueNodeFactory valueNodeFactory, DbgEvaluationContext context, DbgStackFrame frame, CancellationToken cancellationToken)
 {
     return(new DbgEngineValueNode[] {
         valueNodeFactory.CreateError(context, frame, errorName, PredefinedEvaluationErrorMessages.InternalDebuggerError, "<expression>", false, cancellationToken),
     });
 }
Exemple #10
0
        public DbgEngineLanguageImpl(DbgModuleReferenceProvider dbgModuleReferenceProvider, string name, string displayName, DbgDotNetExpressionCompiler expressionCompiler, DbgMetadataService dbgMetadataService, IDecompiler decompiler, DbgDotNetFormatter formatter, DbgDotNetEngineValueNodeFactory valueNodeFactory)
        {
            if (dbgModuleReferenceProvider == null)
            {
                throw new ArgumentNullException(nameof(dbgModuleReferenceProvider));
            }
            if (expressionCompiler == null)
            {
                throw new ArgumentNullException(nameof(expressionCompiler));
            }
            if (formatter == null)
            {
                throw new ArgumentNullException(nameof(formatter));
            }
            Name                    = name ?? throw new ArgumentNullException(nameof(name));
            DisplayName             = displayName ?? throw new ArgumentNullException(nameof(displayName));
            this.dbgMetadataService = dbgMetadataService ?? throw new ArgumentNullException(nameof(dbgMetadataService));
            this.decompiler         = decompiler ?? throw new ArgumentNullException(nameof(decompiler));
            var dnILInterpreter     = new DbgDotNetILInterpreterImpl();
            var expressionEvaluator = new DbgEngineExpressionEvaluatorImpl(dbgModuleReferenceProvider, expressionCompiler, dnILInterpreter);

            ExpressionEvaluator   = expressionEvaluator;
            ValueFormatter        = new DbgEngineValueFormatterImpl();
            Formatter             = new DbgEngineFormatterImpl(formatter);
            LocalsProvider        = new DbgEngineLocalsProviderImpl(dbgModuleReferenceProvider, expressionCompiler, valueNodeFactory, dnILInterpreter);
            AutosProvider         = new DbgEngineAutosProviderImpl(valueNodeFactory);
            ExceptionsProvider    = new DbgEngineExceptionsProviderImpl(valueNodeFactory);
            ReturnValuesProvider  = new DbgEngineReturnValuesProviderImpl(valueNodeFactory);
            TypeVariablesProvider = new DbgEngineTypeVariablesProviderImpl(valueNodeFactory);
            ValueNodeFactory      = new DbgEngineValueNodeFactoryImpl(expressionEvaluator, valueNodeFactory, formatter);
        }