Example #1
0
        public DebugProperty GetDebugProperty()
        {
            IDebugProperty property = null;

            pdsf.GetDebugProperty(out property);
            return(new DebugProperty(property));
        }
Example #2
0
 internal EnumDebugPropertyTypes(IEnumDebugTypes enumTypes, IDebugProperty parent, IDebugValue containerValue, CommonExpressionEvaluator evaluator)
 {
     this.enumTypes      = enumTypes;
     this.parent         = parent;
     this.containerValue = containerValue;
     this.evaluator      = evaluator;
 }
Example #3
0
        public virtual BaseProperty MakeProperty(IDebugPropertySymbol symbol, IDebugProperty parent, IDebugValue containerValue)
        {
            IDebugMethodSymbol getter = symbol.GetGetter();
            IDebugValue        value  = null;

            if (getter != null /*&& (context.flags & EvaluationFlags.NoFuncEval) == 0*/)
            {
                IEnumSymbol parameters = getter.GetParameters();
                if (parameters == null || parameters.Count == 0)
                {
                    IDebugValue[] arguments = null;
                    if ((getter.Modifiers & SymbolModifiers.Static) == 0)
                    {
                        arguments = new IDebugValue[] { containerValue }
                    }
                    ;
                    else
                    {
                        arguments = new IDebugValue[0];
                    }
                    value = getter.Evaluate(containerValue, arguments);
                }
            }
            return(this.MakeProperty(symbol.Name, symbol.Type, value, parent));
        }
Example #4
0
 internal EnumDebugPropertySymbols(IEnumSymbol enumSymbols, IDebugProperty parent, IDebugValue containerValue, CommonExpressionEvaluator evaluator)
 {
     this.enumSymbols    = enumSymbols;
     this.parent         = parent;
     this.containerValue = containerValue;
     this.evaluator      = evaluator;
 }
Example #5
0
        public void Next(
            System.UInt32 celt,
            DEBUG_PROPERTY_INFO [] rgelt,
            out System.Int32 pceltFetched)
        {
            pceltFetched = 0;
            if (rgelt == null)
            {
                rgelt = new DEBUG_PROPERTY_INFO[celt];
            }

            for (ulong i = 0; i < celt; i++)
            {
                IDebugProperty debugProperty = null;
                debugProperty = this.enumDebugProperty.Current;
                if (null != debugProperty)
                {
                    CDebugProperty prop = new CDebugProperty(debugProperty);
                    if (null != prop)
                    {
                        prop.GetPropertyInfo(this.dwFields, this.dwRadix, this.timeout, null, 0, out rgelt[i]);
                    }
                }

                pceltFetched++;

                bool success = false;
                success = this.enumDebugProperty.MoveNext();
                if (success == false && i < celt - 1)
                {
                    break;
                }
            }
        }
Example #6
0
 public BaseProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent, CommonExpressionEvaluator evaluator)
 {
     this.name       = name;
     this.staticType = staticType;
     this.parent     = parent;
     this.value      = value;
     this.evaluator  = evaluator;
 }
Example #7
0
 public TypeProperty(IDebugType type, IDebugProperty parent, IDebugValue containerValue, CommonExpressionEvaluator evaluator)
 {
     this.type           = type;
     this.parent         = parent;
     this.name           = this.type.FullName;
     this.containerValue = containerValue;
     this.evaluator      = evaluator;
 }
Example #8
0
 internal EnumArrayIndices(IEnumDebugValues enumValues, IDebugType elementType, IDebugProperty parent, IDebugValue containerValue, CommonExpressionEvaluator evaluator)
 {
     this.enumValues     = enumValues;
     this.elementType    = elementType;
     this.parent         = parent;
     this.containerValue = containerValue;
     this.index          = 0;
     this.evaluator      = evaluator;
 }
Example #9
0
 public EnumProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent, CommonExpressionEvaluator evaluator)
     : base(name, staticType, value, parent, evaluator)
 {
     this.enumType = value.RuntimeType() as IDebugEnumType;
     if (this.enumType == null)
     {
         this.enumType = staticType as IDebugEnumType;
     }
 }
