public int GetPropertyInfo(enum_DEBUGPROP_INFO_FLAGS dwFields, uint dwRadix, uint dwTimeout, IDebugReference2[] rgpArgs, uint dwArgCount, DEBUG_PROPERTY_INFO[] pPropertyInfo) {
            pPropertyInfo[0] = new DEBUG_PROPERTY_INFO();

            if (dwFields.HasFlag(enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_ATTRIB)) {
                pPropertyInfo[0].dwAttrib = enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_VALUE_ERROR;
                pPropertyInfo[0].dwFields |= enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_ATTRIB;
            }

            if (dwFields.HasFlag(enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE)) {
                pPropertyInfo[0].bstrValue = _errorText;
                pPropertyInfo[0].dwFields |= enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE;
            }

            return VSConstants.S_OK;
        }
Beispiel #2
0
 // Fills in a DEBUG_PROPERTY_INFO structure that describes a property.
 public int GetPropertyInfo(DIF dwFields, uint dwRadix, uint dwTimeout, IDebugReference2[] rgpArgs, uint dwArgCount, DEBUG_PROPERTY_INFO[] pPropertyInfo)
 {
     rgpArgs = null;
     pPropertyInfo[0] = ConstructDebugPropertyInfo(dwFields);
     return Constants.S_OK;
 }
Beispiel #3
0
 // Get a reference for this property
 public  void GetReference(out IDebugReference2 ppReference) {
   throw new Exception("Not Implemented Yet");
 }
Beispiel #4
0
    // Get the DEBUG_PROPERTY_INFO that describes this property
    public  void GetPropertyInfo(
      DEBUGPROP_INFO_FLAGS dwFields, 
      uint dwRadix, 
      uint dwTimeout, 
      IDebugReference2 []rgpArgs, 
      uint dwArgCount, 
      out DEBUG_PROPERTY_INFO pPropertyInfo) {

      pPropertyInfo = new DEBUG_PROPERTY_INFO();

      if (0 != (dwFields & DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_FULLNAME)) {
				
        pPropertyInfo.dwFields       |= DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_FULLNAME;
        pPropertyInfo.bstrFullName    = this.prop.FullName;
      }

      if (0 != (dwFields & DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_NAME)) {
        pPropertyInfo.dwFields     |= DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_NAME;
        pPropertyInfo.bstrName     = this.prop.Name;
      }

      if (0 != (dwFields & DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_TYPE)) {
        pPropertyInfo.dwFields     |= DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_TYPE;
        pPropertyInfo.bstrType    = this.prop.Type;
      }

      if (0 != (dwFields & DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_PROP)) {
        pPropertyInfo.dwFields     |= DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_PROP;
        pPropertyInfo.pProperty     = this as IDebugProperty2;
      }

      if (0 != (dwFields & DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE)) {
        pPropertyInfo.dwFields |= DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE;
        pPropertyInfo.bstrValue    = this.prop.GetValue(dwRadix, dwTimeout);
      }

      if (0 != (dwFields & DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE_AUTOEXPAND)) {
        pPropertyInfo.dwFields   |= DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE_AUTOEXPAND;
      }

      if (0 != (dwFields & DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_ATTRIB)){
        pPropertyInfo.dwFields |= DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_ATTRIB;

        DebugPropertyAttributes attrib;
        attrib = this.prop.Attributes;

        pPropertyInfo.dwAttrib = 0;
        if (0 != (attrib & DebugPropertyAttributes.Expandable))
          pPropertyInfo.dwAttrib |= DBG_ATTRIB_FLAGS.DBG_ATTRIB_OBJ_IS_EXPANDABLE;
        if (0 != (attrib & DebugPropertyAttributes.ReadOnly))
          pPropertyInfo.dwAttrib |= DBG_ATTRIB_FLAGS.DBG_ATTRIB_VALUE_READONLY;
        if (0 != (attrib & DebugPropertyAttributes.Error))
          pPropertyInfo.dwAttrib |= DBG_ATTRIB_FLAGS.DBG_ATTRIB_VALUE_ERROR;
        if (0 != (attrib & DebugPropertyAttributes.SideEffect))
          pPropertyInfo.dwAttrib |= DBG_ATTRIB_FLAGS.DBG_ATTRIB_VALUE_SIDE_EFFECT;
        if (0 != (attrib & DebugPropertyAttributes.OverloadedContainer))
          pPropertyInfo.dwAttrib |= DBG_ATTRIB_FLAGS.DBG_ATTRIB_OVERLOADED_CONTAINER;
        if (0 != (attrib & DebugPropertyAttributes.Boolean))
          pPropertyInfo.dwAttrib |= DBG_ATTRIB_FLAGS.DBG_ATTRIB_VALUE_BOOLEAN;
        if (0 != (attrib & DebugPropertyAttributes.BooleanTrue))
          pPropertyInfo.dwAttrib |= DBG_ATTRIB_FLAGS.DBG_ATTRIB_VALUE_BOOLEAN_TRUE;
        if (0 != (attrib & DebugPropertyAttributes.Invalid))
          pPropertyInfo.dwAttrib |= DBG_ATTRIB_FLAGS.DBG_ATTRIB_VALUE_INVALID;
        
      }
    }
 public int SetValueAsReference(IDebugReference2[] rgpArgs, uint dwArgCount, IDebugReference2 pValue, uint dwTimeout)
 {
     return AD7Constants.E_SETVALUEASREFERENCE_NOTSUPPORTED;
 }
