There are several useful tools and debuggers available to managed developers. The following list is a compilation of some of these tools. (This list does not include third-party tools.)
Visual Studio Debugger Most Windows developers have some experience with this tool. Consult this debugger first to diagnose a problem. It is included with the installation of Visual Studio .NET.
Managed Debugger (MDbg) This tool is a console debugger that is dedicated to the advanced debugging of managed code, so it has a wide variety of commands and options specific to managed code that are not available in other debuggers. You download the code for MDbg at the Microsoft downloads site: www.microsoft.com/downloads. It is described as the CLR Managed Debugger (mdbg) Sample. There is a GUI extension available for MDbg that can also be downloaded. It provides a user-friendly veneer to MDbg.
CLR Debugger (DbgClr) This tool is a managed debugger and a scaled-down version of the Visual Studio Debugger. It has the familiar Visual Studio interface, but with only debugging capabilities. This tool provides some debugging preparedness for production machines in which Visual Studio might not be installed. DbgClr does not support remote or mixed-mode debugging. It is distributed with the .NET Framework.
Performance Monitor Performance Monitor instruments a live application. It can plot a host of data points onto a variety of graphs and reports. Alternatively, results can be logged in text files for later examination. Performance Monitor is included with the Windows operating system.
Windows Console Debugger (CDB) CDB is both a kernel- and user-mode debugger. To debug managed applications, load the SOS debugger extension (SOS.dll). Download CDB from the Debugging Tools for Windows Web site at Microsoft.com.
Windows Debugger (WinDbg) WinDbg is also a kernel- and user-mode debugger. It offers a user interface to many of the command-line instructions available in CDB and NTSD. The command-line instructions of WinDbg and CDB are similar. Load SOS to debug managed applications. WinDbg is probably the most popular of the advanced debugging tools. Download WinDbg from the Debugging Tools for Windows Web site at Microsoft.com.
Dr. Watson Dr. Watson is a JIT debugger that creates logs or dump files when an abnormal condition occurs in an application. Dr. Watson is available on production machines on which other debuggers may not be available. It is convenient and is the one debugging tool everyone should have. This tool is distributed with the Windows operating environment.
ADPlus (ADPlus.vbs) This service is a Visual Basic script that automates common CDB tasks, such as creating dumps. This is another tool downloaded from the Debugging Tools for Windows Web site at Microsoft.com.
Son of Strike (SOS.dll) This tool is a debugger extension that exposes commands for debugging managed applications. This tool is distributed with the .NET Framework and downloadable from the Debugging Tools for Windows Web site at Microsoft.com. Several versions of the SOS.dll are available. The version of the SOS.dll included in the clr10 subdirectory of Debugging Tools For Windows is not compatible with some examples in this chapter.
Some of these tools are available from multiple sources. For example, SOS is found in the .NET Framework, distributed with Visual Studio .NET, and downloaded at the Debugging Tools for Windows Web site at Microsoft.com. When a tool is available from various sources, the most recent version is downloadable from the Debugging Tools for Windows Web site at Microsoft.com.