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:
- 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
- Download needed update and unzip it a couple of times [ f.e. you will get 'GDRGDR.cab' and 'QFEGDR.cab' files -> unzip them too ]
- The resulting folders would have needed assemblies named like: 'clr_dll_amd64' -> should rename to clr.dll
- You will need to find needed ones ( CPU architecture, bitness matters )
- You may load it into the Windbg using .load c:\mytempfolder\NDP40-KB2835393-x64\QFEGDR\sos [Only exact assembly match would work]
- Upon files are loaded, use .reload command just-in-case
Hope this helps =)