Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }