public override Task <BreakpointCreateByAddressResponse> BreakpointCreateByAddress(
            BreakpointCreateByAddressRequest request, ServerCallContext context)
        {
            if (!_targetStore.TryGetValue(request.Target.Id, out RemoteTarget target))
            {
                ErrorUtils.ThrowError(StatusCode.Internal,
                                      "Could not find target in store: " + request.Target.Id);
            }

            var response = new BreakpointCreateByAddressResponse();
            RemoteBreakpoint breakpoint = target.BreakpointCreateByAddress(request.Address);

            if (breakpoint != null)
            {
                response.Breakpoint = new GrpcSbBreakpoint {
                    Target = request.Target,
                    Id     = breakpoint.GetId(),
                };
            }
            return(Task.FromResult(response));
        }
Example #2
0
        public RemoteBreakpoint BreakpointCreateByAddress(ulong address)
        {
            var request = new BreakpointCreateByAddressRequest()
            {
                Target  = grpcSbTarget,
                Address = address,
            };
            BreakpointCreateByAddressResponse response = null;

            if (connection.InvokeRpc(() =>
            {
                response = client.BreakpointCreateByAddress(request);
            }))
            {
                if (response.Breakpoint != null && response.Breakpoint.Id != 0)
                {
                    return(breakpointFactory.Create(connection, response.Breakpoint));
                }
            }
            return(null);
        }