コード例 #1
0
ファイル: DebuggerThread.cs プロジェクト: haise0/reAtomizer
 public IDebuggerValue Create(IDebuggerType type)
 {
     return(debugger.Dispatcher.UI(() => {
         using (var eval = debugger.CreateEvalUI(this))
             return eval.Create(type);
     }));
 }
コード例 #2
0
ファイル: DebuggerThread.cs プロジェクト: haise0/reAtomizer
 public IDebuggerValue CreateArray(IDebuggerType elementType, int length)
 {
     return(debugger.Dispatcher.UI(() => {
         using (var eval = debugger.CreateEvalUI(this))
             return eval.CreateArray(elementType, length);
     }));
 }
コード例 #3
0
ファイル: DebuggerField.cs プロジェクト: formylover/dnSpy-1
 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);
     }));
 }
コード例 #4
0
ファイル: Eval.cs プロジェクト: dotfornet/dnSPy
 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));
 });
コード例 #5
0
ファイル: Eval.cs プロジェクト: dotfornet/dnSPy
        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));
        }
コード例 #6
0
ファイル: StackFrame.cs プロジェクト: levisre/dnSpy
		public IDebuggerValue ReadStaticField(IDebuggerType type, uint token) {
			return type.ReadStaticField(this, token);
		}
コード例 #7
0
ファイル: DebuggerClass.cs プロジェクト: GreenDamTan/dnSpy
		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);
			});
		}
コード例 #8
0
 public IDebuggerValue ReadStaticField(IDebuggerType type, IDebuggerField field) => type.ReadStaticField(this, field);
コード例 #9
0
ファイル: DebuggerValue.cs プロジェクト: ctguxp/dnSpy
 public void WriteType(ISyntaxHighlightOutput output, IDebuggerType type, TypeFormatFlags flags)
 {
     debugger.Dispatcher.UI(() => value.WriteType(new OutputConverter(output), ((DebuggerType)type).CorType, (TypePrinterFlags)flags));
 }
コード例 #10
0
ファイル: DebuggerField.cs プロジェクト: GreenDamTan/dnSpy
		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);
			});
		}
コード例 #11
0
 public IDebuggerValue ReadStaticField(IDebuggerType type, uint token) => type.ReadStaticField(this, token);
コード例 #12
0
ファイル: StackFrame.cs プロジェクト: levisre/dnSpy
		public IDebuggerValue ReadStaticField(IDebuggerType type, string name, bool checkBaseClasses) {
			return type.ReadStaticField(this, name, checkBaseClasses);
		}
コード例 #13
0
ファイル: StackFrame.cs プロジェクト: ctguxp/dnSpy
 public IDebuggerValue ReadStaticField(IDebuggerType type, string name, bool checkBaseClasses)
 {
     return(type.ReadStaticField(this, name, checkBaseClasses));
 }
コード例 #14
0
ファイル: Eval.cs プロジェクト: dotfornet/dnSPy
 public IDebuggerValue CreateBox(IDebuggerType type) => debugger.Dispatcher.UI(() => CreateNoConstructorUI(type));
コード例 #15
0
ファイル: DebuggerValue.cs プロジェクト: manojdjoshi/dnSpy
		public void WriteType(IOutputWriter output, IDebuggerType type, TypeFormatFlags flags) =>
			debugger.Dispatcher.UI(() => CorValue.WriteType(new OutputWriterConverter(output), ((DebuggerType)type).CorType, (TypePrinterFlags)flags));
コード例 #16
0
ファイル: StackFrame.cs プロジェクト: levisre/dnSpy
		public IDebuggerValue ReadStaticField(IDebuggerType type, IDebuggerField field) {
			return type.ReadStaticField(this, field);
		}
コード例 #17
0
ファイル: Eval.cs プロジェクト: GreenDamTan/dnSpy
		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);
		}
コード例 #18
0
ファイル: Eval.cs プロジェクト: GreenDamTan/dnSpy
		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);
			});
		}
コード例 #19
0
ファイル: Eval.cs プロジェクト: GreenDamTan/dnSpy
		public IDebuggerValue CreateArray(IDebuggerType elementType, int length) {
			return debugger.Dispatcher.UI(() => {
				var res = eval.CreateSZArray(((DebuggerType)elementType).CorType, length);
				return new DebuggerValue(debugger, res);
			});
		}
コード例 #20
0
ファイル: Eval.cs プロジェクト: GreenDamTan/dnSpy
		public IDebuggerValue CreateBox(IDebuggerType type) {
			return debugger.Dispatcher.UI(() => CreateNoConstructorUI(type));
		}
コード例 #21
0
ファイル: Eval.cs プロジェクト: dotfornet/dnSPy
 public IDebuggerValue CreateArray(IDebuggerType elementType, int length) => debugger.Dispatcher.UI(() => {
     var res = eval.CreateSZArray(((DebuggerType)elementType).CorType, length);
     return(new DebuggerValue(debugger, res));
 });
コード例 #22
0
 public IDebuggerValue CreateBox(IDebuggerType type) => debugger.Dispatcher.UI(() => {
     using (var eval = debugger.CreateEvalUI(this))
         return(eval.CreateBox(type));
 });
コード例 #23
0
 public void WriteType(IOutputWriter output, IDebuggerType type, TypeFormatFlags flags) =>
 debugger.Dispatcher.UI(() => CorValue.WriteType(new OutputWriterConverter(output), ((DebuggerType)type).CorType, (TypePrinterFlags)flags));
コード例 #24
0
ファイル: DebuggerThread.cs プロジェクト: levisre/dnSpy
		public IDebuggerValue Create(IDebuggerType type) {
			return debugger.Dispatcher.UI(() => {
				using (var eval = debugger.CreateEvalUI(this))
					return eval.Create(type);
			});
		}
コード例 #25
0
ファイル: StackFrame.cs プロジェクト: ctguxp/dnSpy
 public IDebuggerValue ReadStaticField(IDebuggerType type, uint token)
 {
     return(type.ReadStaticField(this, token));
 }
コード例 #26
0
ファイル: DebuggerThread.cs プロジェクト: levisre/dnSpy
		public IDebuggerValue CreateArray(IDebuggerType elementType, int length) {
			return debugger.Dispatcher.UI(() => {
				using (var eval = debugger.CreateEvalUI(this))
					return eval.CreateArray(elementType, length);
			});
		}
コード例 #27
0
ファイル: StackFrame.cs プロジェクト: ctguxp/dnSpy
 public IDebuggerValue ReadStaticField(IDebuggerType type, IDebuggerField field)
 {
     return(type.ReadStaticField(this, field));
 }
コード例 #28
0
ファイル: DebuggerValue.cs プロジェクト: GreenDamTan/dnSpy
		public void WriteType(ISyntaxHighlightOutput output, IDebuggerType type, TypeFormatFlags flags) {
			debugger.Dispatcher.UI(() => value.WriteType(new OutputConverter(output), ((DebuggerType)type).CorType, (TypePrinterFlags)flags));
		}