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.
|