Frage

Ich habe PDB-Dateien gehört mit helfen kann zu diagnostizieren, wo ein Absturz aufgetreten.
Mein Grund Verständnis ist, dass Sie Visual Studio, um die Quelldatei geben, die PDB-Datei und die Crash-Informationen (von Dr. Watson?)
Kann jemand bitte erklären, wie alles funktioniert / worum es geht? (Vielen Dank!)

War es hilfreich?

Lösung

PDB-Dateien erzeugt werden, wenn Sie Ihr Projekt erstellen. Sie enthalten Informationen in Bezug auf die eingebauten Binärdateien, die Visual Studio interpretieren kann.

Wenn ein Programm abstürzt und es erzeugt einen Crash-Bericht, Visual Studio ist in der Lage diesen Bericht zu nehmen und verknüpft es zurück auf den Quellcode über die PDB-Datei für die Anwendung. PDB-Dateien müssen aus dem gleichen binären aufgebaut werden, die den Crash-Bericht erzeugt!

Es gibt einige Probleme, die wir im Laufe der Zeit erlebt haben.

  • Die Maschine, die den Crash-Bericht wird das Debuggen muss die Quelle auf dem gleichen Weg wie die Maschine haben, die die binären gebaut.
  • Release-Builds optimieren oft in dem Maße, in dem Sie nicht den Zustand der Objektelementvariablen anzeigen können,

Wenn jemand weiß, wie die ehemaligen zu besiegen, würde ich für einige Eingabe dankbar sein.

Andere Tipps

PDB-Dateien einer Assembly MSIL zu den ursprünglichen Quellenleitungen abzubilden. Dies bedeutet, dass, wenn Sie die PDB setzen, die mit der Montage im selben Verzeichnis wie die Montag, Ihre Ausnahme-Stack-Spuren die Namen und die Linien der Positionen werden in den ursprünglichen Quelldateien kompiliert wurden. Ohne die PDB-Datei werden, sehen Sie nur den Namen der Klasse und Methode für jede Ebene des Stack-Trace.

Sie sollten die PDB-Dateien auf Ihrem Quellcodeverwaltungssystem Blick in einen Symbolserver einrichten und die Indizierung. Ich ging vor kurzem durch diesen Prozess für unser Produkt und es funktioniert sehr gut. Sie müssen nicht darum, PDB Dateien mit den Binärdateien betroffen werden, noch wie die entsprechende Quellcode zu erhalten, wenn Dump-Dateien debuggen.

John Robbins' Buch: http://www.amazon.com/Debugging- Microsoft-NET-2-0-Anwendungen / dp / 0735622027 / ref = pd_bbs_sr_1? ie = UTF8 & s = Bücher & qid = 1222366012 & sr = 8-1

Sehen Sie hier einige Beispielcode zum Erzeugen von minidumps (die müssen Analyse nicht eingeschränkt werden, um Post-Crash - Sie können sie an einer beliebigen Stelle im Code generieren, ohne abzustürzen): http://www.codeproject.com/KB/debug/postmortemdebug_standalone1.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top