Example #1
0
        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)));
        }
Example #2
0
        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);
        }
Example #3
0
 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);