Ejemplo n.º 1
0
 public IDebuggerValue Create(IDebuggerType type)
 {
     return(debugger.Dispatcher.UI(() => {
         using (var eval = debugger.CreateEvalUI(this))
             return eval.Create(type);
     }));
 }
Ejemplo n.º 2
0
 public IDebuggerValue CreateArray(IDebuggerType elementType, int length)
 {
     return(debugger.Dispatcher.UI(() => {
         using (var eval = debugger.CreateEvalUI(this))
             return eval.CreateArray(elementType, length);
     }));
 }
Ejemplo n.º 3
0
 public IDebuggerValue ReadStatic(IStackFrame frame, IDebuggerType type)
 {
     if (type != null)
     {
         return(type.ReadStaticField(frame, token));
     }
     return(debugger.Dispatcher.UI(() => {
         var v = field.ReadStatic(((StackFrame)frame).CorFrame);
         return v == null ? null : new DebuggerValue(debugger, v);
     }));
 }
Ejemplo n.º 4
0
 public IDebuggerValue Create(IDebuggerType type) => debugger.Dispatcher.UI(() => {
     var res = CreateNoConstructorUI(type).CorValue;
     var dv  = res.DereferencedValue;
     if (dv == null || dv.BoxedValue == null)
     {
         return(new DebuggerValue(debugger, res));
     }
     Keep(res);
     res = res.DereferencedValue.BoxedValue;
     return(new DebuggerValue(debugger, res));
 });
Ejemplo n.º 5
0
        DebuggerValue CreateNoConstructorUI(IDebuggerType type)
        {
            debugger.Dispatcher.VerifyAccess();
            int hr;
            var res = eval.CreateDontCallConstructor(((DebuggerType)type).CorType, out hr);

            if (res == null)
            {
                throw new ScriptException(string.Format("Could not create a type value: 0x{0:X8}", hr));
            }
            return((DebuggerValue)res.Value.ToDebuggerValue(debugger));
        }
Ejemplo n.º 6
0
		public IDebuggerValue ReadStaticField(IDebuggerType type, uint token) {
			return type.ReadStaticField(this, token);
		}
Ejemplo n.º 7
0
		public IDebuggerType ToType(IDebuggerType[] typeArgs) {
			return debugger.Dispatcher.UI(() => {
				// We can use Class all the time, even for value types
				var type = cls.GetParameterizedType(dndbg.COM.CorDebug.CorElementType.Class, typeArgs.ToCorTypes());
				return type == null ? null : new DebuggerType(debugger, type, token);
			});
		}
Ejemplo n.º 8
0
 public IDebuggerValue ReadStaticField(IDebuggerType type, IDebuggerField field) => type.ReadStaticField(this, field);
Ejemplo n.º 9
0
 public void WriteType(ISyntaxHighlightOutput output, IDebuggerType type, TypeFormatFlags flags)
 {
     debugger.Dispatcher.UI(() => value.WriteType(new OutputConverter(output), ((DebuggerType)type).CorType, (TypePrinterFlags)flags));
 }
Ejemplo n.º 10
0
		public IDebuggerValue ReadStatic(IStackFrame frame, IDebuggerType type) {
			if (type != null)
				return type.ReadStaticField(frame, token);
			return debugger.Dispatcher.UI(() => {
				var v = field.ReadStatic(((StackFrame)frame).CorFrame);
				return v == null ? null : new DebuggerValue(debugger, v);
			});
		}
Ejemplo n.º 11
0
 public IDebuggerValue ReadStaticField(IDebuggerType type, uint token) => type.ReadStaticField(this, token);
Ejemplo n.º 12
0
		public IDebuggerValue ReadStaticField(IDebuggerType type, string name, bool checkBaseClasses) {
			return type.ReadStaticField(this, name, checkBaseClasses);
		}
Ejemplo n.º 13
0
 public IDebuggerValue ReadStaticField(IDebuggerType type, string name, bool checkBaseClasses)
 {
     return(type.ReadStaticField(this, name, checkBaseClasses));
 }
Ejemplo n.º 14
0
 public IDebuggerValue CreateBox(IDebuggerType type) => debugger.Dispatcher.UI(() => CreateNoConstructorUI(type));
