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()