2009-02-27 4 views
17

Ist es sinnvoll, die pdb-Dateien zusammen mit einer kommerziellen Anwendung neu zu verteilen?Wie viele Informationen enthalten pdb-Dateien? (C#/.NET)

Gelegentlich verwende ich den Stack-Trace, um detailliertere Fehlerberichte von den bereitgestellten Anwendungen zu erhalten. Kann diese Funktionalität erreicht werden, ohne auf diese Dateien angewiesen zu sein?

Wie viele Hinweise des ursprünglichen Quellcodes enthalten diese Dateien? Wäre es einfacher, meine Anwendung mit dem Reverse-Engineering zu versehen?

+0

Es wäre hilfreich, wenn Sie angegeben haben, welche Umgebung Sie verwenden. Viele Entwicklerwerkzeuge geben PDB-Dateien aus. –

Antwort

11

Es fügt grundsätzlich von Informationen für:

  • Alle nicht-öffentlichen Typen, Schnittstellen, Strukturen, Klassen
  • Lokale Variablen in Funktionen
  • Quelle Dateinamen für einen entsprechenden Code und entsprechenden Zeilennummern im Source-Code .

die alle zusammen macht Reverse Engineering sehr einfach für nativen Code.

Zum Glück können Sie eine abgespeckte Version Ihrer PDB-Dateien erstellen, die nur öffentliche Informationen mit /PDBSTRIPPED Parameter enthält.

Oh Sie bearbeitet, um C# /. NET hinzuzufügen, so bin ich nicht sicher, ob "PDBSTRIPPED" anwendbar ist. Aber .NET-Anwendungen sind sehr einfach zu reverse engineer auch ohne Symbolinformationen. Ich hätte nichts dagegen, sie in ein .NET-Projekt aufzunehmen.

3

Sie könnten versuchen, mit dia2dump auf den Inhalt zu sehen.

3

Die verwalteten PDB-Dateien enthalten die folgenden Informationen:

  • die Namen aller lokalen Variablen
  • die Namen aller Quellcodedateien und die Abbildung von IL-Instruktionen auf Linien in diesen Dateien.

Alles andere ist in der Binärdatei selbst enthalten, einschließlich der Namen aller Typen, Mitglieder und Funktionsargumente.

Quelle: PDB files: what every developer must know.

Verwandte Themen