I am trying to read the crash dump file for a .NET 2.0 assembly using WinDbg and SOS.dll.

From reading around, I have understood that I have to copy sos.dll, mscorwks.dll and mscordacwks.dll into the windbg install directory.

So I did this, but WinDbg then told me that the copies from my own .Net directory are the wrong version. WinDbg is looking for mscordacwks.dll_x86_x86_2.0.50727.4211.dll, and I have got mscordacwks.dll_x86_x86_2.0.50727.5420.dll

Here is the question: where do I find the correct versions of these files?

a) on the machine where the application that crashed was built
or
b) on the machine where the application crashed?

I found this site where you can see which .NET patch has which versions included, but I haven't managed to download the relevant patch (can't find it) so it occurred to me that copying the files from one of the affected machines would be quicker.

有帮助吗?

解决方案

Either a or b will work, provided that .NET has not since been updated on either machine. If I don't have a particular DAC file, I usually get it from the machine that crashed. Remember to save every single DAC you ever encounter into a directory. Then add this directory to your symbol path. This will cause you to have less difficulty locating DACs as time goes on.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top