Ejemplo n.º 1
0
        public static DbgDataTypeInfo GetDataTypeInfo(DbgEngDebugger debugger,
                                                      DbgModuleInfo module,
                                                      uint typeId)
        {
            if (null == debugger)
            {
                throw new ArgumentNullException("debugger");
            }

            RawDataInfo rdi = DbgHelp.GetDataInfo(debugger.DebuggerInterface, module.BaseAddress, typeId);

            switch (rdi.DataKind)
            {
            case DataKind.Member:
                return(new DbgDataMemberTypeInfo(debugger, module, typeId, rdi));

            case DataKind.StaticMember:
                return(new DbgDataStaticMemberTypeInfo(debugger, module, typeId, rdi));

            // TODO: more specialized types
            default:
                return(new DbgDataTypeInfo(debugger, module, typeId, rdi));
            }
        } // end GetDataTypeInfo()