2016-11-15 4 views
0

Ich habe einige kompilierte C++ - Bibliotheken (.lib, nicht von mir selbst kompiliert), die ich in meinem eigenen C++ - Projekt verknüpfen. Ich habe auch den Quellcode bekommen.Schritt in Quellcode der verbundenen Bibliothek

Ist es beim Debuggen möglich, in die Funktionen dieser Bibliotheken zu gelangen, die den Quellcode verwenden? Wie kann ich dem Visual Studio-Debugger mitteilen, diese Quellcodedateien zu verwenden?

Ich denke, dass .lib Dateien eine Art von Debugging-Informationen benötigen würde - kann ich herausfinden, ob sie diese bekommen?

+0

[Ziemlich nah] (http://stackoverflow.com/questions/4316801/pointing-visual-studio-2008-to-the-source-code-of-a-third-party-dll-for-debuggin) aber vielleicht finde ich einen besseren. –

+0

[Auch sehr nah] (http://stackoverflow.com/questions/2620279/visual-studio-attach-source-code-to-reference), aber falsche Sprache. Können Sie bitte überprüfen, ob das auch für C++ funktioniert? –

Antwort

2

Microsoft Compiler speichern Debuginformationen in separaten PDB-Dateien. Wenn VS eine Bibliothek (zB myLib) lädt, die von einer ausführbaren Datei verwendet wird (entweder durch Anhängen an eine laufende Instanz oder durch direktes Starten unter Debugger), sucht es auch nach myLib.pdb. Wenn Sie es finden, wenn Sie versuchen, in solch eine Funktion zu treten, wird es Sie zuerst die Position der Quelle fragen, die ihm entspricht. Wenn es korrekt bereitgestellt wird, können Sie es debuggen.

Ohne .pdb-Dateien, ich kenne keine Möglichkeit zum Debuggen der externen Bibliothek auf Quellcodeebene.

Wenn es keine PDB-Dateien gibt, aber Sie den Quellcode für die externe Bibliothek haben, wäre es möglich, dass Sie es mit Debugsymbolen (PDB-Dateien) neu erstellen?

+0

Eigentlich versuche ich gerade, sie neu zu erstellen, um passende PDB-Dateien zu bekommen. Aber ich brauche einige Experimente, da ich nicht weiß, welche Optionen für die kompilierten Binärdateien ich bereits habe. Werde zurückkommen, sobald ich es geschafft habe. – ZoolWay

+0

@ZoolWay, wenn die Antwort von George Spatacean für Sie hilfreich ist, markieren Sie sie bitte als Antwort, damit sie anderen Community-Mitgliedern helfen kann, die das gleiche Problem wie Sie hatten :) –

+0

Ok, ich habe es geschafft, es neu zu erstellen (WebRTC native ist ziemlich komplex). Also habe ich die 'lib' und' pdb' Dateien bekommen. Dennoch tritt es nicht in die Quelle ein, selbst wenn ich * in spezifische * stecke. Schätze das funktioniert nicht mit dem gemischten Debugger - das ist gemanagter und nicht gemanagter Code. – ZoolWay

Verwandte Themen