Friday, June 1, 2012

WinDBG: How to load specific version of mscordacwks.dll for debugging crash dumps



http://geekswithblogs.net/rupreet/archive/2012/03/12/148966.aspx


To solve this, we need this specific version of the assembly to continue debugging. The minor version of the framework changes whenever Microsoft releases some patches, hot fixes or service packs. Depending on what patch or hot fix is applied on that machine, the version of the assembly will differ.
One of the easy ways to resolve is to copy the mscordacwks.dll from the machine the dump was taken and copy in the “discoverable” folder (path which is part of .sympath).
But there are times when that machine is not available or don’t have access to it or simply you are not able to get your hands on the specific assembly.
This site(http://www.mskbfiles.com/mscorwks.dll.php) details out each and every hotfix/patch with specific framework version number associated to it so that when we need a specific version, we can download the patch and extract the required assemblies.
Once the update/hotfix is downloaded, we extract the required assemblies using the below commands –
c:\ >expand.exe -f:* C:\Windows6.0-KB983589-x64.msu C:\temp
c:\ >expand.exe -f:* C:\temp\Windows6.0-KB983589-x64.cab C:\temp\cab
In the cab folder, the required assembly would be present.
The other way to extract the files is to use Winzip or some compression tool which lets you extract files from *.cab.
Just rename the assembly in mscordacwks_<arch>_<arch>_<version>.dll format and place it in the discoverable path of the debugger (path which is part of .sympath).

No comments:

Post a Comment