Сколько информации содержатся в файлах pdb? (С#/.NET)
Разумно ли перераспределять файлы pdb вместе с коммерческим приложением?
Иногда я использую трассировку стека для получения более подробных журналов отчетов об ошибках из развернутых приложений; может ли эта функциональность быть достигнута без использования этих файлов?
Кроме того, сколько намеков исходного исходного кода содержит эти файлы? Было бы проще перепроектировать мое приложение, используя его?
Ответы
Ответ 1
В основном он добавляет информацию для:
- Все непубличные типы, интерфейсы, структуры, классы
- Локальные переменные в функциях
- Имена исходных файлов для соответствующего кода и соответствующих номеров строк в исходном коде.
который в совокупности делает обратное проектирование очень простым для собственного кода.
К счастью, вы можете создать урезанную версию ваших файлов PDB, которая содержит только общедоступную информацию с параметром /PDBSTRIPPED.
О, вы отредактировали, чтобы добавить С#/. NET, поэтому я не уверен, что применим "PDBSTRIPPED". Однако .NET-приложения очень легко обратный инженер даже без какой-либо символьной информации. Я бы не прочь включить их в .NET-проект.
Ответ 2
Вы можете попробовать dia2dump посмотреть содержимое.
Ответ 3
Управляемые файлы .pdb содержат следующую информацию:
- Имена всех локальных переменных
- Имена всех файлов исходного кода и отображение из инструкций IL на строки в этих файлах.
Все остальное содержится в самом двоичном файле, включая имена всех типов, членов и аргументов функции.
Источник: PDB файлы: что каждый разработчик должен знать.