Chints
Chints

Reputation: 21

Debug diagnostic tool , WinDBG and Visual Studio fail to open my dump

My setup is as follows:

  1. A 32 bit .net 4.0 website running on 64bit Windows 2003 server
  2. I have Debug Diagnostic 1.2 setup to monitor crashes
  3. I haven't got an automated dump yet but trying to analyze a manual dump.
  4. I have a 32bit windows 7 machine which has Visual Studio 2010 installed on it which i am trying to use to analyze these dump files.

I have tried numerous ways to open the dump file it generates but all fails.

Following is what I have tried:

1. DebugDiag Win 2003

Try to use Analysis tab through Debug Diagnostic directly on the win 2003 server where the website is hosted. I get the following error

.NET runtime was loaded in the progress but managed analysis was not done on this dump file because the managed debugger extension commands failed to execue with the below error

CLRDLL: CLRDLL load disabled

CLRDLL: Unable to find mscordacwks_AMD64_AMD64_4.0.30319.1022.sll by mscorwks search
CLRDLL: Unable to find mscordacwks_AMD64_AMD64_4.0.30319.1022.sll on the path
CLRDLL: ERROR: Unable to find mscordacwks_AMD64_AMD64_4.0.30319.1022.dll , win32 error 0n2

2. DebugDiag Win 7

Try to analyze the dump on a 32bit windows 7 machine, I get the following error:

DebugDiag Analysis cannot be performed against a 64-but dump file from a 32-bit analysis machine

3. WinDbg on Win 7 x86

Try to open the dump through WinDbg tool on a 32bit widows 7 machine:

0:000> !clrstack
Failed to load data access DLL, 0x80004005
Verify that 1) you have a recent build of the debugger (6.2.14 or newer)
            2) the file mscordacwks.dll that matches your version of mscorwks.dll is 
                in the version directory
            3) or, if you are debugging a dump file, verify that the file 
                mscordacwks___.dll is on your symbol path.
            4) you are debugging on the same architecture as the dump file.
                For example, an IA64 dump file must be debugged on an IA64
                machine.

You can also run the debugger command .cordll to control the debugger's
load of mscordacwks.dll.  .cordll -ve -u -l will do a verbose reload.
If that succeeds, the SOS command should work on retry.

If you are debugging a minidump, you need to make sure that your executable
path is pointing to mscorwks.dll as well.

Try run the following commands on WinDBG to register mscordwks and switch to 32 bit version but still no go:

![enter image description here][2]

.loadby sos mscorkks

.load wow64exts

!sw

.cordll -ve -u -l

4. Visual Studio 2010

Try to use Visual Studio 2010 to debug this dump file but that also fails saying unable to display manged code or something.


I've spent 10 days on this already and feeling very disappointed & helpless.

Anybody who could shed some light on whats wrong here please?

Many thanks in advance.

Upvotes: 1

Views: 2243

Answers (1)

Thomas Weller
Thomas Weller

Reputation: 59635

First of all, you have a 64 bit dump. We can see this, because DebugDiag tries to load the 64 bit version of mscordacwks. Next you say that you have a 32 bit web application. This is already a bad situation for .NET. You will not be able to analyze the dump. Maybe you have taken the dump with Task Manager, which by default will generate this sort of dump.

To verify that this is really the case, run the following command in WinDbg:

lm m wow64

If this lists the Wow64 module, then it`s the bad situation. If this does not produce any output, you have a 64 bit dump of a 64 bit application, which is a much better situation. However, you need a 64 bit version of WinDbg to analyze it, otherwise you'll not be able to load the 64 bit SOS extension. Also you need a 64 bit version of DebugDiag to analyze it (see your error messages).

WinDbg should download the correct version of SOS and mscordacwks if you type !analyze -v. Also DebugDiag will try to download it. If that does not work, get the necessary files from the original machine, e.g. using Mscordacwkscollector.

Some other notes:

  1. Meanwhile there is DebugDiag 2.1, which meíght produce better results.
  2. Be sure to type the commands correctly: .loadby sos mscorkks does not work. It is .loadby sos mscorwks and even .loadby sos clr for .NET 4
  3. You have uploaded a picture but removed the corresponding link. Maybe you want to edit your post and upload the picture again. Use the preview to see whether it`s there.

Upvotes: 1

Related Questions