Example #10
0
        public virtual BaseProperty MakeProperty(IDebugFieldSymbol symbol, IDebugProperty parent, IDebugValue containerValue)
        {
            IDebugType  staticType = symbol.Type;
            IDebugValue value      = symbol.GetValue(containerValue);

            if (symbol.Name == "this value: ")
            {
                return(this.MakeProperty("this", symbol.Type, value, parent));
            }
            return(this.MakeProperty(symbol.Name, symbol.Type, value, parent));
        }
Example #11
0
        // Get the parent of this property
        public void GetParent(out IDebugProperty2 ppParent)
        {
            ppParent = null;
            if (null == this.parent)
            {
                IDebugProperty parentProp = null;
                parentProp = this.prop.Parent;

                if (null != parentProp)
                {
                    this.parent = new CDebugProperty(parentProp);
                }
            }

            if (null != this.parent)
            {
                ppParent = this.parent;
            }
        }
Example #12
0
        // IDebugParsedExpression
        public void EvaluateSync(uint dwEvalFlags, uint dwTimeout, IDebugSymbolProvider pSymbolProvider,
                                 IDebugAddress pAddress, IDebugBinder pBinder, String bstrResultType, out IDebugProperty2 ppResult)
        {
            ppResult = null;
            IDebugContext context = new CDebugContext(pSymbolProvider, pAddress, pBinder);

            if (context != null)
            {
                IDebugProperty prop = null;
                prop = this.EvaluateExpression(dwEvalFlags, dwTimeout, context, bstrResultType);

                if (prop != null)
                {
                    CDebugProperty debugProp = new CDebugProperty(prop);
                    if (null != debugProp)
                    {
                        ppResult = debugProp as IDebugProperty2;
                    }
                }
            }
        }
Example #13
0
        public HRESULT GetMethodProperty(
            IDebugSymbolProvider pSymbolProvider,
            IDebugAddress pAddress,
            IDebugBinder pBinder,
            bool includeHiddenLocals,
            out IDebugProperty2 ppproperty
            )
        {
            HRESULT hr = (int)HResult.S_OK;

            ppproperty = null;
            IDebugContext context = new CDebugContext(pSymbolProvider, pAddress, pBinder);

            if (context != null)
            {
                IDebugProperty prop = null;
                prop = this.cciEvaluator.GetCurrentMethodProperty((IDebugMethodSymbol)context.GetContainer());

                if (null != prop)
                {
                    CDebugProperty debugProp = new CDebugProperty(prop);
                    if (null != debugProp)
                    {
                        ppproperty = debugProp as IDebugProperty2;
                    }
                    else
                    {
                        hr = (HRESULT)HResult.E_OUTOFMEMORY;
                    }
                }
            }
            else
            {
                hr = (HRESULT)HResult.E_OUTOFMEMORY;
            }

            return(hr);
        }
Example #14
0
        private static IDebugProperty[] MapDebugProperties(robocode.control.snapshot.IDebugProperty[] debugProperties)
        {
            if (debugProperties == null)
            {
                return null;
            }

            IDebugProperty[] mappedProperties = new IDebugProperty[debugProperties.Length];

            for (int i = 0; i < debugProperties.Length; i++)
            {
                mappedProperties[i] = MapDebugProperty(debugProperties[i]);
            }
            return mappedProperties;
        }
Example #15
0
 public ArrayProperty(string name, IDebugType staticType, IDebugValue containerValue, IDebugProperty parent, CommonExpressionEvaluator evaluator)
     : base(name, staticType, containerValue, parent, evaluator)
 {
     arrayValue = (IDebugArrayValue)this.value;
 }
Example #16
0
 public virtual BaseProperty MakePrimitiveTypeProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent){
   return new PrimitiveTypeProperty(name, staticType, value, parent, this);
 }
