2010-03-25 9 views
3

누구든지 PDB 파일에서 GUID를 가져 오는 방법을 알고 있습니까? 나는 마이크로 소프트의 디버그 인터페이스 액세스 SDKPDB 파일에서 GUID를 가져 오는 방법은 무엇입니까?

http://msdn.microsoft.com/en-us/library/f0756hat.aspx

을 사용하고 PDB를로드 할 때 내가 기대하는 GUID를 전달하는 경우 E_PDB_INVALID_SIG납니다

.

필자는 PDB의 GUID를 알고 싶습니다. 그래서 어떻게 든 손상된 PDB가 아니라 불일치가 있다는 것을 확신 할 수 있습니다.

이렇게 할 수있는 도구가 있습니까? 나는 ...

많은 감사,

thoughton을 dia2dump 및 DUMPBIN,하지만 기쁨을 시도했습니다.

답변

1

dbghelp 기호 API를 사용합니다. 원하는 모든 것이 PDB에 대한 정보라면 chkmatch을 사용하거나 dll/exe를 WinDbg에로드하고! sym noisy,! lmi 또는! chksym을 사용할 수 있습니다.

일치하도록 PDB를 고정하는 것은 다른 이야기입니다! chkmatch는 작업을 수행 할 수 있지만 연령 차이를 일치시킬 수는 없으며 타임 스탬프와 GUID 서명 만 수행 할 수 있습니다.

4

당신을 도울 수있는 Code Project tool called PDB Inspector가 있습니다. 당신이 프로그래밍 방식 기본적으로이 작업을 수행해야하는 경우 또는 당신은 전화 : DIA와의 관계에

IDiaDataSource::LoadDataFromPdb 
IDiaDataSource::openSession 
IDiaSession::get_global_scope 
IDiaSymbol::get_guid 
1

introduction을은 C++ 샘플과 함께 DbgHelp 할 수 있습니다. 기본적으로 Paul Arnold가 언급 한 기사 다음에 쓴 기사입니다.

관련 문제