Сколько информации содержат файлы pdb? (C # / .NET) - PullRequest
18 голосов
/ 27 февраля 2009

Разумно ли распространять файлы pdb вместе с коммерческим приложением?

Иногда я использую трассировку стека для получения более подробных отчетов об ошибках из развернутых приложений; Можно ли достичь этой функциональности, не полагаясь на эти файлы?

Кроме того, сколько подсказок в исходном коде содержатся в этих файлах? Будет ли проще перепроектировать мое приложение, используя его?

Ответы [ 4 ]

11 голосов
/ 27 февраля 2009

В основном добавляет информацию для:

  • Все непубличные типы, интерфейсы, структуры, классы
  • Локальные переменные в функциях
  • Имена исходных файлов для соответствующего кода и соответствующие номера строк в исходном коде.

, который в совокупности делает реверс-инжиниринг очень простым для нативного кода.

К счастью, вы можете создать урезанную версию ваших файлов PDB, которая содержит только публичную информацию с параметром / PDBSTRIPPED .

О, вы редактировали, чтобы добавить C # / .NET, поэтому я не уверен, применимо ли «PDBSTRIPPED». Однако приложения .NET очень просто проанализировать даже без какой-либо символьной информации. Я не против включить их в проект .NET.

3 голосов
/ 13 декабря 2011

Управляемые файлы .pdb содержат следующую информацию:

  • Имена всех локальных переменных
  • Имена всех файлов исходного кода и отображение инструкций IL на строки в этих файлах.

Все остальное содержится в самом двоичном файле, включая имена всех типов, членов и аргументов функций.

Источник: Файлы PDB: что должен знать каждый разработчик .

3 голосов
/ 17 июня 2009

Вы можете попробовать использовать dia2dump для просмотра содержимого.

0 голосов
/ 03 августа 2018

PDB-файлы также включают все комментарии ваших исходных файлов. Таким образом, с помощью EXE и PDB-файла можно сгенерировать копию 1: 1 из исходного кода.

...