Problem description:
When the dump file of the Managed Application on the problematic machine is captured, and the dump is analyzed on another machine. If the problem machine and the target machine's mscordacwks. if the dll version is inconsistent. load c: \ windows \ Microsoft. net \ framework \ v2.0.50727 \ SOS. mscordacwks cannot be found on the target machine after DLL. cannot Use debugger extension command.
For example, enter an extension command :! Threads
The error message is as follows:
**************************************** *****************************
* Symbols can not be loaded because symbol path Is Not initialized. *
* *
* The symbol path can be Set By: *
* Using The _ nt_symbol_path environment variable. *
* Using The - Y < Symbol_path > Argument when starting the debugger. *
* Using . Sympath and. sympath + *
**************************************** *****************************
PDB symbol For Mscorwks. dll not loaded
Failed to load data access DLL, Zero X 80004005
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 SOS command shocould work on retry.
If you are debugging A minidump, you need to make sure that your executable
PathIsPointing to mscorwks. dllAsWell.
Take a look at it with. cordll. The feedback is as follows:
Clr dll status: Error: Unable to load DLL mscordacwks_x86_x86_2.0.50727.1433.dll, Win32 error 0n2
The mscordacwks_x86_x86_2.0.50727.1433.dll file is not found.
Solution:
Use. cordll-ve-u-l to check
Clrdll: C: \ WINDOWS \ Microsoft. NET \ framework \ V2. 0.50727 \ Mscordacwks. dll: 2.0 . 50727.1434 F: 0
Doesn ' T match desired version 2.0.50727.1433 F: 0
Clrdll: unable to find mscordacwks_x86_x86_2. 0.50727 . 1433 . DLL by mscorwks search
Clrdll: unable to find ' Mscordacwks_x86_x86_2.0.50727.1433.dll ' On the path
Clrdll: unable to find mscorwks. DLL by search
Clrdll: Error: Unable to load DLL mscordacwks_x86_x86_2. 0.50727 . 1433 . Dll, Win32 error 0n2
Clr dll status: Error: Unable to load DLL mscordacwks_x86_x86_2. 0.50727 . 1433 . Dll, Win32 error 0n2
The versions of mscordacwks. dll on the debug machine are different from those of mscordacwks. dll when the dump is captured. What should I do? Simply copy the mscordackws. dll file on the client where the problem occurs, rename it as the desired file name, and place it under the appropriate search path. The most suitable search path here is the windbg folder.
Use. cordll-ve-u-l to check the result. The result is as follows:
Clrdll: C: \ WINDOWS \ Microsoft. NET \ framework \ V2. 0.50727 \ Mscordacwks. dll: 2.0 . 50727.1434 F: 0
Doesn ' T match desired version 2.0.50727.1433 F: 0
Clrdll: unable to find mscordacwks_x86_x86_2. 0.50727 . 1433 . DLL by mscorwks search
Clrdll: loaded DLL mscordacwks_x86_x86_2. 0.50727 . 1433 . Dll
Clr dll status: loaded DLL mscordacwks_x86_x86_2. 0.50727 . 1433 . Dll
The search path is used to find the required DLL.