Windbg dump with framework 4.0 dlls and framework 2.0 dlls

When I tried to analyze a w3wp Sharepoint 2010 process dump, from a server where I had the 2.0 and 4.0 frameworks installed I had problems running “DumpHeap -stat”:

0:000> !DumpHeap -stat
The garbage collector data structures are not in a valid state for traversal.
It is either in the “plan phase,” where objects are being moved around, or
we are at the initialization or shutdown of the gc heap. Commands related to
displaying, finding or traversing objects as well as gc heap segments may not
work properly. !dumpheap and !verifyheap may incorrectly complain of heap
consistency errors.
Error requesting GC Heap data

Since my process was running in framework 2.0, I copied the Dlls from server, from .net framework 2.0 64 bits folder:

sos.dll

mscorwks.dll

mscordacwks.dll

load this dlls, and run:

0:000>  .cordll -I mscorwks.dll -N -ve

CLRDLL: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscordacwks.dll:2.0.50727.6400 f:0
doesn’t match desired version 2.0.50727.4216 f:0
SYMSRV:  c:\symbols\mscordacwks_AMD64_AMD64_2.0.50727.4216.dll\4E1545829a3000\mscordacwks_AMD64_AMD64_2.0.50727.4216.dll not found
SYMSRV:  http://msdl.microsoft.com/download/symbols/mscordacwks_AMD64_AMD64_2.0.50727.4216.dll/4E1545829a3000/mscordacwks_AMD64_AMD64_2.0.50727.4216.dll not found
CLRDLL: Unable to find mscordacwks_AMD64_AMD64_2.0.50727.4216.dll by mscorwks search
CLRDLL: Unable to find ‘mscordacwks_AMD64_AMD64_2.0.50727.4216.dll’ on the path
DBGHELP: c:\symbols\mscorwks.dll\4E1545829a3000\mscorwks.dll – OK
CLRDLL: Unable to get version info for ‘c:\symbols\mscorwks.dll\4E1545829a3000\mscordacwks_AMD64_AMD64_2.0.50727.4216.dll’, Win32 error 0n87
CLRDLL: ERROR: Unable to load DLL mscordacwks_AMD64_AMD64_2.0.50727.4216.dll, Win32 error 0n87
NOTE: This code is not supported and may not work.
Do not report any problems you have.
CLR DLL status: ERROR: Unable to load DLL mscordacwks_AMD64_AMD64_2.0.50727.4216.dll, Win32 error 0n87
Test new CLR interfaces

After that I renamed my mscordacwks dll to mscordacwks_AMD64_AMD64_2.0.50727.4216.dll, copied it to symbols directory  (c:\symbols\mscorwks.dll\4E1545829a3000\) and run:

0:000>  .cordll -I mscorwks.dll -N -ve

After that I could run my debugging commands.

Advertisements

Tags:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: