Question

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.

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top