Beispiel #6
0
 //  Return an IDebugReference2 for this property. An IDebugReference2 can be thought of as a type and an address.
 public int GetReference(out IDebugReference2 ppReference) {
     ppReference = null;
     return VSConstants.E_NOTIMPL;
 }
Beispiel #7
0
 // The debugger will call this when the user tries to edit the property's values
 // the sample has set the read-only flag on its properties, so this should not be called.
 public int SetValueAsReference(IDebugReference2[] rgpArgs, uint dwArgCount, IDebugReference2 pValue, uint dwTimeout)
 {
     throw new NotImplementedException();
 }
 public int GetReference(out IDebugReference2 ppReference)
 {
     ppReference = null;
     return AD7Constants.E_GETREFERENCE_NO_REFERENCE;
 }
Beispiel #9
0
 int IDebugProperty3.SetValueAsReference(IDebugReference2[] rgpArgs, uint dwArgCount, IDebugReference2 pValue, uint dwTimeout)
 => IDebugProperty2.SetValueAsReference(rgpArgs, dwArgCount, pValue, dwTimeout);
Beispiel #10
0
 int IDebugProperty3.GetReference(out IDebugReference2 ppReference) => IDebugProperty2.GetReference(out ppReference);
Beispiel #11
0
 int IDebugProperty2.SetValueAsReference(IDebugReference2[] rgpArgs, uint dwArgCount, IDebugReference2 pValue, uint dwTimeout) => VSConstants.E_NOTIMPL;
Beispiel #12
0
 int IDebugProperty3.GetReference(out IDebugReference2 ppReference)
 {
     return(IDebugProperty2.GetReference(out ppReference));
 }
 public int SetValueAsReference(IDebugReference2[] rgpArgs, uint dwArgCount, IDebugReference2 pValue, uint dwTimeout)
 {
     return(AD7Constants.E_SETVALUE_VALUE_CANNOT_BE_SET);
 }
 public int GetReference(out IDebugReference2 ppReference)
 {
     ppReference = null;
     return(AD7Constants.E_GETREFERENCE_NO_REFERENCE);
 }
Beispiel #15
0
 int IDebugProperty3.GetPropertyInfo(enum_DEBUGPROP_INFO_FLAGS dwFields, uint dwRadix, uint dwTimeout, IDebugReference2[] rgpArgs, uint dwArgCount, DEBUG_PROPERTY_INFO[] pPropertyInfo) {
     return IDebugProperty2.GetPropertyInfo(dwFields, dwRadix, dwTimeout, rgpArgs, dwArgCount, pPropertyInfo);
 }