Example #17
0
 internal EnumArrayIndices(IEnumDebugValues enumValues, IDebugType elementType, IDebugProperty parent, IDebugValue containerValue, CommonExpressionEvaluator evaluator){
   this.enumValues = enumValues;
   this.elementType = elementType;
   this.parent = parent;
   this.containerValue = containerValue;
   this.index = 0;
   this.evaluator = evaluator;
 }
Example #18
0
 public TypeProperty(IDebugType type, IDebugProperty parent, IDebugValue containerValue, CommonExpressionEvaluator evaluator){
   this.type = type;
   this.parent = parent;
   this.name = this.type.FullName;
   this.containerValue = containerValue;
   this.evaluator = evaluator;
 }
Example #19
0
 public EnumProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent, CommonExpressionEvaluator evaluator)
   : base(name, staticType, value, parent, evaluator){
   this.enumType = value.RuntimeType() as IDebugEnumType;
   if (this.enumType == null)
     this.enumType = staticType as IDebugEnumType;
 }
Example #20
0
 public FlexArrayProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent, CommonExpressionEvaluator evaluator)
   : base(name, staticType, value, parent, evaluator){
 }
Example #21
0
 public int GetParent(out IDebugProperty ppDebugProp)
 {
     ppDebugProp = (IDebugProperty)null;
     return(VSConstants.E_NOTIMPL);
 }
Example #22
0
 public StructuralProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent, CommonExpressionEvaluator evaluator)
     : base(name, staticType, value, parent, evaluator)
 {
     if (this.value != null)
     {
         this.structuralType = this.value.RuntimeType() as IDebugStructuralType;
     }
     else
     {
         this.structuralType = staticType as IDebugStructuralType;
     }
 }
Example #23
0
 public BaseProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent, CommonExpressionEvaluator evaluator){
   this.name = name;
   this.staticType = staticType;
   this.parent = parent;
   this.value = value;
   this.evaluator = evaluator;
 }
Example #24
0
 public StructuralProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent, CommonExpressionEvaluator evaluator)
   : base(name, staticType, value, parent, evaluator){
   if (this.value != null)
     this.structuralType = this.value.RuntimeType() as IDebugStructuralType;
   else
     this.structuralType = staticType as IDebugStructuralType;
 }
Example #25
0
 public CDebugProperty(IDebugProperty prop)
 {
     this.prop   = prop;
     this.parent = null;
 }
Example #26
0
 public ArrayProperty(string name, IDebugType staticType, IDebugValue containerValue, IDebugProperty parent, CommonExpressionEvaluator evaluator)
   : base(name, staticType, containerValue, parent, evaluator){
   arrayValue = (IDebugArrayValue)this.value;
 }
Example #27
0
 public virtual BaseProperty MakeFlexArrayProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent){
   return new FlexArrayProperty(name, staticType, value, parent, this);
 }
Example #28
0
 internal EnumDebugPropertySymbols(IEnumSymbol enumSymbols, IDebugProperty parent, IDebugValue containerValue, CommonExpressionEvaluator evaluator){
   this.enumSymbols = enumSymbols;
   this.parent = parent;
   this.containerValue = containerValue;
   this.evaluator = evaluator;
 }
Example #29
0
 public virtual BaseProperty MakeProperty(IDebugPropertySymbol symbol, IDebugProperty parent, IDebugValue containerValue){
   IDebugMethodSymbol getter = symbol.GetGetter();
   IDebugValue value = null;
   if (getter != null /*&& (context.flags & EvaluationFlags.NoFuncEval) == 0*/){
     IEnumSymbol parameters = getter.GetParameters();
     if (parameters == null || parameters.Count == 0){
       IDebugValue[] arguments = null;
       if ((getter.Modifiers & SymbolModifiers.Static) == 0)
         arguments = new IDebugValue[]{containerValue};
       else
         arguments = new IDebugValue[0];
       value = getter.Evaluate(containerValue, arguments);
     }
   }
   return this.MakeProperty(symbol.Name, symbol.Type, value, parent);
 }
