コード例 #1
0
        public int EnumChildren(enum_DEBUGPROP_INFO_FLAGS dwFields, uint dwRadix, ref Guid guidFilter,
                                enum_DBG_ATTRIB_FLAGS dwAttribFilter, string pszNameFilter, uint dwTimeout,
                                out IEnumDebugPropertyInfo2 ppEnum)
        {
            uint thId;

            thread.GetThreadId(out thId);
            var children = engine.DebuggedProcess.EnumChildren(GetVariableReference(), (int)thId, dwTimeout);

            DEBUG_PROPERTY_INFO[] info = new DEBUG_PROPERTY_INFO[children.Length];
            for (int i = 0; i < children.Length; i++)
            {
                var        vi   = children[i];
                ILProperty prop = new ILProperty(engine, thread, vi);
                if (vi.Type == VariableTypes.IndexAccess)
                {
                    prop.Parameters = new VariableReference[] { VariableReference.GetInteger(vi.Offset) }
                }
                ;
                prop.Parent = this;
                info[i]     = prop.GetDebugPropertyInfo(dwFields);
            }
            ppEnum = new AD7PropertyInfoEnum(info);
            return(Constants.S_OK);
        }
コード例 #2
0
 public int EnumProperties(enum_DEBUGPROP_INFO_FLAGS dwFields, uint nRadix, ref Guid guidFilter, uint dwTimeout,
                           out uint pcelt, out IEnumDebugPropertyInfo2 ppEnum)
 {
     DEBUG_PROPERTY_INFO[] arr = new DEBUG_PROPERTY_INFO[localVars.Length];
     for (int i = 0; i < localVars.Length; i++)
     {
         arr[i] = localVars[i].GetDebugPropertyInfo(dwFields);
     }
     ppEnum = new AD7PropertyInfoEnum(arr);
     ppEnum.GetCount(out pcelt);
     return(Constants.S_OK);
 }