public BreakpointErrorPair CreateFunctionOffsetBreakpoint(string symbolName, uint offset) { var request = new CreateFunctionOffsetBreakpointRequest() { Target = grpcSbTarget, SymbolName = symbolName, Offset = offset }; CreateFunctionOffsetBreakpointResponse response = null; if (connection.InvokeRpc(() => { response = client.CreateFunctionOffsetBreakpoint(request); })) { if (response.Breakpoint != null && response.Breakpoint.Id != 0) { return(new BreakpointErrorPair( breakpointFactory.Create(connection, response.Breakpoint), EnumUtil.ConvertTo <DebuggerApi.BreakpointError>(response.Error))); } } return(new BreakpointErrorPair(null, EnumUtil.ConvertTo <DebuggerApi.BreakpointError>(response.Error))); }
private GrpcValueInfo CreateValueInfoAndUpdateStores(RemoteValue remoteValue) { if (remoteValue == null) { return(null); } string expressionPath; var hasExpressionPath = remoteValue.GetExpressionPath(out expressionPath); var valueInfo = new GrpcValueInfo { ExpressionPath = expressionPath ?? "", HasExpressionPath = hasExpressionPath, NumChildren = remoteValue.GetNumChildren(), Summary = remoteValue.GetSummary() ?? "", TypeName = remoteValue.GetTypeName() ?? "", Value = remoteValue.GetValue() ?? "", ValueType = EnumUtil.ConvertTo <Debugger.Common.ValueType>( remoteValue.GetValueType()), IsPointerType = remoteValue.TypeIsPointerType(), ByteSize = remoteValue.GetByteSize(), }; var typeInfo = remoteValue.GetTypeInfo(); if (typeInfo != null) { valueInfo.Type = GrpcFactoryUtils.CreateType( typeInfo, typeStore.AddObject(typeInfo)); } return(valueInfo); }
private RemoteValue CreateCachedValue( RemoteValue remoteProxy, GrpcValueInfo info, RemoteValue addressOf, DebuggerApi.ValueFormat format) => cachedValueFactory.Create( remoteProxy, addressOf, info.Type != null && info.Type.Id != 0 ? typeFactory.Create(connection, info.Type) : null, info.ExpressionPath, info.HasExpressionPath, info.NumChildren, info.Summary, info.TypeName, info.Value, EnumUtil.ConvertTo <DebuggerApi.ValueType>(info.ValueType), info.IsPointerType, format, info.ByteSize);