public CStruct TranslateStruct(IDiaSymbol sym) { IDiaEnumSymbols symbols; sym.findChildren(SymTagEnum.SymTagData, null, 0, out symbols); CStruct res = new CStruct(); Offset lastOffset = Offset.Neg; foreach (IDiaSymbol subSym in symbols) { Offset thisOffset = Offset.FromDiaSymbol(subSym); if (thisOffset.IsLessThanOrEqualTo(lastOffset)) { symbols.Reset(); return(TranslateStruct2(symbols)); } string name = subSym.name; CType type = TranslateMember(subSym); res.Add(type, name, thisOffset); lastOffset = thisOffset; } return(res); }