Example #30
0
 internal EnumDebugPropertyTypes(IEnumDebugTypes enumTypes, IDebugProperty parent, IDebugValue containerValue, CommonExpressionEvaluator evaluator){
   this.enumTypes = enumTypes;
   this.parent = parent;
   this.containerValue = containerValue;
   this.evaluator = evaluator;
 }
Example #31
0
 public virtual BaseProperty MakeFlexArrayProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent)
 {
     return(new FlexArrayProperty(name, staticType, value, parent, this));
 }
Example #32
0
    // Override these factory methods to create language specfic IDebugProperty implementations
    public virtual BaseProperty MakeProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent){
      IDebugType type = null;
      if (value == null || value.IsNullReference() || staticType.Kind == TypeKind.Stream 
        || staticType.Kind == TypeKind.FlexArray || staticType.Kind == TypeKind.Enum)
        type = staticType;
      else
        type = value.RuntimeType();

      switch (type.Kind){
        case TypeKind.Primitive:
          return MakePrimitiveTypeProperty(name, staticType, value, parent);
        case TypeKind.InnerClass:
        case TypeKind.Class:
          return MakeClassProperty(name, staticType, value, parent);
        case TypeKind.FlexArray:
          return MakeFlexArrayProperty(name, staticType, value, parent);
        case TypeKind.Tuple:
          return MakeStructuralProperty(name, staticType, value, parent);
        case TypeKind.Stream:
          return MakeStreamProperty(name, staticType, value, parent);
        case TypeKind.Array:
          return MakeArrayProperty(name, staticType, value, parent);
        case TypeKind.Enum:
          return MakeEnumProperty(name, staticType, value, parent);
      }
      return null;
    }
Example #33
0
 public  CDebugProperty(IDebugProperty prop) {
   this.prop = prop;
   this.parent = null;
 }
Example #34
0
 public virtual BaseProperty MakeStructuralProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent){
   return new StructuralProperty(name, staticType, value, parent, this);
 }
Example #35
0
 public FlexArrayProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent, CommonExpressionEvaluator evaluator)
     : base(name, staticType, value, parent, evaluator)
 {
 }
Example #36
0
 public virtual BaseProperty MakeProperty(IDebugFieldSymbol symbol, IDebugProperty parent, IDebugValue containerValue){
   IDebugType staticType = symbol.Type;
   IDebugValue value = symbol.GetValue(containerValue);
   if (symbol.Name == "this value: ")
     return this.MakeProperty("this", symbol.Type, value, parent);
   return this.MakeProperty(symbol.Name, symbol.Type, value, parent);
 }
Example #37
0
 public int GetParent(out IDebugProperty ppDebugProp)
 {
   ppDebugProp = (IDebugProperty)null;
   return VSConstants.E_NOTIMPL;
 }
Example #38
0
 internal DebugProperty(IDebugProperty property)
 {
     this.prop = property;
 }
Example #39
0
        // Override these factory methods to create language specfic IDebugProperty implementations
        public virtual BaseProperty MakeProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent)
        {
            IDebugType type = null;

            if (value == null || value.IsNullReference() || staticType.Kind == TypeKind.Stream ||
                staticType.Kind == TypeKind.FlexArray || staticType.Kind == TypeKind.Enum)
            {
                type = staticType;
            }
            else
            {
                type = value.RuntimeType();
            }

            switch (type.Kind)
            {
            case TypeKind.Primitive:
                return(MakePrimitiveTypeProperty(name, staticType, value, parent));

            case TypeKind.InnerClass:
            case TypeKind.Class:
                return(MakeClassProperty(name, staticType, value, parent));

            case TypeKind.FlexArray:
                return(MakeFlexArrayProperty(name, staticType, value, parent));

            case TypeKind.Tuple:
                return(MakeStructuralProperty(name, staticType, value, parent));

            case TypeKind.Stream:
                return(MakeStreamProperty(name, staticType, value, parent));

            case TypeKind.Array:
                return(MakeArrayProperty(name, staticType, value, parent));

            case TypeKind.Enum:
                return(MakeEnumProperty(name, staticType, value, parent));
            }
            return(null);
        }