public virtual IVariableInformationFactory GetVariableInformationFactory()
        {
            if (_variableInformationFactory == null)
            {
                if (GetVsiService().Options.LLDBVisualizerSupport != LLDBVisualizerSupport.DISABLED)
                {
                    var expandVariableFactory =
                        new ExpandVariableInformation.Factory(GetTaskExecutor());

                    if (GetVsiService().Options.LLDBVisualizerSupport ==
                        LLDBVisualizerSupport.ENABLED)
                    {
                        _variableInformationFactory = new NatvisVariableInformationFactory(
                            GetNatvis(), GetLldbVariableInformationFactory(),
                            expandVariableFactory);
                    }
                    else if (GetVsiService().Options.LLDBVisualizerSupport ==
                             LLDBVisualizerSupport.BUILT_IN_ONLY)
                    {
                        _variableInformationFactory =
                            new CustomVisualizerVariableInformationFactory(
                                GetNatvis(), GetLldbVariableInformationFactory(),
                                expandVariableFactory);
                    }
                }
            }

            return(_variableInformationFactory);
        }
        protected BaseDebugStackFrame(DebugDocumentContext.Factory debugDocumentContextFactory,
                                      IChildrenProviderFactory childrenProviderFactory,
                                      DebugCodeContext.Factory debugCodeContextFactory,
                                      CreateDebugExpressionDelegate createExpressionDelegate,
                                      IVariableInformationFactory varInfoFactory,
                                      IVariableInformationEnumFactory varInfoEnumFactory,
                                      AD7FrameInfoCreator ad7FrameInfoCreator,
                                      IRegisterSetsBuilder registerSetsBuilder,
                                      IDebugEngineHandler debugEngineHandler, RemoteFrame frame,
                                      IDebugThread2 thread, IGgpDebugProgram debugProgram,
                                      ITaskExecutor taskExecutor)
        {
            this.debugDocumentContextFactory = debugDocumentContextFactory;
            this._childrenProviderFactory    = childrenProviderFactory;
            this.debugCodeContextFactory     = debugCodeContextFactory;
            this.createExpressionDelegate    = createExpressionDelegate;
            this.varInfoFactory      = varInfoFactory;
            this.varInfoEnumFactory  = varInfoEnumFactory;
            this.ad7FrameInfoCreator = ad7FrameInfoCreator;
            this.registerSetsBuilder = registerSetsBuilder;
            this.debugEngineHandler  = debugEngineHandler;
            this.debugProgram        = debugProgram;
            lldbFrame          = frame;
            this.thread        = thread;
            this._taskExecutor = taskExecutor;

            documentContext = new Lazy <IDebugDocumentContext2>(() => CreateDocumentContext());
            codeContext     = new Lazy <IDebugCodeContext2>(() => CreateCodeContext());
        }
Beispiel #3
0
 public NatvisVariableInformationFactory(NatvisExpander natvisExpander,
                                         IVariableInformationFactory varInfoFactory,
                                         ExpandVariableInformation.Factory
                                         expandVariableFactory)
 {
     _natvisExpander        = natvisExpander;
     _varInfoFactory        = varInfoFactory;
     _expandVariableFactory = expandVariableFactory;
 }
 public FrameVariablesProvider(
     IRegisterSetsBuilder registerSetsBuilder,
     RemoteFrame lldbFrame,
     IVariableInformationFactory varInfoFactory)
 {
     _registerSetsBuilder = registerSetsBuilder;
     _lldbFrame           = lldbFrame;
     _varInfoFactory      = varInfoFactory;
 }
Beispiel #5
0
        public void SetUp()
        {
            _mockRemoteFrame = Substitute.For <RemoteFrame>();
            var childAdapterFactory = new RemoteValueChildAdapter.Factory();

            _varInfoFactory      = new LLDBVariableInformationFactory(childAdapterFactory);
            _registerSetsBuilder = new RegisterSetsBuilder.Factory(_varInfoFactory)
                                   .Create(_mockRemoteFrame);

            _frameVariablesProvider = new FrameVariablesProvider(_registerSetsBuilder,
                                                                 _mockRemoteFrame, _varInfoFactory);

            SetupAllVariables();
        }
 public Factory(DebugDocumentContext.Factory debugDocumentContextFactory,
                IChildrenProviderFactory childrenProviderFactory,
                DebugCodeContext.Factory debugCodeContextFactory,
                CreateDebugExpressionDelegate createExpressionDelegate,
                IVariableInformationFactory varInfoFactory,
                IVariableInformationEnumFactory varInfoEnumFactory,
                RegisterSetsBuilder.Factory registerSetsBuilderFactory,
                ITaskExecutor taskExecutor)
 {
     this.debugDocumentContextFactory = debugDocumentContextFactory;
     this.childrenProviderFactory     = childrenProviderFactory;
     this.debugCodeContextFactory     = debugCodeContextFactory;
     this.createExpressionDelegate    = createExpressionDelegate;
     this.varInfoFactory             = varInfoFactory;
     this.varInfoEnumFactory         = varInfoEnumFactory;
     this.registerSetsBuilderFactory = registerSetsBuilderFactory;
     this.taskExecutor = taskExecutor;
 }
 DebugStackFrameAsync(DebugDocumentContext.Factory debugDocumentContextFactory,
                      IChildrenProviderFactory childrenProviderFactory,
                      DebugCodeContext.Factory debugCodeContextFactory,
                      CreateDebugExpressionDelegate createExpressionDelegate,
                      IVariableInformationFactory varInfoFactory,
                      IVariableInformationEnumFactory varInfoEnumFactory,
                      AD7FrameInfoCreator ad7FrameInfoCreator,
                      IRegisterSetsBuilder registerSetsBuilder,
                      IDebugEngineHandler debugEngineHandler, RemoteFrame frame,
                      IDebugThread2 thread, IGgpDebugProgram debugProgram,
                      ITaskExecutor taskExecutor) : base(debugDocumentContextFactory,
                                                         childrenProviderFactory,
                                                         debugCodeContextFactory,
                                                         createExpressionDelegate,
                                                         varInfoFactory, varInfoEnumFactory,
                                                         ad7FrameInfoCreator,
                                                         registerSetsBuilder,
                                                         debugEngineHandler, frame, thread,
                                                         debugProgram, taskExecutor)
 {
 }
 private RegisterSetsBuilder(IVariableInformationFactory varInfoFactory, RemoteFrame frame)
 {
     this.varInfoFactory = varInfoFactory;
     this.frame          = frame;
 }
 public Factory(IVariableInformationFactory varInfoFactory)
 {
     this.varInfoFactory = varInfoFactory;
 }
Beispiel #10
0
 public VarInfoBuilder(IVariableInformationFactory varInfoFactory)
 {
     this.varInfoFactory = varInfoFactory;
 }