Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

WinDBG fails to load CLR

1,312 views
Skip to first unread message

Paul Williams

unread,
Apr 29, 2010, 9:46:01 AM4/29/10
to
I am running WinDbg 6.12.0002.633 X86 on Windows 7 x86. My local .NET
Framework 2.0 version is 2.0.50727.4927 (based on mscorwks.dll version).

I am trying to debug a full crash dump from a customer who is running .NET
Framework 2.0 version 2.0.50727.3607 (again according to mscorwks.dll version
in the dump). When I load the sos.dll, I get output below.

It appears the the file I need is not available from the Microsoft Symbol
Servers. My symbol path is
"SRV*C:\symbols*http://msdl.microsoft.com/download/symbols".

Do I need to contact the customer to get their exact version of
mscordacwks.dll and mscorlib.dll and add it to my symbol path manually?

Do these DLLs need to be added to Microsoft's symbol servers?

0:009> !sym noisy
noisy mode - symbol prompts on
0:009> .cordll -ve -u -l
CLR DLL status: No load attempts
0:009> .loadby sos mscorwks
0:009> !threads
CLRDLL:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscordacwks.dll:2.0.50727.4927
f:0
doesn't match desired version 2.0.50727.3607 f:0
SYMSRV:
c:\symbols\mscordacwks_x86_x86_2.0.50727.3607.dll\4ADD5446590000\mscordacwks_x86_x86_2.0.50727.3607.dll not found
SYMSRV:
http://msdl.microsoft.com/download/symbols/mscordacwks_x86_x86_2.0.50727.3607.dll/4ADD5446590000/mscordacwks_x86_x86_2.0.50727.3607.dll not found
SYMSRV:
C:\symbols\mscordacwks_x86_x86_2.0.50727.3607.dll\4ADD5446590000\mscordacwks_x86_x86_2.0.50727.3607.dll not found
SYMSRV:
http://msdl.microsoft.com/download/symbols/mscordacwks_x86_x86_2.0.50727.3607.dll/4ADD5446590000/mscordacwks_x86_x86_2.0.50727.3607.dll not found
CLRDLL: Unable to find mscordacwks_x86_x86_2.0.50727.3607.dll by mscorwks
search
CLRDLL: Unable to find 'mscordacwks_x86_x86_2.0.50727.3607.dll' on the path
SYMSRV: c:\symbols\mscorwks.dll\4ADD5446590000\mscorwks.dll not found
SYMSRV:
http://msdl.microsoft.com/download/symbols/mscorwks.dll/4ADD5446590000/mscorwks.dll not found
DBGHELP: C:\Program Files\Debugging Tools for Windows (x86)\mscorwks.dll -
file not found
SYMSRV: C:\symbols\mscorwks.dll\4ADD5446590000\mscorwks.dll not found
SYMSRV:
http://msdl.microsoft.com/download/symbols/mscorwks.dll/4ADD5446590000/mscorwks.dll not found
CLRDLL: Unable to find mscorwks.dll by search
CLRDLL: ERROR: Unable to load DLL mscordacwks_x86_x86_2.0.50727.3607.dll,
Win32 error 0n2
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_<arch>_<arch>_<version>.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 PSSCOR 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.

Olegas

unread,
May 3, 2010, 3:42:50 PM5/3/10
to
Hi Paul,

The error tells you exactly which file is missing on your machine
“CLRDLL: ERROR: Unable to load DLL mscordacwks_x86_x86_2.0.50727.3607.dll,
Win32 error 0n2”

When you use SOS to debug a dump, your local machine has to have the same
version of mscordacwks.dll, mscorwks.dll and preferably SOS.dll that matches
the environment where dump was gathered.
You can probably obtain the DLLs from
http://support.microsoft.com/default.aspx/kb/976569, extract them into a
folder of your choice (let’s say C:\3607\). After that step you should also
rename x86 version of mscordacwks.dll to
mscordacwks_x86_x86_2.0.50727.3607.dll in the newly created folder and
attempt to reload SOS similar to the following:
.exepath+ c:\3607
.load c:\3607\sos.dll

You can use FileMon of Process Monitor to see which DLLs are loaded and from
what directory if you keep running into issues.

Alternatively, you can try using PSSCOR2 instead of SOS:
http://blogs.msdn.com/tom/archive/2010/03/29/new-debugger-extension-for-net-psscor2-released.aspx

I hope that helps.
Olegas

Ian McGee

unread,
Jul 27, 2010, 9:28:50 AM7/27/10
to
What it does I am so sorry.

"Paul Williams" <PaulWi...@discussions.microsoft.com> wrote in message
news:43C91ADB-CD14-4C2E...@microsoft.com...

0 new messages