Download SOS.dll by version number

I have not investigated in full detail, but it seems that WinDbg downloads SOS.dll for a .NET dump if you type !analyze -v. Also, DebugDiag seems to load SOS.dll when you do a dump analysis.

If none of the options works, run Mscordacwkscollector on the machine where the dump was created.

I also maintain an archive of debugging DLLs.


Update: I published a blog post on how to open snapshots collected on other machines


Please try to do following steps if you do not have needed SOS & CLR assemblies from target machine:

  • .sympath c:\symbols //[setSymPath]
  • .symfix+ //[perform a try to download needed assemblies. Would take ages for the first time
  • .cordll -ve -u -l // try to load needed assemblies automatically
  • .reload // just-in-case

If it does not work [rare case], a set of steps to be performed:

  1. SOS an CLR assemblies are included into Microsoft updates, so you need to pull the same update that is installed on the target machine ( where memery dump was captured ). Here is a link to repo : http://www.mskbfiles.com/sos.dll.php
  2. Download needed update and unzip it a couple of times [ f.e. you will get 'GDRGDR.cab' and 'QFEGDR.cab' files -> unzip them too ]
  3. The resulting folders would have needed assemblies named like: 'clr_dll_amd64' -> should rename to clr.dll
  4. You will need to find needed ones ( CPU architecture, bitness matters )
  5. You may load it into the Windbg using .load c:\mytempfolder\NDP40-KB2835393-x64\QFEGDR\sos [Only exact assembly match would work]
  6. Upon files are loaded, use .reload command just-in-case

Hope this helps =)