2008-08-26 7 views

Antwort

11

Sie können die Quellindexfunktion der Debugging-Tools für Windows verwenden, die Verweise auf die entsprechenden Revisionen der Dateien in Ihrem Quell-Repository als alternativen Stream in der PDB-Datei speichert.

+3

http://msdn.microsoft.com/en-us/library/ms680641.aspx –

+0

ist die PDB indiziert gerade aus der Quellcodeverwaltung Mit GOLD! Ich wünsche mir, dass alle Open-Source-Projekte damit beginnen würden. – Trumpi

+1

Das ist Minze. Ich war mir dieser Funktion nicht bewusst! Dieser Artikel ist auch nützlich: http://entland.homelinux.com/blog/2006/07/06/setting-up-a-symbol-server/ – Pete

7

Wenn Sie nach allgemeineren Pfaden suchen, die in einer PDB-Datei eingebettet sind, könnten Sie zuerst den MS-DOS-Befehl subst verwenden, um einen bestimmten Ordner einem Laufwerksbuchstaben zuzuordnen.

subst N: <MyRealPath> 

Öffnen Sie dann Ihr Projekt in Bezug auf das Laufwerk N: und erstellen Sie es neu. Ihre PDB-Dateien verweisen auf die Quelldateien auf N :. Jetzt ist es egal, wo Sie diese bestimmte Menge von Quelldateien platzieren, solange Sie das Stammverzeichnis "N:" wie bei der Erstellung aufrufen.

Diese Praxis wird von John Robbins in seinem ausgezeichneten Buch empfohlen, Debugging Applications for Microsoft .NET and Microsoft Windows.

1

Es ist sicherlich möglich, wie On Freund bereits darauf hingewiesen hat. Wenn es aber nur so ist, dass die Quellen während des Debuggens gefunden und geladen werden können, wäre ein besserer Weg, den Quellpfad entsprechend einzustellen. Sobald es in einem Debugger gesetzt ist, werden alle hartcodierten Pfade in PDBs vorgemerkt.

In windbg (zum Beispiel):

.srcpath + path_to_source_root
oder diese (falls Sie debuggen remote):
.lsrcpath + path_to_source_root

2

ich finden wollte Die Antwort darauf, um einen Absturzspeicherauszug zu debuggen, der in einer ausführbaren Datei aufgetreten ist, die ich nicht auf meinem Computer erstellt habe, daher war der Pfad zu dem Quellcode, auf den in der PDB verwiesen wird, ungültig, ebenso wie der Pfad zu dem PDB, auf die in der ausführbaren Datei verwiesen wird.

Nach der Suche und der Suche nach etwas, das funktioniert, entdeckte ich, dass, wenn Sie die ausführbare Datei und PDB neben der Crash-Dump-Datei (dh im selben Verzeichnis), dann öffnen und führen Sie den Crash-Dump in VS, wird VS finden und verwenden Sie die PDB/EXE lokal. Außerdem wird nach dem Quellcode gefragt, wenn Sie auf einen Eintrag in der Aufrufliste klicken: Sie können auf den Quellcode zeigen, der relevant ist, alles funktioniert gut, was großartig ist!

Wie auch immer, hoffentlich hilft das jemand anderes ... :)

Verwandte Themen