public override Task <EvaluateExpressionLldbEvalResponse> EvaluateExpressionLldbEval( EvaluateExpressionLldbEvalRequest request, ServerCallContext context) { var value = valueStore.GetObject(request.Value.Id); IDictionary <string, SbValue> contextValues = new Dictionary <string, SbValue>(); if (request.ContextVariables != null) { foreach (var contextVariable in request.ContextVariables) { var val = valueStore.GetObject(contextVariable.Value.Id); if (val != null) { contextValues.Add(contextVariable.Name, val.GetSbValue()); } } } var result = value.EvaluateExpressionLldbEval(request.Expression, contextValues); var response = new EvaluateExpressionLldbEvalResponse(); if (result != null) { response.Value = GrpcFactoryUtils.CreateValue(result, valueStore.AddObject(result)); } return(Task.FromResult(response)); }
public async Task <RemoteValue> EvaluateExpressionLldbEvalAsync( string expression, IDictionary <string, RemoteValue> contextVariables = null) { EvaluateExpressionLldbEvalRequest request = new EvaluateExpressionLldbEvalRequest { Value = grpcSbValue, Expression = expression }; if (contextVariables != null) { foreach (var variable in contextVariables) { request.ContextVariables.Add( new ContextVariable { Name = variable.Key, Value = variable.Value.GrpcValue }); } } EvaluateExpressionLldbEvalResponse response = null; if (await connection.InvokeRpcAsync(async() => { response = await client.EvaluateExpressionLldbEvalAsync(request); })) { if (response.Value != null && response.Value.Id != 0) { return(valueFactory.Create(connection, response.Value)); } } return(null); }
public override Task <EvaluateExpressionLldbEvalResponse> EvaluateExpressionLldbEval( EvaluateExpressionLldbEvalRequest request, ServerCallContext context) { RemoteFrame frame = frameStore.GetObject(request.Frame.Id); RemoteValue value = frame.EvaluateExpressionLldbEval(request.Expression); var response = new EvaluateExpressionLldbEvalResponse(); if (value != null) { response.Value = GrpcFactoryUtils.CreateValue(value, valueStore.AddObject(value)); } return(Task.FromResult(response)); }
public async Task <RemoteValue> EvaluateExpressionLldbEvalAsync(string text) { EvaluateExpressionLldbEvalResponse response = null; if (await connection.InvokeRpcAsync(async delegate { var request = new EvaluateExpressionLldbEvalRequest() { Frame = grpcSbFrame, Expression = text }; response = await client.EvaluateExpressionLldbEvalAsync(request); })) { if (response.Value != null && response.Value.Id != 0) { return(valueFactory.Create(connection, response.Value)); } } return(null); }