Ich habe ein sehr seltsames Problem beim Debuggen einer Minidump-Datei mit windbg. Ich habe dies sowohl auf meiner eigenen Maschine versucht und indem Sie windbg auf der Zielmaschine laufen lassen, von wo die Minidump genommen wurde, aber das Ergebnis ist in beiden Fällen das gleiche.
Am Anfang lade ich die erforderlichen dlls wie unten gezeigt, beachten Sie das gleiche Problem tritt auf, wenn ich die Sympathie zu Microsoft Symbolserver einstellen.
0: 000 & gt; .symfix c: \ sos
0: 000 & gt; .load C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ sos
Beim Überprüfen der Kette sieht alles gut aus, also gehe ich jetzt zum Ausführen! pe und erhalte einen Fehler über mscordacwks, der normalerweise, soweit ich weiß, anzeigt, dass ich die falsche Version des .net-Frameworks verwende. Aber das sollte wirklich nicht der Fall sein, da ich dies auf dem Zielrechner ausführe.
Ich mache dann eine ausführliche loading
.cordll -ve -u -l
und folgende Fehlermeldung erhalten
CLRDLL: C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ mscordacwks.dll: 4.0.30319.17929 f: 8 entspricht nicht der gewünschten Version 4.0.30319.296 f: 8
Was ich nicht verstehe ist, warum windbg nach einer älteren Version von mscordacwks sucht? Es scheint, dass der .296-Build die Version der Clr ist, die vom ms-Symbolserver heruntergeladen wird, aber ich habe ausdrücklich windbg angewiesen, die lokale Version zu verwenden.
Ich habe die vorgeschlagenen Ansätze ausprobiert hier und hier funktioniert aber nichts. Jede Hilfe wird sehr geschätzt.
Dies liegt daran, dass Sie einen .NET 4.0-Speicherauszug auf einem Computer mit .NET 4.5 installieren. Die zugrundeliegenden Debug-APIs wurden zwischen 4.0 und 4.5 geändert, sodass Sie einen .NET 4.0-Speicherauszug mit der .NET 4.5 SOS.dll nicht debuggen können. Was ich tue, ist, ein .NET 4.0 SOS in mein winext-Verzeichnis zu kopieren und es explizit zu laden, wenn ich einen .NET 4.0-Dump debugge.
Wie haben Sie die Schritte von WinDbg x64: Kann keinen Absturzspeicherauszug debuggen - Fehler beim Laden der Datenzugriffs-DLL ?
Sie sollen
Wahrscheinlich erhalten Sie dann eine Fehlermeldung, dass WinDbg die SOS für diese Version von .NET 4 möchte, und Sie können