示例#1
0
        internal DkmClrValue(
            object value,
            object hostObjectValue,
            DkmClrType type,
            string alias,
            IDkmClrFormatter formatter,
            DkmEvaluationResultFlags evalFlags,
            DkmClrValueFlags valueFlags,
            DkmEvaluationResultCategory category = default(DkmEvaluationResultCategory),
            DkmEvaluationResultAccessType access = default(DkmEvaluationResultAccessType),
            ulong nativeComPointer = 0)
        {
            Debug.Assert(!type.GetLmrType().IsTypeVariables() || (valueFlags == DkmClrValueFlags.Synthetic));
            Debug.Assert((alias == null) || evalFlags.Includes(DkmEvaluationResultFlags.HasObjectId));
            // The "real" DkmClrValue will always have a value of zero for null pointers.
            Debug.Assert(!type.GetLmrType().IsPointer || (value != null));

            this.RawValue         = value;
            this.HostObjectValue  = hostObjectValue;
            this.Type             = type;
            _formatter            = formatter;
            this.Alias            = alias;
            this.EvalFlags        = evalFlags;
            this.ValueFlags       = valueFlags;
            this.Category         = category;
            this.Access           = access;
            this.NativeComPointer = nativeComPointer;
        }
示例#2
0
        internal DkmClrValue(
            object value,
            object hostObjectValue,
            DkmClrType type,
            string alias,
            DkmEvaluationResultFlags evalFlags,
            DkmClrValueFlags valueFlags,
            DkmEvaluationResultCategory category = default(DkmEvaluationResultCategory),
            DkmEvaluationResultAccessType access = default(DkmEvaluationResultAccessType),
            ulong nativeComPointer = 0)
        {
            Debug.Assert((type == null) || !type.GetLmrType().IsTypeVariables() || (valueFlags == DkmClrValueFlags.Synthetic));
            Debug.Assert((alias == null) || evalFlags.Includes(DkmEvaluationResultFlags.HasObjectId));
            // The "real" DkmClrValue will always have a value of zero for null pointers.
            Debug.Assert((type == null) || !type.GetLmrType().IsPointer || (value != null));

            this.RawValue = value;
            this.HostObjectValue = hostObjectValue;
            this.Type = type;
            this.Alias = alias;
            this.EvalFlags = evalFlags;
            this.ValueFlags = valueFlags;
            this.Category = category;
            this.Access = access;
            this.NativeComPointer = nativeComPointer;
        }
示例#3
0
 internal DkmClrValue CreateDkmClrValue(
     object value,
     DkmClrType type,
     string alias = null,
     DkmEvaluationResultFlags evalFlags = DkmEvaluationResultFlags.None,
     DkmClrValueFlags valueFlags        = DkmClrValueFlags.None)
 {
     return(new DkmClrValue(
                value,
                DkmClrValue.GetHostObjectValue(type.GetLmrType(), value),
                type,
                alias,
                _formatter,
                evalFlags,
                valueFlags));
 }
示例#4
0
 internal DkmClrValue CreateDkmClrValue(
     object value,
     DkmClrType type,
     string alias = null,
     DkmEvaluationResultFlags evalFlags = DkmEvaluationResultFlags.None,
     DkmClrValueFlags valueFlags        = DkmClrValueFlags.None,
     ulong nativeComPointer             = 0)
 {
     return(new DkmClrValue(
                value,
                DkmClrValue.GetHostObjectValue(type.GetLmrType(), value),
                type,
                alias,
                evalFlags,
                valueFlags,
                nativeComPointer: nativeComPointer));
 }
示例#5
0
 internal DkmClrValue CreateDkmClrValue(
     object value,
     Type type    = null,
     string alias = null,
     DkmEvaluationResultFlags evalFlags = DkmEvaluationResultFlags.None,
     DkmClrValueFlags valueFlags        = DkmClrValueFlags.None)
 {
     if (type == null)
     {
         type = value.GetType();
     }
     return(new DkmClrValue(
                value,
                DkmClrValue.GetHostObjectValue((TypeImpl)type, value),
                new DkmClrType((TypeImpl)type),
                alias,
                evalFlags,
                valueFlags));
 }
示例#6
0
        internal DkmClrValue(
            object value,
            object hostObjectValue,
            DkmClrType type,
            string alias,
            IDkmClrFormatter formatter,
            DkmEvaluationResultFlags evalFlags,
            DkmClrValueFlags valueFlags)
        {
            Debug.Assert(!type.GetLmrType().IsTypeVariables() || (valueFlags == DkmClrValueFlags.Synthetic));
            Debug.Assert((alias == null) || evalFlags.Includes(DkmEvaluationResultFlags.HasObjectId));
            // The "real" DkmClrValue will always have a value of zero for null pointers.
            Debug.Assert(!type.GetLmrType().IsPointer || (value != null));

            _rawValue            = value;
            this.HostObjectValue = hostObjectValue;
            this.Type            = type;
            _formatter           = formatter;
            this.Alias           = alias;
            this.EvalFlags       = evalFlags;
            this.ValueFlags      = valueFlags;
        }
示例#7
0
        internal DkmClrValue(
            object value,
            object hostObjectValue,
            DkmClrType type,
            string alias,
            IDkmClrFormatter formatter,
            DkmEvaluationResultFlags evalFlags,
            DkmClrValueFlags valueFlags,
            DkmInspectionContext inspectionContext)
        {
            Debug.Assert(!type.GetLmrType().IsTypeVariables() || (valueFlags == DkmClrValueFlags.Synthetic));
            Debug.Assert((alias == null) || evalFlags.Includes(DkmEvaluationResultFlags.HasObjectId));
            // The "real" DkmClrValue will always have a value of zero for null pointers.
            Debug.Assert(!type.GetLmrType().IsPointer || (value != null));

            _rawValue = value;
            this.HostObjectValue = hostObjectValue;
            this.Type = type;
            _formatter = formatter;
            this.Alias = alias;
            this.EvalFlags = evalFlags;
            this.ValueFlags = valueFlags;
            this.InspectionContext = inspectionContext ?? new DkmInspectionContext(formatter, DkmEvaluationFlags.None, 10);
        }