Как проверить, что файл pdb действителен для отладки сборки - PullRequest
5 голосов
/ 09 декабря 2010

Я пишу некоторую логику для академического сервера символов.

Я должен проверить сборку и файл pdb, если они совпадают, чтобы пользователи могли использовать их без проблем.

Я провел небольшое исследование, но без каких-либо впечатляющих. Если VS получит неправильные символы отладки, он может показать информацию:

Следующий модуль был построен либо с включенной оптимизацией или без отладочная информация: assembly.dll
к отладить этот модуль, изменить его проект собрать конфигурацию в режиме отладки. к подавить это сообщение, отключить «Предупредить, если нет кода пользователя при запуске» опция отладчика.

Мне также интересно, какую информацию VS получает от pdb и сборки для их проверки.

Есть ли (управляемый) API? Или даже неуправляемый?

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 19 октября 2011

Эта страница содержит отличную статью о подробностях файлов PDB и DBG.Это объясняет, что именно хранится в файле символов, как его читать и как определить, совпадают ли двоичный файл (EXE или DLL) и файл символов (PDB или DBG).1004 *

2 голосов
/ 09 декабря 2010

Я думаю, что имя API, которое использует Visual Studio - DIA; это COM API, который вы можете вызвать из C #.

Библиотека Mono.Cecil предоставляет хороший набор классов для доступа к сборкам и их символам; он использует DIA для файлов .pdb. Я бы позвонил Сесилу прямо для этого; если нет, то исходный код должен предоставить руководство.

...