2010-11-18 17 views
1

Numaralandırıldığı işlevin doğru .dll/.exe dosyasını bulmam gerekiyor. Bunun için get_libraryName işlevini kullanıyorum. Burada hangi işlevin orijinal olarak tanımlandığı Name (.dll/.exe) dosyasını döndürmeliyim.DIA SDK get_libraryName sembolü IDIASymbol için NULL değerini neden döndürüyor?

Ancak her seferinde NULL (BadPtr = 0x00000) döndürür. İşlev dosyasının tanımlandığı ve kullanıldığı dosya adını tam olarak almak için herhangi bir çıkış yolu var mı?

Selamlar Hassan

+0

Peki, DIA başka hangi bilgileri sizin için hangi işlevler hakkında verir? Başlamak için, bu fonksiyonların isimleri nelerdir? – SamB

cevap

1
IDiaSession mSession; 
DiaSourceClass mSourceClass; 
IDiaSymbol mGlobalScope; 
string pdbFileName = @"c:\test.pdb"; 

mSourceClass = new DiaSourceClass(); 
mSourceClass.loadDataFromPdb(pdbFileName); 
mSourceClass.openSession(out mSession); 
mSession.loadAddress = loadAddress; 
mGlobalScope = mSession.globalScope; 

IDiaEnumSymbols methodSymbols; 
mGlobalScope.findChildren(SymTagEnum.SymTagFunction, null, 0, out methodSymbols); 
foreach (IDiaSymbol methodSymbol in methodSymbols) 
{ 
    string projectName = functionSymbol.lexicalParent.name; 
} 

bu yardımcı olur Umut!

İlgili konular