public void SetUp()
        {
            _lldbShell         = Substitute.For <ILLDBShell>();
            _breakpointManager = Substitute.For <IBreakpointManager>();
            _moduleFileLoader  = Substitute.For <IModuleFileLoader>();

            _debugger           = Substitute.For <SbDebugger>();
            _target             = Substitute.For <RemoteTarget>();
            _listenerSubscriber = Substitute.For <ILldbListenerSubscriber>();
            _process            = Substitute.For <SbProcess>();

            _debugEngineHandler = Substitute.For <IDebugEngineHandler>();
            _taskExecutor       = Substitute.For <ITaskExecutor>();
            _eventManager       = Substitute.For <IEventManager>();

            var exceptionManagerFactory =
                new LldbExceptionManager.Factory(new Dictionary <int, YetiCommon.Signal>());
            var exceptionManager = exceptionManagerFactory.Create(_process);

            _debugModuleCache = Substitute.For <IDebugModuleCache>();
            _debugProgram     = Substitute.For <IGgpDebugProgram>();

            _attachedProgram = new LldbAttachedProgram(
                _breakpointManager, _eventManager, _lldbShell, _moduleFileLoader,
                _debugEngineHandler, _taskExecutor, _debugProgram, _debugger, _target, _process,
                exceptionManager, _debugModuleCache, _listenerSubscriber, _remotePid);
        }
Ejemplo n.º 2
0
 DebugProgram(
     JoinableTaskContext taskContext,
     ThreadCreator threadCreator,
     DebugDisassemblyStream.Factory debugDisassemblyStreamFactory,
     DebugDocumentContext.Factory documentContextFactory,
     DebugCodeContext.Factory codeContextFactory,
     ThreadEnumFactory threadEnumFactory,
     ModuleEnumFactory moduleEnumFactory,
     CodeContextEnumFactory codeContextEnumFactory,
     IDebugEngineHandler debugEngineHandler,
     IDebugProcess2 process,
     Guid programId,
     SbProcess lldbProcess,
     RemoteTarget lldbTarget,
     IDebugModuleCache debugModuleCache,
     bool isCoreAttach)
 {
     _id                            = programId;
     _process                       = process;
     _lldbProcess                   = lldbProcess;
     _lldbTarget                    = lldbTarget;
     _threadCache                   = new Dictionary <uint, IDebugThread>();
     _isCoreAttach                  = isCoreAttach;
     _debugEngineHandler            = debugEngineHandler;
     _taskContext                   = taskContext;
     _threadCreator                 = threadCreator;
     _debugDisassemblyStreamFactory = debugDisassemblyStreamFactory;
     _documentContextFactory        = documentContextFactory;
     _codeContextFactory            = codeContextFactory;
     _threadEnumFactory             = threadEnumFactory;
     _moduleEnumFactory             = moduleEnumFactory;
     _codeContextEnumFactory        = codeContextEnumFactory;
     _debugModuleCache              = debugModuleCache;
 }
Ejemplo n.º 3
0
        public void SetUp()
        {
            var taskContext = new JoinableTaskContext();

            remoteThread = Substitute.For <RemoteThread>();
            mockThread   = Substitute.For <IDebugThread>();
            mockThread.GetRemoteThread().Returns(remoteThread);
            mockDebugEngineHandler            = Substitute.For <IDebugEngineHandler>();
            mockDebugThreadCreator            = Substitute.For <DebugProgram.ThreadCreator>();
            mockDebugDisassemblyStreamFactory = Substitute.For <DebugDisassemblyStream.Factory>();
            mockProcess = Substitute.For <IDebugProcess2>();
            var guid = new Guid();

            mockSbProcess              = Substitute.For <SbProcess>();
            mockRemoteTarget           = Substitute.For <RemoteTarget>();
            mockDocumentContextFactory = Substitute.For <DebugDocumentContext.Factory>();
            mockCodeContextFactory     = Substitute.For <DebugCodeContext.Factory>();
            threadEnumFactory          = new ThreadEnumFactory();
            moduleEnumFactory          = new ModuleEnumFactory();
            codeContextEnumFactory     = new CodeContextEnumFactory();

            mockDebugModuleCache = Substitute.For <IDebugModuleCache>();
            program = new DebugProgram.Factory(taskContext, mockDebugDisassemblyStreamFactory,
                                               mockDocumentContextFactory, mockCodeContextFactory, threadEnumFactory,
                                               moduleEnumFactory, codeContextEnumFactory)
                      .Create(mockDebugEngineHandler, mockDebugThreadCreator, mockProcess, guid,
                              mockSbProcess, mockRemoteTarget, mockDebugModuleCache, false);
        }
Ejemplo n.º 4
0
 public IGgpDebugProgram Create(IDebugEngineHandler debugEngineHandler,
                                ThreadCreator threadCreator,
                                IDebugProcess2 process, Guid programId, SbProcess lldbProcess,
                                RemoteTarget lldbTarget,
                                IDebugModuleCache debugModuleCache, bool isCoreAttach)
 {
     return(new DebugProgram(_taskContext, threadCreator,
                             _debugDisassemblyStreamFactory,
                             _documentContextFactory, _codeContextFactory, _threadsEnumFactory,
                             _moduleEnumFactory, _codeContextEnumFactory, debugEngineHandler, process,
                             programId, lldbProcess, lldbTarget, debugModuleCache, isCoreAttach));
 }
