Чтение заголовка PDB в c ++ - PullRequest
1 голос
/ 23 июля 2011

Я пытаюсь прочитать заголовок файла PDB, чтобы узнать, соответствует ли он моему EXE-файлу.
Есть ли хороший способ прочитать подпись файла PDB (возможно, с помощью dbgHelp)?
Мне нужно получить поля заголовка в файле PDB, которые указывают, в какой сборке была создана PDB. спасибо:)

Ответы [ 2 ]

1 голос
/ 24 июля 2011

Я не верю, что ни API справки по отладке , ни SDK доступа к интерфейсу отладки не предоставляют доступ к любой информации, которая может решить вашу проблему.Единственным способом обнаружения информации о сборке с использованием любого из них будет проверка пути к объектным файлам, включенным во время компоновки.

Файл PDB содержит информацию о параметрах, переданных в командной строке для обеих компиляцийобъектные файлы и ссылки (libs, dll's, exe's), что, вероятно, то, что вы ищете.К сожалению, я не знаю документированного способа доступа к нему.Возможно, он находится глубоко в одной из таблиц, доступных в файле PDB, но я не смог найти никаких ссылок для доступа к нему.

При этом, если запрашиваемая вами информация является абсолютной необходимостью, и выЖелая разобраться с некоторыми неприятностями, взгляните на парсер PDB от Sven Boris Schreiber .Он содержит много полезной информации, хотя может и не поддерживать более новые версии PDB

0 голосов
/ 31 августа 2011

вы можете использовать инструмент Pdb Inspector для просмотра GUID и других основных сведений о ваших PDB. Этот инструмент использует Доступ к интерфейсу отладки (DIA)

...