Discussion:
WinDBG fails to load CLR
(too old to reply)
Paul Williams
2010-04-29 13:46:01 UTC
Permalink
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
2010-05-03 19:42:50 UTC
Permalink
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
Post by Paul Williams
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
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
c:\symbols\mscordacwks_x86_x86_2.0.50727.3607.dll\4ADD5446590000\mscordacwks_x86_x86_2.0.50727.3607.dll not found
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
C:\symbols\mscordacwks_x86_x86_2.0.50727.3607.dll\4ADD5446590000\mscordacwks_x86_x86_2.0.50727.3607.dll not found
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
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
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.
Ian McGee
2010-07-27 13:28:50 UTC
Permalink
What it does I am so sorry.
Post by Paul Williams
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
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
c:\symbols\mscordacwks_x86_x86_2.0.50727.3607.dll\4ADD5446590000\mscordacwks_x86_x86_2.0.50727.3607.dll
not found
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
C:\symbols\mscordacwks_x86_x86_2.0.50727.3607.dll\4ADD5446590000\mscordacwks_x86_x86_2.0.50727.3607.dll
not found
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
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
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.
Loading...