Frage

Grundsätzlich möchte ich Folgendes tun:Eine PDF-Datei enthält einen Speicherort der Quelldateien (z. B. C:\dev\proj1\helloworld.cs).Ist es möglich, diese PDF-Datei so zu ändern, dass sie einen anderen Speicherort enthält (z. B. \more\differenter\location\proj1\helloworld.cs)?

War es hilfreich?

Lösung

Sie können die Quellindizierungsfunktion 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.

Andere Tipps

Wenn Sie die in einer PDF-Datei eingebetteten Pfade allgemeiner beschreiben möchten, können Sie zunächst MS-DOS verwenden subst Befehl zum Zuordnen eines bestimmten Ordners zu einem Laufwerksbuchstaben.

subst N: <MyRealPath>

Öffnen Sie dann Ihr Projekt relativ zum N:fahren und umbauen.Ihre PDB-Dateien verweisen auf die Quelldateien auf N:.Jetzt spielt es keine Rolle, wo Sie diesen bestimmten Satz von Quelldateien ablegen, solange Sie anschließend das Stammverzeichnis „N:“ nennen, wie Sie es beim Erstellen getan haben.

Diese Praxis wird von John Robbins in seinem ausgezeichneten Buch empfohlen: Debuggen von Anwendungen für Microsoft .NET und Microsoft Windows.

Ich wollte die Antwort darauf finden, 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 zum Quellcode, auf den in der PDB verwiesen wird, ebenso ungültig wie der Pfad zur PDB in der ausführbaren Datei referenziert.

Nachdem ich herumgesucht und nichts gefunden hatte, was funktionierte, stellte ich fest, dass, wenn man die ausführbare Datei und das PDB neben der Crash-Dump-Datei platziert (d. h.im selben Verzeichnis) und dann den Crash-Dump in VS öffnen und ausführen, wird VS die PDB/EXE lokal finden und verwenden.Darüber hinaus wird beim Klicken auf einen Eintrag im Aufrufstapel auch nach dem Speicherort des Quellcodes gefragt:Wenn Sie es auf den relevanten Quellcode verweisen, funktioniert alles einwandfrei, was großartig ist!

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

Es ist durchaus möglich, wie On Freund bereits betont hat.Wenn es aber nur darum geht, die Quellen beim Debuggen zu finden und zu laden, wäre es besser, den Quellpfad entsprechend festzulegen.Sobald es in einem Debugger festgelegt ist, werden alle hartcodierten Pfade in PDBs vorrangig behandelt.

In windbg (zum Beispiel):

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

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