The Microsoft CLR Debugger (DbgCLR.exe) provides debugging services with a graphical interface to help application developers find and fix bugs in programs that target the common language runtime. The 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 the 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 CLR Debugger (see the next paragraph). You can simply ignore these features and sections.
Here are some of the main differences between the CLR Debugger and the Visual Studio Debugger as described in the documentation:
- The 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 CLR Debugger.
- Remote debugging is not implemented in the CLR Debugger.
- The Registers window is implemented in the 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 CLR Debugger but shows the disassembly code that would be generated for the application if it were compiled as Win32 native code rather than common language runtime code.
- The CLR Debugger does not support F1 help.
- The CLR Debugger does not support the Autos window feature.
CLR Debugger Solution Model
The 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)
- Start the CLR Debugger; run DbgCLR.exe, which is in the GuiDebug directory of your .NET Frameworks installation.
- From the Debug menu, select Program to Debug.
- 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.
- Navigate to the directory containing the EXE you want to debug and select the EXE.
- 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.
- In the Arguments box, type any arguments that your program requires.
- Click OK.
- From the File menu, choose Open, then click File.
- In the Open File dialog box, choose the source file you want to open.
- Click OK.
- 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.