2010-11-30 3 views
2

Ich habe ein VS 2008 C++ - Projekt, das eine Bibliothek von Drittanbietern (Open Scene Graph) verwendet.Visual Studio 2008 auf den Quellcode einer DLL von Drittanbietern zum Debuggen zeigen

Wenn ich das Debuggen des Projekts beginne, springt der Debugger jedes Mal, wenn eine Funktion aus dieser externen Bibliothek aufgerufen wird, einfach darüber, weil (offensichtlich) der Debugger keine CPP-Dateien hat, wo der Code nachschlagen. Es springt nur in Header-Dateien, die mit meinem Projekt verknüpft sind, da diese Dateien existieren und ihr Speicherort bekannt ist. Also, ich kann nur sehen, was in diesen kleinen Inline-Funktionen vor sich geht, aber nicht in den größeren Funktionen, deren Implementierung in .cpp-Dateien ist, die ich nicht habe.

Ich muss irgendwie durch den Quellcode dieser dlls/libs von Drittanbietern gehen, genauso wie ich es mit meinem eigenen Code mache.

Ich habe den gesamten Quellcode dieser Bibliothek heruntergeladen und auf meinem Rechner kompiliert. Jetzt habe ich die dlls und libs und die .pdb-Dateien und die .cpp-Dateien auch. Aber wie genau teile ich Visual Studio die Standorte der .cpp-Dateien der Drittanbieter-Bibliothek, so dass es weiß, dass, wenn ich in eine Funktion von einer DLL oder einer .lib kommen will, öffnet es die entsprechende. CPP-Datei (obwohl es nicht in meinem Projekt ist und befindet sich in einem völlig anderen Ordner)?

Ist das überhaupt möglich?

Ich habe versucht, die .libs, die .dlls (Debug-Versionen), .pdbs sowohl an die Orte, die mein Projekt verwendet und "Zusätzliche Bibliotheksverzeichnisse" und zum Projektordner kopieren, aber das muss nicht genug sein.

Antwort

2

Fügen Sie das Verzeichnis mit den PDB-Dateien zu Extras -> Optionen -> Debugging -> Symbole.

+0

Überprüft http://www.symbolsource.org/ und sagt, dass ich auch den Speicherort des Quellcodes angeben muss. Für Microsoft-Produkte werden spezielle Server für .pdb- und .cpp-Dateien verwendet, aber die Bibliothek, mit der ich arbeite (Open Scene Graph), ist natürlich keine Microsoft, also ist sie nicht auf ihrem Server! – Igor

+0

Hier wäre, was ich tun müsste, wenn die Bibliothek von Microsoft wäre: http://support.microsoft.com/kb/311503. Open Scene Graph hat natürlich nichts dergleichen. – Igor

+0

Die PDB-Dateien selbst verweisen auf den Quellcode (und die Binärdateien verweisen auf die PDBs). Wenn Sie also die Dinge selbst erstellt und die Quell- und/oder PDBs nicht verschoben haben, sollte Visual Studio die Dinge automatisch finden. Wenn sich die PDBs nicht an ihrem ursprünglichen Ort befinden, sollten die Symbolpfade (die Einstellung, die ich erwähnte) so eingestellt sein, dass sie auf sie zeigen. Ich denke, VS wird Sie dann nach Quelldateien fragen, wenn es sie nicht finden kann. Ich habe festgestellt, dass es ziemlich fummelig ist ... Ich rate, Process Monitor zu starten und zu sehen, was VS sucht und wo! Das mache ich, wenn es nicht funktioniert. –

Verwandte Themen