Nach dem Laden einer DLL-Bibliothek mit LoadLibrary("file.dll")
öffnet und schließt Visual Studio auch file.pdb
.Wie erzwingen Visual Studio 2015 zum Entsperren .PDB-Datei nach FreeLibrary-Aufruf?
Das Problem ist - die file.pdb
bleibt gesperrt, auch nach dem Aufruf FreeLibrary(...)
.
Es ist notwendig, file.dll
neu kompilieren und es einmal nachladen wieder (extern, außerhalb von MSVS, CL.exe
mit), aber die Zusammenstellung schlägt fehl, weil file.pdb
noch gesperrt ist.
Wie Visual Studio 2015 Freigabe der Datei sperren?
Zum Tools -> Options
dann Debugging -> General
, dann auf Use Native Compatibility Mode
drehen:
Es ist eine VS2015-Einstellung, es zwingt den Debugger, eine ältere Debugging-Engine zu verwenden. Der in VS2013 verwendete. Sinnvolle Einstellung der neue Motor ist ziemlich fehlerhaft. Jemand sollte bei connect.microsoft.com einen Fehler melden, ich melde mich freiwillig. –
@HansPassant Es wurde ein ähnlicher Fehler für MSVS 2013 gemeldet, der wie in "Nicht reparieren" https://connect.microsoft.com/VisualStudio/feedback/details/1026184/visual-studio-keeps-locking als geschlossen markiert ist -die-pdb-Datei-even-after-dll-is-released-using-freelibrary. Also habe ich mich nicht darum gekümmert. Es gibt auch einen interessanten Kommentar von Andrew Hall @ MSFT: "Leider hat der Visual Studio-Debugger das Entladen eines pdb-Programms beim Entladen der Binärdatei aus dem Prozess nie unterstützt. Das Debugging musste immer gestoppt werden." Vielleicht wurde es geändert? – JBeurer