mind1n
mind1n

Reputation: 1206

Download SOS.dll by version number

I got a mini dump that requires SOS.dll 4.0.30319.1008, however the winDBG failed to download the correct dll. The symbol path has already been set to SRV*C:\symcache*http://msdl.microsoft.com/download/symbols

Does anyone know where to download the SOS.dll by providing the version number? I decided to download the dll manually and replace it to the Microsoft.net fold under windows.

Upvotes: 11

Views: 8081

Answers (2)

Nikolay Mitikov
Nikolay Mitikov

Reputation: 533

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 =)

Upvotes: 18

Thomas Weller
Thomas Weller

Reputation: 59238

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.

Upvotes: 4

Related Questions