def test_pdbs( self ): for f in filter( lambda f: f.endswith( 'pdb' ), os.listdir( r'E:\pdbs' ) ): try: reader = mspdb.decl_loader_t( f ) reader.read() f = file( d + '.txt', 'w+' ) declarations.print_declarations( reader.global_ns, writer=lambda line: f.write(line+'\n') ) f.close() except Exception, error: print 'unable to load pdb file ', f, ' Error: ', str(error)
def test_create_nss(self): reader = mspdb.decl_loader_t( self.pdb_file ) print reader.symbols_table.name reader.read() f = file( 'decls.cpp', 'w+' ) declarations.print_declarations( reader.global_ns, writer=lambda line: f.write(line+'\n') ) f.close() f = file( 'symbols.txt', 'w+') for smbl in reader.symbols.itervalues(): f.write( smbl.uname ) f.write( os.linesep ) f.write( '\t' + str(smbl.name) ) f.close()
import os import unittest import autoconfig import pprint from pygccxml.binary_parsers import mspdb from pygccxml import declarations from pygccxml.binary_parsers import common_utils as msvc_utils pdb_file = r'E:\development\language-binding\pyplusplus_dev\pyplusplus\cpptypes\mydll\release\mydll.pdb' pdb_file = r'D:\AC_SERVER_4_VS2005\libs\Debug\SPDBLib_d.pdb' reader = mspdb.decl_loader_t( pdb_file ) opt = mspdb.enums.UNDECORATE_NAME_OPTIONS.UNDNAME_SHORT_UNIQUE opt = 0 public_smbls = {} for smbl in reader.public_symbols.iterkeys(): name = smbl.name undecorated_name = smbl.get_undecoratedNameEx(opt).strip() if undecorated_name.endswith( ')const' ): undecorated_name = undecorated_name[ : -len('const')] public_smbls[ name ] = undecorated_name public_smbls[ undecorated_name ] = name pprint.pprint( public_smbls ) #~ for smbl in reader.symbols.itervalues(): #~ if not smbl.classParent: #~ continue #~ undecorated_name = smbl.get_undecoratedNameEx(opt) #~ if not undecorated_name: