2010-11-18 4 views
1

열거 된 함수의 올바른 .dll/.exe를 찾아야합니다. 이를 위해 나는 원래 함수가 정의 된 Name (.dll/.exe) 파일을 반환해야하는 get_libraryName을 사용하고 있습니다.Dia SDK get_libraryName 기호가 IDiaSymbol에 대해 NULL을 반환하는 이유는 무엇입니까?

하지만 NULL (BadPtr = 0x00000)이 될 때마다 반환됩니다 .. 함수가 정의되고 사용되는 곳에서 정확한 파일 이름을 검색하는 방법이 있습니까?

감사 하산

+0

글쎄, DIA가 이런 일이 일어나는 기능에 대해 다른 정보를 알려주습니까? 시작하려면이 함수의 이름은 무엇입니까? – SamB

답변

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; 
} 

희망이 도움이!

관련 문제