public IDebuggerValue Create(IDebuggerType type) { return(debugger.Dispatcher.UI(() => { using (var eval = debugger.CreateEvalUI(this)) return eval.Create(type); })); }
public IDebuggerValue CreateArray(IDebuggerType elementType, int length) { return(debugger.Dispatcher.UI(() => { using (var eval = debugger.CreateEvalUI(this)) return eval.CreateArray(elementType, length); })); }
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); })); }
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)); });
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)); }
public IDebuggerValue ReadStaticField(IDebuggerType type, uint token) { return type.ReadStaticField(this, token); }
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); }); }
public IDebuggerValue ReadStaticField(IDebuggerType type, IDebuggerField field) => type.ReadStaticField(this, field);
public void WriteType(ISyntaxHighlightOutput output, IDebuggerType type, TypeFormatFlags flags) { debugger.Dispatcher.UI(() => value.WriteType(new OutputConverter(output), ((DebuggerType)type).CorType, (TypePrinterFlags)flags)); }
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); }); }
public IDebuggerValue ReadStaticField(IDebuggerType type, uint token) => type.ReadStaticField(this, token);
public IDebuggerValue ReadStaticField(IDebuggerType type, string name, bool checkBaseClasses) { return type.ReadStaticField(this, name, checkBaseClasses); }
public IDebuggerValue ReadStaticField(IDebuggerType type, string name, bool checkBaseClasses) { return(type.ReadStaticField(this, name, checkBaseClasses)); }
public IDebuggerValue CreateBox(IDebuggerType type) => debugger.Dispatcher.UI(() => CreateNoConstructorUI(type));
public void WriteType(IOutputWriter output, IDebuggerType type, TypeFormatFlags flags) => debugger.Dispatcher.UI(() => CorValue.WriteType(new OutputWriterConverter(output), ((DebuggerType)type).CorType, (TypePrinterFlags)flags));
public IDebuggerValue ReadStaticField(IDebuggerType type, IDebuggerField field) { return type.ReadStaticField(this, field); }
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); }
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); }); }
public IDebuggerValue CreateArray(IDebuggerType elementType, int length) { return debugger.Dispatcher.UI(() => { var res = eval.CreateSZArray(((DebuggerType)elementType).CorType, length); return new DebuggerValue(debugger, res); }); }
public IDebuggerValue CreateBox(IDebuggerType type) { return debugger.Dispatcher.UI(() => CreateNoConstructorUI(type)); }
public IDebuggerValue CreateArray(IDebuggerType elementType, int length) => debugger.Dispatcher.UI(() => { var res = eval.CreateSZArray(((DebuggerType)elementType).CorType, length); return(new DebuggerValue(debugger, res)); });
public IDebuggerValue CreateBox(IDebuggerType type) => debugger.Dispatcher.UI(() => { using (var eval = debugger.CreateEvalUI(this)) return(eval.CreateBox(type)); });
public IDebuggerValue Create(IDebuggerType type) { return debugger.Dispatcher.UI(() => { using (var eval = debugger.CreateEvalUI(this)) return eval.Create(type); }); }
public IDebuggerValue ReadStaticField(IDebuggerType type, uint token) { return(type.ReadStaticField(this, token)); }
public IDebuggerValue CreateArray(IDebuggerType elementType, int length) { return debugger.Dispatcher.UI(() => { using (var eval = debugger.CreateEvalUI(this)) return eval.CreateArray(elementType, length); }); }
public IDebuggerValue ReadStaticField(IDebuggerType type, IDebuggerField field) { return(type.ReadStaticField(this, field)); }