Beispiel #16
0
 int IDebugProperty3.SetValueAsReference(IDebugReference2[] rgpArgs, uint dwArgCount, IDebugReference2 pValue, uint dwTimeout) {
     return IDebugProperty2.SetValueAsReference(rgpArgs, dwArgCount, pValue, dwTimeout);
 }
        public int GetPropertyInfo(uint dwFields, uint dwRadix, uint dwTimeout, IDebugReference2[] rgpArgs, uint dwArgCount, DEBUG_PROPERTY_INFO[] pPropertyInfo)
        {
            if (pPropertyInfo.Length > 0)
            {
                Expression debugExpr = vs.Debugger.GetExpression(_expression, true, 1000);

                pPropertyInfo[0].dwAttrib = (long)Constants.DBG_ATTRIB_ACCESS_ALL;
                pPropertyInfo[0].dwAttrib |= (long)Constants.DBG_ATTRIB_TYPE_VOLATILE;
                pPropertyInfo[0].dwAttrib |= (long) Constants.DBG_ATTRIB_STORAGE_REGISTER;

                pPropertyInfo[0].dwFields = dwFields;

                if ((dwFields & (uint)enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_FULLNAME) != 0)
                {
                    pPropertyInfo[0].bstrFullName = _expression;
                }

                if ((dwFields & (uint)enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_NAME) != 0)
                {
                    pPropertyInfo[0].bstrName = debugExpr.Name;
                }

                if ((dwFields & (uint)enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_TYPE) != 0)
                {
                    pPropertyInfo[0].bstrType = debugExpr.Type;
                }

                if ((dwFields & (uint)enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE) != 0
                    || (dwFields & (uint)enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE_RAW) != 0)
                {
                    pPropertyInfo[0].bstrValue = debugExpr.Value;
                }
            }
            return VSConstants.S_OK;
        }
Beispiel #18
0
 public int GetPropertyInfo(enum_DEBUGPROP_INFO_FLAGS dwFields, uint dwRadix, uint dwTimeout, IDebugReference2[] rgpArgs, uint dwArgCount, DEBUG_PROPERTY_INFO[] pPropertyInfo)
 {
     pPropertyInfo[0] = ConstructErrorPropertyInfo(dwFields, _name, _message, this);
     rgpArgs = null;
     return Constants.S_OK;
 }
Beispiel #19
0
 int IDebugProperty2.GetReference(out IDebugReference2 ppReference)
 {
     ppReference = null;
     return(VSConstants.E_NOTIMPL);
 }
Beispiel #20
0
 /// <summary>
 /// Sets the value of the property from the value of a given reference. (http://msdn.microsoft.com/en-ca/library/bb145613.aspx)
 /// The debugger will call this when the user tries to edit the property's values. As the sample has set the read-only flag on 
 /// its properties, this should not be called.
 /// Not implemented.  
 /// </summary>
 /// <param name="rgpArgs"> An array of arguments to pass to the managed code property setter. If the property setter does not 
 /// take arguments or if this IDebugProperty2 object does not refer to such a property setter, rgpArgs should be a null value. 
 /// This parameter is typically a null value. </param>
 /// <param name="dwArgCount"> The number of arguments in the rgpArgs array. </param>
 /// <param name="pValue"> A reference, in the form of an IDebugReference2 object, to the value to use to set this property. </param>
 /// <param name="dwTimeout"> How long to take to set the value, in milliseconds. A typical value is INFINITE. This affects 
 /// the length of time that any possible evaluation can take. </param>
 /// <returns> Not implemented. </returns>
 public int SetValueAsReference(IDebugReference2[] rgpArgs, uint dwArgCount, IDebugReference2 pValue, uint dwTimeout)
 {
     throw new Exception("The method or operation is not implemented.");
 }
 public int Compare(enum_REFERENCE_COMPARE dwCompare, IDebugReference2 pReference)
 {
     throw new NotImplementedException();
 }
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        public virtual int SetValueAsReference(IDebugReference2 [] debugReferenceArray, uint argumentCount, IDebugReference2 debugReferenceValue, uint timeout)
        {
            //
            // Sets the value of the property from the value of a given reference.
            //

            LoggingUtils.PrintFunction();

            return(Constants.E_SETVALUEASREFERENCE_NOTSUPPORTED);
        }
 public int GetDerivedMostReference(out IDebugReference2 ppDerivedMost)
 {
     throw new NotImplementedException();
 }
Beispiel #24
0
 public int GetPropertyInfo(uint dwFields, uint dwRadix, uint dwTimeout, IDebugReference2[] rgpArgs, uint dwArgCount, DEBUG_PROPERTY_INFO[] pPropertyInfo)
 {
   return VSConstants.E_NOTIMPL;
 }
 public int GetParent(out IDebugReference2 ppParent)
 {
     throw new NotImplementedException();
 }