Ejemplo n.º 5
0
        public void SetUp()
        {
            var debugModuleCacheFactory = new DebugModuleCache.Factory(
                new YetiVSI.Util.SynchronousDispatcher());

            debugModuleCache = debugModuleCacheFactory.Create(
                Substitute.For <DebugModuleCache.ModuleCreator>());
            moduleAddedHandler              = Substitute.For <EventHandler <ModuleAddedEventArgs> >();
            moduleRemovedHandler            = Substitute.For <EventHandler <ModuleRemovedEventArgs> >();
            debugModuleCache.ModuleAdded   += moduleAddedHandler;
            debugModuleCache.ModuleRemoved += moduleRemovedHandler;
        }
Ejemplo n.º 6
0
        public void SetUp()
        {
            lineEntry                  = new LineEntryInfo();
            mockDocumentContext        = Substitute.For <IDebugDocumentContext2>();
            mockThread                 = Substitute.For <IDebugThread>();
            mockDocumentContextFactory = Substitute.For <DebugDocumentContext.Factory>();
            mockDocumentContextFactory.Create(lineEntry).Returns(mockDocumentContext);
            mockDebuggerStackFrame = Substitute.For <RemoteFrame>();
            mockDebuggerStackFrame.GetLineEntry().Returns(lineEntry);
            mockDebuggerStackFrame.GetPC().Returns(TEST_PC);
            mockDebuggerStackFrame.GetFunctionName().Returns(NAME);
            mockDebuggerStackFrame.GetFunctionNameWithSignature().Returns(NAME);

            mockCodeContextFactory = Substitute.For <DebugCodeContext.Factory>();
            mockExpressionFactory  = Substitute.For <DebugExpression.Factory>();
            mockModuleCache        = Substitute.For <IDebugModuleCache>();

            mockDebugEngineHandler = Substitute.For <IDebugEngineHandler>();
            mockProgram            = Substitute.For <IGgpDebugProgram>();

            taskExecutor = new TaskExecutor(new JoinableTaskContext().Factory);

            var childAdapterFactory     = new RemoteValueChildAdapter.Factory();
            var varInfoFactory          = new LLDBVariableInformationFactory(childAdapterFactory);
            var varInfoEnumFactory      = new VariableInformationEnum.Factory(taskExecutor);
            var childrenProviderFactory = new ChildrenProvider.Factory();
            var propertyFactory         =
                new DebugProperty.Factory(varInfoEnumFactory, childrenProviderFactory,
                                          Substitute.For <DebugCodeContext.Factory>(),
                                          new VsExpressionCreator(), taskExecutor);

            childrenProviderFactory.Initialize(propertyFactory.Create);
            var registerSetsBuilderFactory = new RegisterSetsBuilder.Factory(varInfoFactory);

            stackFrame = new DebugStackFrame.Factory(mockDocumentContextFactory,
                                                     childrenProviderFactory, mockCodeContextFactory, mockExpressionFactory.Create,
                                                     varInfoFactory, varInfoEnumFactory, registerSetsBuilderFactory, taskExecutor)
                         .Create(new AD7FrameInfoCreator(mockModuleCache), mockDebuggerStackFrame,
                                 mockThread, mockDebugEngineHandler, mockProgram);

            stackFrameAsync = new DebugStackFrameAsync.Factory(mockDocumentContextFactory,
                                                               childrenProviderFactory, mockCodeContextFactory, mockExpressionFactory.Create,
                                                               varInfoFactory, varInfoEnumFactory, registerSetsBuilderFactory, taskExecutor)
                              .Create(new AD7FrameInfoCreator(mockModuleCache), mockDebuggerStackFrame,
                                      mockThread, mockDebugEngineHandler, mockProgram);
        }
Ejemplo n.º 7
0
 public LldbAttachedProgram(IBreakpointManager breakpointManager, IEventManager eventManager,
                            ILLDBShell lldbShell, IModuleFileLoader moduleFileLoader,
                            IDebugEngineHandler debugEngineHandler,
                            ITaskExecutor taskExecutor, IGgpDebugProgram debugProgram,
                            SbDebugger debugger, RemoteTarget target, SbProcess process,
                            IExceptionManager exceptionManager,
                            IDebugModuleCache debugModuleCache,
                            ILldbListenerSubscriber listenerSubscriber, uint remotePid)
 {
     _debugProgram       = debugProgram;
     _breakpointManager  = breakpointManager;
     _eventManager       = eventManager;
     _lldbShell          = lldbShell;
     _moduleFileLoader   = moduleFileLoader;
     _debugEngineHandler = debugEngineHandler;
     _taskExecutor       = taskExecutor;
     _debugger           = debugger;
     _target             = target;
     _process            = process;
     _exceptionManager   = exceptionManager;
     _debugModuleCache   = debugModuleCache;
     _listenerSubscriber = listenerSubscriber;
     RemotePid           = remotePid;
 }
Ejemplo n.º 8
0
 public AD7FrameInfoCreator(IDebugModuleCache debugModuleCache)
 {
     _debugModuleCache = debugModuleCache;
 }