Wie zu verstehen .pdb-Dateien, die von visual studio?
Öffnete ich Sie mit einem editor,Total chaotisch.
BTW, in der "Demontage" - Ansicht,ist es möglich, dump alle Assembler-code? Ich habe versucht, aber kann nur schnappen Sie sich einen Bildschirm mit Linien
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe einen überblick über deine Fragen. Es gibt Rahmen, die Sie haben sollten, setzen Sie in Ihrer Frage, ich denke, Sie versuchen zu Debuggen, die einen DirectShow-plug-in, dass Sie nicht über den Quellcode. Eine Art von Kamera gizmo.
Nein, die Eröffnung eines .pdb-Datei in einem text-editor nicht gehen, um Ihnen zu zeigen, etwas sinnvolles. Es ist binären Daten. Ich weiß, Sie haben eine einschlägigen .pdb für das plug-in, mit dem Sie arbeiten, erhalten Sie anständige stack-traces mit benannten Funktionen. Sie haben womöglich das .pdb vom Microsoft Symbol-server. Lesen ein .pdb-Datei ist die Aufgabe des Debuggers. Es gibt mehrere APIs zur Verfügung, um es selbst Lesen, die dbghelp-API ist der Kern einer.
Aber es wird nicht zeigen Ihnen alles, was Sie nicht bereits wissen, aus dem debugger. Die .pdb-Datei ist nur eine Datenbank-Funktionen. Du hast das abgespeckte, wird es nie mehr zeigen, als das, was Sie sehen in dem call-stack-Fenster.
Dies ist letztlich eine Kette von XY Fragen. Sie Fragen immer wieder über Y, ohne sich jemals öffentlich zu zeigen, was die echten X-problem ist. Sie erhalten nur nutzlose Antworten, wie diese hier, bis Sie uns sagen über X.
CodeProject: Wie Überprüfen Sie den Inhalt der Programm-Datenbank (PDB) Datei
Beachten Sie aber, daß die Dateien für den debugger und nicht direkt für Sie. Zumindest habe ich nicht den dringenden Wunsch, in der Lage zu Lesen jede mögliche Datei-format in ein text-oder hex-editor.
In Anbetracht @Hans Passant Bemerkungen - ich denke, die Frage verdient eine Antwort, wenn nichts anderes, dann zum Wohle der Gäste hier suchen.
Die mitgelieferten Werkzeug für die PDB-Inspektion ist DBH. Es ist gebündelt mit den debugging tools für windows. Zwar ein Kommandozeilen-tool (ich komme aus der GUI-generation persönlich) , es ist ungemein Reich an Funktionen und Sie würden sich schwer tun etwas zu finden, es nicht tun können in der Hälfte einer Linie.
Es klingt wie das, was Sie wollen, ist die
dumpbin
Befehl. Beachten Sie, dass dies erfordert die VC-tools werden in Ihrem PFAD; man könnte entweder verwenden Sie die entsprechende Verknüpfung im start-Menü, oder führen Sie%VSxxCOMNTOOLS%\vsvars32.bat
, woxx
ist eine Eselsbrücke für die aktuelle version von VC, die Sie verwenden: der einfachste Weg, um herauszufinden, was genau die environment-variable zu verwenden, ist wahrscheinlich zu laufenset
und sehen, welche Variablen mit solchen Namen sind tatsächlich in Ihrer Umgebung. Zum Beispiel, auf einem system mit Microsoft Visual C ++ 2005 Express und Microsoft Visual C ++ 2008 Express installiert, ich bekomme diese:So, erstellen Sie ein neues shell-Fenster mit dem VC-9 (2008) - tools Hinzugefügt, um den Pfad kann ich
start "VC 9" "%VS90COMNTOOLS%\vsvars32.bat"
. (Die"VC 9"
argument ist der Titel für das neue Fenster.)Sowieso mit dem VC-tools im PFAD ist, können wir solche Befehle wie
dumpbin /disasm ..\src\temacs.exe > temacs.disasm
(außer Sie sind wohl nicht in dernt
Unterverzeichnis eines xemacs Baum, also halten Sie sich welchen Weg Sie wollen es). Das wird zerlegen der Datei angegeben, unter Verwendung einer geeigneten PDB-Sie finden für das symbol Namen.Was MS fordert die Dokumentation finden Sie in der dumpbin MSDN Eintrag (eigentlich, es ist viel besser, als ich es in Erinnerung, als -- vielleicht war ich wund es so Informationswert über die
/disasm
Flagge im besonderen), aber unterschätzen Sie nicht die Nützlichkeit vondumpbin /?
-- kann es nicht geben, so viel Informationen, aber zumindest können Sie sehen es alle auf dem Bildschirm gleichzeitig.