Beispiel #26
0
    // Set the value of this property
    public  void SetValueAsReference(
      IDebugReference2 []rgpArgs, 
      uint dwArgCount, 
      IDebugReference2 pValue, 
      uint dwTimeout) {

      throw new Exception("Not Implemented Yet");
    }
Beispiel #27
0
 public int GetReferenceInfo(enum_DEBUGREF_INFO_FLAGS dwFields, uint dwRadix, uint dwTimeout, IDebugReference2[] rgpArgs, uint dwArgCount, DEBUG_REFERENCE_INFO[] pReferenceInfo)
 {
     throw new NotImplementedException();
 }
Beispiel #28
0
 int IDebugProperty2.GetPropertyInfo(enum_DEBUGPROP_INFO_FLAGS dwFields, uint dwRadix, uint dwTimeout, IDebugReference2[] rgpArgs, uint dwArgCount, DEBUG_PROPERTY_INFO[] pPropertyInfo) {
     return VSConstants.E_NOTIMPL;
 }
Beispiel #29
0
 public int GetReference(out IDebugReference2 ppReference)
 {
     throw new NotImplementedException();
 }
Beispiel #30
0
 int IDebugProperty2.GetReference(out IDebugReference2 ppReference) {
     ppReference = null;
     return VSConstants.E_NOTIMPL;
 }
Beispiel #31
0
 public int SetValueAsReference(IDebugReference2[] rgpArgs, uint dwArgCount, IDebugReference2 pValue, uint dwTimeout)
 {
     throw new NotImplementedException();
 }
Beispiel #32
0
 int IDebugProperty3.GetReference(out IDebugReference2 ppReference) {
     return IDebugProperty2.GetReference(out ppReference);
 }
