From: <rom...@us...> - 2008-02-14 07:12:16
|
Revision: 1237 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1237&view=rev Author: roman_yakovenko Date: 2008-02-13 23:12:22 -0800 (Wed, 13 Feb 2008) Log Message: ----------- switching to msdia80 Modified Paths: -------------- pygccxml_dev/pygccxml/parser/pdb_reader.py Modified: pygccxml_dev/pygccxml/parser/pdb_reader.py =================================================================== --- pygccxml_dev/pygccxml/parser/pdb_reader.py 2008-02-12 21:31:45 UTC (rev 1236) +++ pygccxml_dev/pygccxml/parser/pdb_reader.py 2008-02-14 07:12:22 UTC (rev 1237) @@ -6,10 +6,14 @@ from sets import Set as set msdia_dll = r'C:\Program Files\Microsoft Visual Studio .NET 2003\Visual Studio SDKs\DIA SDK\bin\msdia71.dll' +msdia_dll = r'D:\Program Files\Microsoft Visual Studio .NET 2003\Visual Studio SDKs\DIA SDK\bin\msdia71.dll' +msdia_dll = 'msdia80.dll' + msdia = comtypes.client.GetModule( msdia_dll ) control_pdb = r'C:\dev\produce_pdb\Debug\produce_pdb.pdb' +control_pdb = r'xxx.pdb' ds = comtypes.client.CreateObject( msdia.DiaSource ) ds.loadDataFromPdb(control_pdb) @@ -27,24 +31,27 @@ def print_enums( smb ): enums = smb.findChildren( SymTagEnum, None, 0 ) for enum in iter( enums ): - enum = AsDiaSymbol( enum ) - print 'enum name: ', enum.name + enum = AsDiaSymbol( enum ) + if 'shared_consts' not in enum.name: + continue + print 'name: ', enum.name + if enum.container: + print 'container: ', enum.container.name + if enum.classParent: + print 'parent: ', enum.classParent.name + if enum.lexicalParent: + print 'lexical parent: ', enum.lexicalParent.Name #~ print 'enum: ', enum.symIndexId #~ f = session.findFile( internal_smb, internal_smb.name, 0 ) #~ print 'name: ', internal_smb.name #~ print f - #~ print 'IDiaSymbol::sourceFileName: ', internal_smb.sourceFileName - #~ print 'IDiaSymbol::symbolsFileName: ', internal_smb.symbolsFileName values = enum.findChildren( msdia.SymTagData, None, 0 ) for v in iter(values): v = AsDiaSymbol(v) if v.classParent.symIndexId != enum.symIndexId: continue - print '\t\tvalue name: ', v.name, ' ', v.value - #~ print 'value parent: ', v.classParent - #~ print 'value parent id: ', v.classParentId - #~ print 'value parent sym id: ', v.classParent.symIndexId + print ' value %s(%d): ' % ( v.name, v.value ) def print_nss( smb, offset ): symbols = smb.findChildren( msdia.SymTagUDT, None, 0 ) @@ -61,4 +68,4 @@ print 'File: ', f.fileName #~ print_files( session ) -print_enums( root_symbol ) \ No newline at end of file +print_enums( root_symbol ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |