public static MINIDUMP_MODULE_LIST parse_mml(BinaryReader fileBinaryReader) { MINIDUMP_MODULE_LIST mml = new MINIDUMP_MODULE_LIST(); List <MINIDUMP_MODULE> modules = new List <MINIDUMP_MODULE>(); mml.NumberOfModules = Helpers.ReadInt32(fileBinaryReader); foreach (var _ in Enumerable.Range(0, mml.NumberOfModules)) { MINIDUMP_MODULE module = parse_mm(fileBinaryReader); modules.Add(module); } mml.Modules = modules; return(mml); }
public static List <MinidumpModule> parse(Directory.MINIDUMP_DIRECTORY dir, Program.MiniDump minidump) { List <MinidumpModule> list = new List <MinidumpModule>(); minidump.fileBinaryReader.BaseStream.Seek(dir.Offset, 0); byte[] chunk = minidump.fileBinaryReader.ReadBytes((int)dir.Size); using (BinaryReader ChunkReader = new BinaryReader(new MemoryStream(chunk))) { MINIDUMP_MODULE_LIST mtl = parse_mml(ChunkReader); foreach (MINIDUMP_MODULE mod in mtl.Modules) { MinidumpModule module = parse_mod(mod, minidump.fileBinaryReader); list.Add(module); } } return(list); }