Share via


The Microsoft CLR Debugger

The Microsoft CLR Debugger is intended as an interim tool for debugging applications written and compiled for the common language runtime. The Microsoft CLR Debugger, and the accompanying documentation, is based on work being done for the Microsoft Visual Studio .NET debugger. As a result, the documentation refers mostly to the Visual Studio debugger rather than to the Microsoft CLR Debugger. In most cases, the information is applicable to both debuggers. However, you will find sections of the documentation describing some features that are not implemented in the Microsoft CLR Debugger (see the next paragraph). You can simply ignore these features and sections.

The following are some of the main differences between the Microsoft CLR Debugger and the Visual Studio debugger as described in the documentation:

  • The Microsoft CLR Debugger does not support the debugging of Win32 native code applications. Only applications written and compiled for the common language runtime can be debugged with the Microsoft CLR Debugger.
  • Remote debugging is not implemented in the Microsoft CLR Debugger.
  • The Registers window is implemented in the Microsoft CLR Debugger, but no register information appears in the window. Other operations that involve registers or pseudoregisters, such as displaying or changing a register value, are not supported.
  • The Disassembly window is implemented in the Microsoft CLR Debugger but shows the disassembly code that would be generated for the application if it were compiled as Win32 native code rather than .NET runtime code.
  • The Microsoft CLR Debugger does not support F1 help.

The Microsoft CLR Debugger Solution Model

The Microsoft CLR Debugger uses solutions to associate source files and the applications being debugged. A solution is created automatically when you open a compiled application and its associated source file or files. The next time you debug the same application, you can open the solution instead of having to load the source file and the compiled application separately.

To open an application for debugging (the first time)

  1. Start the Microsoft CLR Debugger; run DbgCLR.exe, which is in the GuiDebug directory of your .NET Framework installation.

  2. From the Debug menu, select Program to Debug.

  3. In the Program to Debug dialog box, go to the Program box and click the ellipsis button (...). The Find Program to Debug dialog box appears.

  4. Navigate to the directory containing the EXE you want to debug and select the EXE.

  5. Click Open.

    This takes you back to the Program to Debug dialog box. Notice that the Working directory has been set to the directory containing your EXE.

  6. In the Arguments box, type any arguments that your program requires.

  7. Click OK.

  8. From the File menu, choose Open, then click File.

  9. In the Open File dialog box, choose the source file you want to open.

  10. Click OK.

  11. To open additional source files, repeat steps 8-10.

This process automatically creates a solution for your debugging session. If you select Start or Step, the Save File As dialog box opens so you can save the solution. If you select Exit or Close Solution, a message box appears which prompts you to save the solution first.

To open an existing solution

  • From the File menu, choose Open.

See Also

Debugging ASP.NET Web Applications | Appendix A: For Additional Information | Appendix B: Runtime Debugger (CorDbg.exe)