Beispiel #1
0
        public FieldValueReference(EvaluationContext ctx, CorValRef thisobj, CorDebugType type, FieldDefinition field, string vname, ObjectValueFlags vflags) : base(ctx)
        {
            this.thisobj = thisobj;
            this.type    = type;
            this.field   = field;
            this.vname   = vname;
            if (field.IsStatic)
            {
                this.thisobj = null;
            }

            flags = vflags | GetFlags(field);

            loader = delegate {
                return(((CorValRef)Value).Val);
            };
        }
Beispiel #2
0
        public PropertyValueReference(EvaluationContext ctx, PropertyDefinition prop, CorValRef thisobj, CorDebugType declaringType, CorValRef[] index)
            : base(ctx)
        {
            this.prop          = prop;
            this.declaringType = declaringType;
            this.module        = declaringType.Class.Assembly;
            this.index         = index;
            if (!prop.GetMethod.IsStatic)
            {
                this.thisobj = thisobj;
            }

            flags = GetFlags(prop);

            loader = delegate {
                return(((CorValRef)Value).Val);
            };
        }
Beispiel #3
0
        public CorDebugValue NewArray(CorEvaluationContext ctx, CorDebugType elemType, int size)
        {
            return(null);
//			ManualResetEvent doneEvent = new ManualResetEvent (false);
//			CorDebugValue result = null;
//
//			EvalEventHandler completeHandler = delegate (object o, CorEvalEventArgs eargs) {
//				OnEndEvaluating ();
//				result = eargs.Eval.Result;
//				doneEvent.Set ();
//				eargs.Continue = false;
//			};
//
//			EvalEventHandler exceptionHandler = delegate (object o, CorEvalEventArgs eargs) {
//				OnEndEvaluating ();
//				result = eargs.Eval.Result;
//				doneEvent.Set ();
//				eargs.Continue = false;
//			};
//
//			try {
//				process.OnEvalComplete += completeHandler;
//				process.OnEvalException += exceptionHandler;
//
//				ctx.Eval.NewParameterizedArray (elemType, 1, 1, 0);
//				process.SetAllThreadsDebugState (CorDebugThreadState.THREAD_SUSPEND, ctx.Thread);
//				OnStartEvaluating ();
//				ClearEvalStatus ();
//				process.Continue (false);
//
//				if (doneEvent.WaitOne (ctx.Options.EvaluationTimeout, false))
//					return result;
//				else
//					return null;
//			} finally {
//				process.OnEvalComplete -= completeHandler;
//				process.OnEvalException -= exceptionHandler;
//			}
        }
Beispiel #4
0
 public FieldValueReference(EvaluationContext ctx, CorValRef thisobj, CorDebugType type, FieldDefinition field)
     : this(ctx, thisobj, type, field, null, ObjectValueFlags.Field)
 {
 }
Beispiel #5
0
 public PropertyValueReference(EvaluationContext ctx, PropertyDefinition prop, CorValRef thisobj, CorDebugType declaringType)
     : this(ctx, prop, thisobj, declaringType, null)
 {
 }