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);