// Returns the currently selected thread.
        public override Task <GetSelectedThreadResponse> GetSelectedThread(
            GetSelectedThreadRequest request, ServerCallContext context)
        {
            var sbProcess    = GrpcLookupUtils.GetProcess(request.Process, processStore);
            var sbThread     = sbProcess.GetSelectedThread();
            var grpcSbThread = new GrpcSbThread();

            if (sbThread != null)
            {
                var remoteThread = remoteThreadFactory.Create(sbThread);
                grpcSbThread.Id = threadStore.AddObject(remoteThread);
            }
            return(Task.FromResult(new GetSelectedThreadResponse {
                Thread = grpcSbThread
            }));
        }
Ejemplo n.º 2
0
        public RemoteThread GetSelectedThread()
        {
            var request = new GetSelectedThreadRequest
            {
                Process = grpcSbProcess
            };
            GetSelectedThreadResponse response = null;

            if (connection.InvokeRpc(() =>
            {
                response = client.GetSelectedThread(request);
            }))
            {
                return(threadFactory.Create(connection, response.Thread));
            }
            return(null);
        }