Beim Debuggen eines C++ - Projekts mit Visual Studio 2010 kann die Quelle für CRT nicht gefunden werden. Wenn ich versuche, in ein solches Modul zu gehen, wird "Keine Quelle verfügbar" angezeigt. Es bietet auch keine Option zu Browse
, damit ich es helfen kann, den Quellstandort zu lokalisieren.Keine Quelle für msvcr100d.dll! __ CrtDumpMemoryLeaks()
Unter der Option Solution-> Common Properties-> Debug Source-Dateien, der richtige Speicherort für die CRT-Quelle aktualisiert.
In fehlendem Source-Level-Debugging von CRT muss ich die Disassemblierung durchlesen, die schwierig wird.
Kann mir jemand helfen herauszufinden, was schief gehen könnte?
Bitte beachten ** Ich verwende ein externes Build-System über Visual Studio, um mein C++ - Projekt zu erstellen.
Mit der Führung von Hans hier, wie ich mich auf das Problem eingrenzte.
Während der Haltepunkt noch aktiv war, habe ich alle Symbol Load Informationen aufgelistet. Ich erkannte, dass msvcr100d.i386.pdb
nicht mit der DLL übereinstimmen. Es ging tatsächlich den ganzen Weg hinunter, um von dem Microsoft-öffentlichen Symbolspeicher zu holen, der natürlich die Symbole abgestreift hatte. Das war also die Ursache meines Problems.
Und hier ist ein ähnliches Problem in social.msdn
Vielen Dank für Ihre Antwort. Es wäre ein bisschen schwierig, den Compiler-Schalter teilweise zu ändern, weil er das Verhalten ändern könnte, und zwar vollständig, weil ich ein externes Build-System verwende. Aber das zu sagen, macht für mich Sinn. Zeitstempelkonflikt könnte möglich sein. Ich denke, connect.microsoft.com wäre ideal für diese Abfrage. Danke nochmal. – Abhijit
Es ist kein Zeitstempel-Mismatch. Die .pdb-Datei enthielt alle Quelldatei- und Zeileninformationen. Dies ist ansonsten ziemlich typisch für DLLs, die im Freigabemodus erstellt wurden. Alle .pdbs für die Windows-DLLs werden beispielsweise auf diese Weise ausgeliefert. Nicht zuletzt, weil Sie keinen Quellcode haben. Es ist jedoch kein Release-Modus DLL und Sie haben Quelle :) Könnte ein dummer Fehler sein, kann connect Ihnen sagen. –
Bingo :-) Sie haben Recht.Ich dachte, dass Timestamp zwischen PDB und DLL nicht passt, konnte aber nicht glauben, dass sie tatsächlich die Symbole entfernt haben. Hier ist, wie ich es verifiziert von der Debug-Ausgabe 'Loaded 'C: \ Windows \ SysWOW64 \ msvcr100d.dll', Symbole geladen (Quellinformationen gestrippt) .' – Abhijit