Loading CLR DAC dll from a different path

From .Net framework 2.0, CLR creates a debugger helper dll mscordacwks.dll. The dll is used by Windows Debugger to enumerate CLR data structures.

Mscordacwks.dll is part of .Net framework redist.

C:\Windows\Microsoft.NET\Framework\v2.0.50727>dir mscordacwks.dll

 Volume in drive C is Vista

 Volume Serial Number is C84C-2424

 Directory of C:\Windows\Microsoft.NET\Framework\v2.0.50727

07/10/2007 04:38 PM 812,544 mscordacwks.dll

               1 File(s) 812,544 bytes

When debugging a .Net framework application, Windows Debugger loads the CLR DAC dll based on where CLR (mscorwks.dll) is loaded.

You can use .cordll command to ask Windows Debugger to load the CLR DAC dll from a different path.

.cordll -lp c:\otherpath

Windows Debugger may have cached the CLR DAC dll. So you may have to unload it first.

.cordll -u -lp c:\otherpath

Full documentation on .cordll below:

.cordll (Control CLR Debugging)

The .cordll command controls managed code debugging and the Microsoft .NET common language runtime (CLR).

Syntax

.cordll [Options]

Parameters

Options

One or more of the following options:

-l

Loads the CLR debugging modules.

-u

Unloads the CLR debugging modules.

-e

Enables CLR debugging.

-d

Disables CLR debugging.

-D

Disables CLR debugging and unloads the CLR debugging modules.

-N

Reloads the CLR debugging modules.

-lp Path

Specifies the directory path of the CLR debugging modules.

-se

Enables using the short name of the CLR debugging module, Mscordacwks.dll.

-sd

Disables using the short name of the CLR debugging module, Mscordacwks.dll. Instead, the debugger uses the long name of the CLR debugging module, Mscordacwks_<spec>.dll. Turning off short name usage enables you to avoid having your local CLR used if you are concerned about mismatches.

-ve

Turns on verbose mode for CLR module loading.

-vd

Turns off verbose mode for CLR module loading.