Ejemplo n.º 15
0
		public void WriteType(IOutputWriter output, IDebuggerType type, TypeFormatFlags flags) =>
			debugger.Dispatcher.UI(() => CorValue.WriteType(new OutputWriterConverter(output), ((DebuggerType)type).CorType, (TypePrinterFlags)flags));
Ejemplo n.º 16
0
		public IDebuggerValue ReadStaticField(IDebuggerType type, IDebuggerField field) {
			return type.ReadStaticField(this, field);
		}
Ejemplo n.º 17
0
		DebuggerValue CreateNoConstructorUI(IDebuggerType type) {
			debugger.Dispatcher.VerifyAccess();
			int hr;
			var res = eval.CreateDontCallConstructor(((DebuggerType)type).CorType, out hr);
			if (res == null)
				throw new ScriptException(string.Format("Could not create a type value: 0x{0:X8}", hr));
			return (DebuggerValue)res.Value.ToDebuggerValue(debugger);
		}
Ejemplo n.º 18
0
		public IDebuggerValue Create(IDebuggerType type) {
			return debugger.Dispatcher.UI(() => {
				var res = CreateNoConstructorUI(type).CorValue;
				var dv = res.DereferencedValue;
				if (dv == null || dv.BoxedValue == null)
					return new DebuggerValue(debugger, res);
				Keep(res);
				res = res.DereferencedValue.BoxedValue;
				return new DebuggerValue(debugger, res);
			});
		}
Ejemplo n.º 19
0
		public IDebuggerValue CreateArray(IDebuggerType elementType, int length) {
			return debugger.Dispatcher.UI(() => {
				var res = eval.CreateSZArray(((DebuggerType)elementType).CorType, length);
				return new DebuggerValue(debugger, res);
			});
		}
Ejemplo n.º 20
0
		public IDebuggerValue CreateBox(IDebuggerType type) {
			return debugger.Dispatcher.UI(() => CreateNoConstructorUI(type));
		}
Ejemplo n.º 21
0
 public IDebuggerValue CreateArray(IDebuggerType elementType, int length) => debugger.Dispatcher.UI(() => {
     var res = eval.CreateSZArray(((DebuggerType)elementType).CorType, length);
     return(new DebuggerValue(debugger, res));
 });
Ejemplo n.º 22
0
 public IDebuggerValue CreateBox(IDebuggerType type) => debugger.Dispatcher.UI(() => {
     using (var eval = debugger.CreateEvalUI(this))
         return(eval.CreateBox(type));
 });
Ejemplo n.º 23
0
 public void WriteType(IOutputWriter output, IDebuggerType type, TypeFormatFlags flags) =>
 debugger.Dispatcher.UI(() => CorValue.WriteType(new OutputWriterConverter(output), ((DebuggerType)type).CorType, (TypePrinterFlags)flags));
Ejemplo n.º 24
0
		public IDebuggerValue Create(IDebuggerType type) {
			return debugger.Dispatcher.UI(() => {
				using (var eval = debugger.CreateEvalUI(this))
					return eval.Create(type);
			});
		}
Ejemplo n.º 25
0
 public IDebuggerValue ReadStaticField(IDebuggerType type, uint token)
 {
     return(type.ReadStaticField(this, token));
 }
Ejemplo n.º 26
0
		public IDebuggerValue CreateArray(IDebuggerType elementType, int length) {
			return debugger.Dispatcher.UI(() => {
				using (var eval = debugger.CreateEvalUI(this))
					return eval.CreateArray(elementType, length);
			});
		}
Ejemplo n.º 27
0
 public IDebuggerValue ReadStaticField(IDebuggerType type, IDebuggerField field)
 {
     return(type.ReadStaticField(this, field));
 }
Ejemplo n.º 28
0
		public void WriteType(ISyntaxHighlightOutput output, IDebuggerType type, TypeFormatFlags flags) {
			debugger.Dispatcher.UI(() => value.WriteType(new OutputConverter(output), ((DebuggerType)type).CorType, (TypePrinterFlags)flags));
		}