コード例 #1
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;
                }
            }
        }
コード例 #2
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;
            }
        }
コード例 #3
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;
                    }
                }
            }
        }
コード例 #4
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);
        }
コード例 #5
0
ファイル: DebuggerHelpers.cs プロジェクト: hesam/SketchSharp
    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;
    }
コード例 #6
0
ファイル: DebuggerHelpers.cs プロジェクト: hesam/SketchSharp
    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;
        }
      }
    }
コード例 #7
0
ファイル: DebuggerHelpers.cs プロジェクト: hesam/SketchSharp
    // 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;
      }

    }
コード例 #8
0
ファイル: DebuggerHelpers.cs プロジェクト: hesam/SketchSharp
 public  CDebugProperty(IDebugProperty prop) {
   this.prop = prop;
   this.parent = null;
 }
コード例 #9
0
ファイル: DebuggerHelpers.cs プロジェクト: hesam/SketchSharp
    // 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;
        }
      }
    }
コード例 #10
0
 public CDebugProperty(IDebugProperty prop)
 {
     this.prop   = prop;
     this.parent = null;
 }