Download SOS.dll by version number
Asked Answered
O

2

11

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.

Oloughlin answered 15/7, 2014 at 17:21 Comment(1)
You can get the appropriate version of SOS.dll on the same machine that the dump was created on. You should not replace the version on your machine. Just use .load <path> to load it. If you debug dumps frequently, I recommend keeping a repository of all unique versions of SOS that you come across.Knew
W
18

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

Wilful answered 18/7, 2014 at 7:14 Comment(0)
C
4

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.

Carrick answered 16/7, 2014 at 5:50 Comment(2)
Thomas, looks like the archive is down. Was it relocated? I had found it helpfulSupersonic
@JeffreyLeCours: oh, I seem to accidentally have deleted it along with my business. I'll look into this. I've not maintained it for a long time, but sure, it may still be useful, even to me :-)Carrick

© 2022 - 2024 — McMap. All rights reserved.