Beispiel #1
0
 public SbProcessStub(RemoteTarget target, SbListener listener, ulong pid)
 {
     this.target   = target;
     this.listener = listener;
     this.pid      = pid;
     signalStub    = new SbUnixSignalsStub();
 }
Beispiel #2
0
        public SbProcess AttachToProcessWithID(SbListener listener, ulong pid, out SbError error)
        {
            var request = new AttachToProcessWithIDRequest()
            {
                Target   = grpcSbTarget,
                Listener = new GrpcSbListener()
                {
                    Id = listener.GetId()
                },
                Pid = pid,
            };
            AttachToProcessWithIDResponse response = null;

            if (connection.InvokeRpc(() =>
            {
                response = client.AttachToProcessWithID(request);
            }))
            {
                error = errorFactory.Create(response.Error);
                if (response.Process == null)
                {
                    return(null);
                }
                return(processFactory.Create(connection, response.Process));
            }
            var grpcError = new GrpcSbError
            {
                Success = false,
                Error   = "Rpc error while calling AttachToProcessWithId."
            };

            error = errorFactory.Create(grpcError);
            return(null);
        }
Beispiel #3
0
        public SbProcess AttachToProcessWithID(SbListener listener, ulong pid, out SbError error)
        {
            var process = new SbProcessStub(this, listener, pid);

            error = _targetAttachErrorString == null
                        ? new SbErrorStub(true)
                        : new SbErrorStub(false, _targetAttachErrorString);
            return(process);
        }
 public void SetUp()
 {
     _listener           = Substitute.For <SbListener>();
     _listenerSubscriber = Substitute.For <LldbListenerSubscriber>(_listener);
     _eventManager       =
         new LldbEventManager
         .Factory(new BoundBreakpointEnumFactory(), null)
         .Create(null, null, null,
                 null, _listenerSubscriber);
 }
Beispiel #5
0
        public EventType AddListener(SbListener listener, EventType eventMask)
        {
            var request = new AddListenerRequest
            {
                Target   = grpcSbTarget,
                Listener = new GrpcSbListener {
                    Id = listener.GetId()
                },
                EventMask = (uint)eventMask
            };
            AddListenerResponse response = null;

            if (connection.InvokeRpc(() =>
            {
                response = client.AddListener(request);
            }))
            {
                return((EventType)response.Result);
            }
            return(0);
        }
        public void SetUp()
        {
            _mockSbListener         = Substitute.For <SbListener>();
            _mockSbProcess          = Substitute.For <SbProcess>();
            _mockSbEvent            = Substitute.For <SbEvent>();
            _mockRemoteThread       = Substitute.For <RemoteThread>();
            _mockBreakpointManager  = Substitute.For <IBreakpointManager>();
            _mockDebugEngineHandler = Substitute.For <IDebugEngineHandler>();

            _mockPendingBreakpoint1 = Substitute.For <IPendingBreakpoint>();
            _mockPendingBreakpoint2 = Substitute.For <IPendingBreakpoint>();
            _mockBoundBreakpoint1   = Substitute.For <IBoundBreakpoint>();
            _mockBoundBreakpoint2   = Substitute.For <IBoundBreakpoint>();
            _mockBoundBreakpoint3   = Substitute.For <IBoundBreakpoint>();
            _mockWatchpoint         = Substitute.For <IWatchpoint>();
            _mockProgram            = Substitute.For <IGgpDebugProgram>();

            MockEvent(EventType.STATE_CHANGED, StateType.STOPPED, false);
            MockListener(_mockSbEvent, true);
            MockThread(_mockRemoteThread, StopReason.BREAKPOINT, _breakpointStopData);
            MockProcess(new List <RemoteThread> {
                _mockRemoteThread
            });
            MockBreakpointManager();

            _mockListenerSubscriber = Substitute.For <LldbListenerSubscriber>(_mockSbListener);

            var threadContext = new FakeMainThreadContext();

            _eventManager =
                new LldbEventManager
                .Factory(new BoundBreakpointEnumFactory(), threadContext.JoinableTaskContext)
                .Create(_mockDebugEngineHandler, _mockBreakpointManager, _mockProgram,
                        _mockSbProcess, _mockListenerSubscriber);

            var lldbEventManager = _eventManager as LldbEventManager;

            lldbEventManager?.SubscribeToChanges();
        }
Beispiel #7
0
 public EventType AddListener(SbListener listener, EventType eventMask) => eventMask;
Beispiel #8
0
 public LldbListenerSubscriber(SbListener lldbListener)
 {
     _lldbListener = lldbListener;
 }
 public SbProcess AttachToProcessWithID(SbListener listener, ulong pid, out SbError error) =>
 _sbTarget.AttachToProcessWithID(listener, pid, out error);