Beispiel #33
0
 public int GetReference(out IDebugReference2 ppReference)
 {
     ppReference = null;
     return(VSConstants.E_NOTIMPL);
 }
        public int GetPropertyInfo(enum_DEBUGPROP_INFO_FLAGS dwFields, uint dwRadix, uint dwTimeout, IDebugReference2[] rgpArgs, uint dwArgCount, DEBUG_PROPERTY_INFO[] pPropertyInfo)
        {
            bool getFullName = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_FULLNAME) != 0;
            bool getName = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_NAME) != 0;
            bool getType = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_TYPE) != 0;
            bool getValue = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE) != 0;
            bool getAttributes = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_ATTRIB) != 0;
            bool getProperty = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_PROP) != 0;

            bool useAutoExpandValue = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE_AUTOEXPAND) != 0;
            bool noFormatting = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE_RAW) != 0;
            bool noToString = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE_NO_TOSTRING) != 0;

            if (getFullName)
            {
                pPropertyInfo[0].bstrFullName = "Static Members";
                pPropertyInfo[0].dwFields |= enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_FULLNAME;
            }

            if (getName)
            {
                pPropertyInfo[0].bstrName = "Static Members";
                pPropertyInfo[0].dwFields |= enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_NAME;
            }

            /* no type */
            //if (getType)
            //{
            //}

            /* no value */
            //if (getValue)
            //{
            //}

            if (getAttributes)
            {
                pPropertyInfo[0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_OBJ_IS_EXPANDABLE;
                pPropertyInfo[0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_OVERLOADED_CONTAINER;
                pPropertyInfo[0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_CLASS;
                pPropertyInfo[0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_ACCESS_PRIVATE;
                pPropertyInfo[0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_VALUE_READONLY;
            }

            if (getProperty)
            {
                pPropertyInfo[0].pProperty = this;
                pPropertyInfo[0].dwFields |= enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_PROP;
            }

            return VSConstants.S_OK;
        }
Beispiel #35
0
 public int SetValueAsReference(IDebugReference2[] rgpArgs, uint dwArgCount, IDebugReference2 pValue, uint dwTimeout)
 {
     return(VSConstants.E_NOTIMPL);
 }
 public int SetValueAsReference(IDebugReference2[] rgpArgs, uint dwArgCount, IDebugReference2 pValue, uint dwTimeout)
 {
     return AD7Constants.E_SETVALUE_VALUE_CANNOT_BE_SET;
 }
Beispiel #37
0
 // The debugger will call this when the user tries to edit the property's values
 // We only accept setting values as strings
 public int SetValueAsReference(IDebugReference2[] rgpArgs, uint dwArgCount, IDebugReference2 pValue, uint dwTimeout)
 {
     throw new Exception("The method or operation is not implemented.");
 }
Beispiel #38
0
 //  Return an IDebugReference2 for this property. An IDebugReference2 can be thought of as a type and an address.
 public int GetReference(out IDebugReference2 ppReference)
 {
     throw new NotImplementedException();
 }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    public override int GetPropertyInfo (enum_DEBUGPROP_INFO_FLAGS requestedFields, uint radix, uint timeout, IDebugReference2 [] debugReferenceArray, uint argumentCount, DEBUG_PROPERTY_INFO [] propertyInfoArray)
    {
      // 
      // Fills in a DEBUG_PROPERTY_INFO structure that describes a property.
      // 

      LoggingUtils.PrintFunction ();

      try
      {
        LoggingUtils.RequireOk (base.GetPropertyInfo (requestedFields, radix, timeout, debugReferenceArray, argumentCount, propertyInfoArray));

#if false
        if ((m_gdbVariable != null) && (requestedFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_FULLNAME) != 0)
        {
          propertyInfoArray [0].bstrFullName = m_gdbVariable.Name;

          propertyInfoArray [0].dwFields |= enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_FULLNAME;
        }
#endif

        if ((requestedFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_NAME) != 0)
        {
          if (m_gdbVariable != null)
          {
            propertyInfoArray [0].bstrName = m_gdbVariable.Expression;

            propertyInfoArray [0].dwFields |= enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_NAME;
          }
        }

        if ((requestedFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_TYPE) != 0)
        {
          if (m_gdbVariable != null)
          {
            propertyInfoArray [0].bstrType = m_gdbVariable.Type;

            propertyInfoArray [0].dwFields |= enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_TYPE;
          }
        }

        if ((requestedFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE) != 0)
        {
#if false
          if ((requestedFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE_AUTOEXPAND) != 0)
          {
          }

          if ((requestedFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE_RAW) != 0)
          {
          }

          if ((requestedFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE_NO_TOSTRING) != 0)
          {
          }
#endif
          if (m_gdbVariable != null)
          {
            propertyInfoArray [0].bstrValue = m_gdbVariable.Value;

            propertyInfoArray [0].dwFields |= enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE;
          }
        }

        if ((requestedFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_ATTRIB) != 0)
        {
          if (m_gdbVariable != null)
          {
            if (m_gdbVariable.HasChildren)
            {
              propertyInfoArray [0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_OBJ_IS_EXPANDABLE;
            }

            if (m_gdbVariable.Expression.StartsWith ("$")) // Register. '$r0'
            {
              propertyInfoArray [0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_STORAGE_REGISTER;

              propertyInfoArray [0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_DATA;

              propertyInfoArray [0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_ACCESS_NONE;
            }
            else if (string.IsNullOrEmpty (m_gdbVariable.Type))
            {
              propertyInfoArray [0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_PROPERTY;
            }
            else if (m_gdbVariable.Value.Equals ("{...}"))
            {
              propertyInfoArray [0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_PROPERTY;

              propertyInfoArray [0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_CLASS;
            }
            else if (m_gdbVariable.Type.Contains ("(")) // Function, i.e: 'bool (void)'
            {
              propertyInfoArray [0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_METHOD;

              propertyInfoArray [0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_VALUE_READONLY;

              propertyInfoArray [0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_ACCESS_NONE;
            }
            else
            {
              propertyInfoArray [0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_DATA;
            }

            if (m_gdbVariable.Name.Contains (".public"))
            {
              propertyInfoArray [0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_ACCESS_PUBLIC;
            }
            else if (m_gdbVariable.Name.Contains (".private"))
            {
              propertyInfoArray [0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_ACCESS_PRIVATE;
            }
            else if (m_gdbVariable.Name.Contains (".protected"))
            {
              propertyInfoArray [0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_ACCESS_PROTECTED;
            }
          }

          propertyInfoArray [0].dwFields |= enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_ATTRIB;
        }

        if ((requestedFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_NO_NONPUBLIC_MEMBERS) != 0)
        {
        }

        return Constants.S_OK;
      }
      catch (Exception e)
      {
        LoggingUtils.HandleException (e);

        return Constants.E_FAIL;
      }
    }
Beispiel #40
0
 /// <summary>
 /// Returns a reference to the property's value. IDebugProperty2 represents a property, while IDebugReference2 represents a 
 /// reference to a property, typically a reference to an object in the program being debugged. Not implemented. 
 /// (http://msdn.microsoft.com/en-ca/library/bb145600.aspx)
 /// </summary>
 /// <param name="ppReference"> Returns an IDebugReference2 object representing a reference to the property's value. </param>
 /// <returns> Not implemented. </returns>
 public int GetReference(out IDebugReference2 ppReference)
 {
     throw new Exception("The method or operation is not implemented.");
 }
Beispiel #41
0
 //  Return an IDebugReference2 for this property. An IDebugReference2 can be thought of as a type and an address.
 public int GetReference(out IDebugReference2 ppReference)
 {
     throw new Exception("The method or operation is not implemented.");
 }
Beispiel #42
0
 // Fills in a DEBUG_PROPERTY_INFO structure that describes a property.
 public int GetPropertyInfo(enum_DEBUGPROP_INFO_FLAGS dwFields, uint dwRadix, uint dwTimeout, IDebugReference2[] rgpArgs, uint dwArgCount, DEBUG_PROPERTY_INFO[] pPropertyInfo) {
     pPropertyInfo[0] = ConstructDebugPropertyInfo(dwRadix, dwFields);
     return VSConstants.S_OK;
 }
            public int GetPropertyInfo(enum_DEBUGPROP_INFO_FLAGS dwFields, uint dwRadix, uint dwTimeout, IDebugReference2[] rgpArgs, uint dwArgCount, DEBUG_PROPERTY_INFO[] pPropertyInfo)
            {
                if (pPropertyInfo == null)
                    throw new ArgumentNullException("pPropertyInfo");
                if (pPropertyInfo.Length == 0)
                    throw new ArgumentException();

                bool getFullName = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_FULLNAME) != 0;
                bool getName = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_NAME) != 0;
                bool getType = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_TYPE) != 0;
                bool getValue = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE) != 0;
                bool getAttributes = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_ATTRIB) != 0;
                bool getProperty = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_PROP) != 0;

                bool useAutoExpandValue = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE_AUTOEXPAND) != 0;
                bool noFormatting = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE_RAW) != 0;
                bool noToString = (dwFields & enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE_NO_TOSTRING) != 0;

                if (getFullName)
                {
                    if (ErrorHandler.Succeeded(_stackFrame.GetName(out pPropertyInfo[0].bstrFullName)))
                        pPropertyInfo[0].dwFields |= enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_FULLNAME;
                }

                if (getName)
                {
                    if (ErrorHandler.Succeeded(_stackFrame.GetName(out pPropertyInfo[0].bstrName)))
                        pPropertyInfo[0].dwFields |= enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_NAME;
                }

                if (getType)
                {
                    pPropertyInfo[0].bstrType = string.Empty;
                    pPropertyInfo[0].dwFields |= enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_TYPE;
                }

                if (getValue)
                {
                    // value??
                }

                if (getAttributes)
                {
                    pPropertyInfo[0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_OBJ_IS_EXPANDABLE;
                    pPropertyInfo[0].dwAttrib |= enum_DBG_ATTRIB_FLAGS.DBG_ATTRIB_VALUE_READONLY;
                    pPropertyInfo[0].dwFields |= enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_ATTRIB;
                }

                if (getProperty)
                {
                    pPropertyInfo[0].pProperty = this;
                    pPropertyInfo[0].dwFields |= enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_PROP;
                }

                return VSConstants.S_OK;
            }
Beispiel #44
0
 // The debugger will call this when the user tries to edit the property's values
 // We only accept setting values as strings
 public int SetValueAsReference(IDebugReference2[] rgpArgs, uint dwArgCount, IDebugReference2 pValue, uint dwTimeout) {
     return VSConstants.E_NOTIMPL;
 }
 /// <summary>
 /// Returns a reference to the property's value.
 /// </summary>
 /// <param name="ppReference">Returns an IDebugReference2 object representing a reference to the property's value.</param>
 /// <returns>If successful, returns S_OK; otherwise, returns an error code, typically E_NOTIMPL or E_GETREFERENCE_NO_REFERENCE.</returns>
 public virtual int GetReference(out IDebugReference2 ppReference)
 {
     Logger.Debug(string.Empty);
     ppReference = null;
     return(VSConstants.E_NOTIMPL);
 }