Как я могу получить GUID из файла PDB?
Кто-нибудь знает, как получить GUID из файла PDB?
Я использую отладочный интерфейс Microsoft Access SDK
http://msdn.microsoft.com/en-us/library/f0756hat.aspx
и получение E_PDB_INVALID_SIG при передаче GUID, который я ожидаю при попытке загрузить PDB.
Я просто хотел бы узнать GUID PDB, чтобы быть уверенным, что он не соответствует, а не просто PDB, который, возможно, каким-то образом поврежден.
Есть ли инструмент, который может это сделать? Я пробовал dia2dump и dumpbin, но без радости...
Большое спасибо,
thoughton.
3 ответа
Существует инструмент Code Project, который называется PDB Inspector и который может вам помочь. Или, если вам нужно сделать это по существу программно, вы звоните:
IDiaDataSource::LoadDataFromPdb
IDiaDataSource::openSession
IDiaSession::get_global_scope
IDiaSymbol::get_guid
введение в DIA и его отношение к DbgHelp вместе с примером C++. Это в основном статья, которую я написал после упомянутой Полом Арнольдом.
Я бы использовал символьные API dbghelp. Если вам нужна только информация о PDB, вы можете использовать chkmatch или heck, просто загрузите dll / exe в WinDbg и используйте! Sym noisy,! Lmi или! Chksym.
Исправление PDB, чтобы соответствовать, - другая история! chkmatch может выполнять часть работы, но не может сопоставить разницу в возрасте, он может выполнять только метки времени и подписи GUID.