2016-06-08 15 views
0

Situation:Wie ist Debugging ohne PDB-Dateien möglich?

  • Projekt DEP ein .NET-Klassenbibliothek Projekt, VS2015 mit entwickelt, .NET 4.5
  • Projekt A Referenzen DEP.dll (den dll, nicht das Quellcode Targeting-Projekt selbst)
  • Projekt A und DEP Teil getrennter Lösungen

Wenn ich baue DEP im Debug-Modus ist, und dann Projekt A I debuggen, kann ich in dem Code von DEP Schritt noch, obwohl ich keine pDB-Dateien zu sehen im DEP-Ausgabeordner. Ich frage mich, wie Debugging DEP möglich ist. Ich dachte, dass pdbs immer benötigt werden, um debuggen zu können. Oder enthalten Dlls, die im Debug-Modus erstellt werden, genügend Debug-Informationen?

Antwort

6

Jedes Programm ist debuggbar. Die grundlegendste Fähigkeit eines Debuggers besteht darin, Prozessorbefehle in einem Schritt auszuführen, Prozessorregister zu betrachten und den Speicher zu inspizieren. Seele der Maschinenkram. Was Sie ohne eine PDB nie erhalten werden, ist die Fähigkeit, den Quellcode, Einzelschrittanweisungen und inspizierte benannte Variablen zu betrachten. Es ist äußerst unpraktisch, Fehler ohne PDB zu beheben.

Wenn Sie in der Tat Quellcode sehen, dann ist das nicht sehr überraschend, der Debugger ist ziemlich gut bei der Suche nach einem PDB. Wenn Sie es nicht selbst kopiert haben, kann der Debugger das Verzeichnis an seinem ursprünglichen Speicherort, wo der Compiler es angegeben hat, im Verzeichnis obj\Debug des Projekts finden. Der Pfad zu dieser PDB ist in die ausführbare Datei eingebettet. Sie können herausfinden, wie es gefunden wurde, verwenden Sie Debug> Windows> Module, klicken Sie mit der rechten Maustaste auf die DLL und wählen Sie Symbol Load Information. Es zeigt Ihnen überall, wo der Debugger nach der PDB gesucht hat.

+0

Ich sehe Quellcode. Mir war nicht bewusst, dass die ausführbare Datei den PDB-Pfad enthält – bvgheluwe