예제 #1
0
    def load(self):
        import dbi
        debug = dbi.parse_stream(self.stream_file)

        self.DBIHeader = debug.DBIHeader
        self.DBIExHeaders = debug.DBIExHeaders
        self.DBIDbgHeader = debug.DBIDbgHeader
        self.modules = debug.modules
        self.files = debug.files

        # For backwards compatibility
        self.gsym_file = debug.DBIHeader.symrecStream
        self.machine = debug.DBIHeader.Machine

        if self.parent:
            if debug.DBIHeader.symrecStream != -1:
                self.parent.add_supported_stream("STREAM_GSYM",
                                                 debug.DBIHeader.symrecStream,
                                                 PDBGlobalSymbolStream)
            if debug.DBIDbgHeader.snSectionHdr != -1:
                self.parent.add_supported_stream(
                    "STREAM_SECT_HDR", debug.DBIDbgHeader.snSectionHdr,
                    PDBSectionStream)
            if debug.DBIDbgHeader.snSectionHdrOrig != -1:
                self.parent.add_supported_stream(
                    "STREAM_SECT_HDR_ORIG",
                    debug.DBIDbgHeader.snSectionHdrOrig, PDBSectionStream)
            if debug.DBIDbgHeader.snOmapToSrc != -1:
                self.parent.add_supported_stream(
                    "STREAM_OMAP_TO_SRC", debug.DBIDbgHeader.snOmapToSrc,
                    PDBOmapStream)
            if debug.DBIDbgHeader.snOmapFromSrc != -1:
                self.parent.add_supported_stream(
                    "STREAM_OMAP_FROM_SRC", debug.DBIDbgHeader.snOmapFromSrc,
                    PDBOmapStream)
            if debug.DBIDbgHeader.snFPO != -1:
                self.parent.add_supported_stream("STREAM_FPO",
                                                 debug.DBIDbgHeader.snFPO,
                                                 PDBFPOStream)
            if debug.DBIDbgHeader.snNewFPO != -1:
                self.parent.add_supported_stream("STREAM_FPO_NEW",
                                                 debug.DBIDbgHeader.snNewFPO,
                                                 PDBNewFPOStream)
                #self.parent.add_supported_stream("STREAM_FPO_STRINGS", debug.DBIDbgHeader.snNewFPO+1, PDBFPOStrings)

            # Currently unparsed, but we know their names
            if debug.DBIDbgHeader.snXdata != -1:
                self.parent.add_supported_stream("STREAM_XDATA",
                                                 debug.DBIDbgHeader.snXdata,
                                                 PDBStream)
            if debug.DBIDbgHeader.snPdata != -1:
                self.parent.add_supported_stream("STREAM_PDATA",
                                                 debug.DBIDbgHeader.snPdata,
                                                 PDBStream)
            if debug.DBIDbgHeader.snTokenRidMap != -1:
                self.parent.add_supported_stream(
                    "STREAM_TOKEN_RID_MAP", debug.DBIDbgHeader.snTokenRidMap,
                    PDBStream)
예제 #2
0
    def load(self):
        import dbi
        debug = dbi.parse_stream(self.stream_file)

        self.version = debug.DBIHeader.version
        self.pdb_age = debug.DBIHeader.pdb_age
        self.gsi_stream_no = debug.DBIHeader.gsi_stream
        self.psi_stream_no = debug.DBIHeader.psi_stream
        self.sym_stream_no = debug.DBIHeader.sym_stream
        self.module_size = debug.DBIHeader.module_size
        self.offset_size = debug.DBIHeader.offset_size
        self.hash_size = debug.DBIHeader.hash_size
        self.srcmodule_size = debug.DBIHeader.srcmodule_size
        self.pdbimport_size = debug.DBIHeader.pdbimport_size
        self.fpoext_stream_no = debug.StreamIndexesData.FPO_EXT
        self.exhdrs = debug.DBIExHeaders
        
        del debug
예제 #3
0
    def load(self):
        import dbi

        debug = dbi.parse_stream(self.stream_file)

        self.DBIHeader = debug.DBIHeader
        self.DBIExHeaders = debug.DBIExHeaders
        self.DBIDbgHeader = debug.DBIDbgHeader
        self.modules = debug.modules
        self.files = debug.files

        # For backwards compatibility
        self.gsym_file = debug.DBIHeader.symrecStream
        self.machine = debug.DBIHeader.Machine

        if self.parent:
            if debug.DBIHeader.symrecStream != -1:
                self.parent.add_supported_stream("STREAM_GSYM", debug.DBIHeader.symrecStream, PDBGlobalSymbolStream)
            if debug.DBIDbgHeader.snSectionHdr != -1:
                self.parent.add_supported_stream("STREAM_SECT_HDR", debug.DBIDbgHeader.snSectionHdr, PDBSectionStream)
            if debug.DBIDbgHeader.snSectionHdrOrig != -1:
                self.parent.add_supported_stream(
                    "STREAM_SECT_HDR_ORIG", debug.DBIDbgHeader.snSectionHdrOrig, PDBSectionStream
                )
            if debug.DBIDbgHeader.snOmapToSrc != -1:
                self.parent.add_supported_stream("STREAM_OMAP_TO_SRC", debug.DBIDbgHeader.snOmapToSrc, PDBOmapStream)
            if debug.DBIDbgHeader.snOmapFromSrc != -1:
                self.parent.add_supported_stream(
                    "STREAM_OMAP_FROM_SRC", debug.DBIDbgHeader.snOmapFromSrc, PDBOmapStream
                )
            if debug.DBIDbgHeader.snFPO != -1:
                self.parent.add_supported_stream("STREAM_FPO", debug.DBIDbgHeader.snFPO, PDBFPOStream)
            if debug.DBIDbgHeader.snNewFPO != -1:
                self.parent.add_supported_stream("STREAM_FPO_NEW", debug.DBIDbgHeader.snNewFPO, PDBNewFPOStream)
                # self.parent.add_supported_stream("STREAM_FPO_STRINGS", debug.DBIDbgHeader.snNewFPO+1, PDBFPOStrings)

            # Currently unparsed, but we know their names
            if debug.DBIDbgHeader.snXdata != -1:
                self.parent.add_supported_stream("STREAM_XDATA", debug.DBIDbgHeader.snXdata, PDBStream)
            if debug.DBIDbgHeader.snPdata != -1:
                self.parent.add_supported_stream("STREAM_PDATA", debug.DBIDbgHeader.snPdata, PDBStream)
            if debug.DBIDbgHeader.snTokenRidMap != -1:
                self.parent.add_supported_stream("STREAM_TOKEN_RID_MAP", debug.DBIDbgHeader.snTokenRidMap, PDBStream)