Application Debugging with the Kernel Debugger (Windows Embedded CE 6.0)
1/5/2010
The Platform Builder IDE includes a kernel debugger for debugging both applications and embedded platforms. An important difference between the Platform Builder kernel debugger and the Visual Studio application debugger is that the Visual Studio debugger controls only the behavior of a single application, while the kernel debugger controls the behavior of the entire run-time image.
When used as an application debugger, the kernel debugger differs from the Visual Studio application debugger in the following ways:
- The kernel debugger debugs code in the Windows Embedded CE kernel as well as in Windows Embedded CE–based applications.
When you stop the kernel debugger, the run-time image stops responding to outside input while it waits for feedback from the kernel debugger. Because of this behavior, you must manually run any application that you want to debug with the kernel debugger.
The debugger and the application run independently: when you shut down an application that is being debugged on the target device, the kernel debugger continues to run.
Similarly, when you issue a stop debugging command to the kernel debugger, the application being debugged continues to run on the target device - The kernel debugger requires compilation symbols
To perform application debugging, the kernel debugger must have access to the compilation symbols for the application. Symbols for application modules are contained in the program database (.pdb) files located in the release directory.
If you want symbols for an application that has an extension other than .dll or .exe, make a copy of the application with the extension .dll in the same directory as the original application.
For example, if you want symbols for Main.cpl, make a copy of it in the same target directory as Main.cpl and call the file Main.dll. - The kernel debugger uses unique debug zones and debug messages
Debug zones provide a way to use macros to selectively turn on and off the debugging message output. With debug zones, you can trace execution of the code without halting the Windows Embedded CE OS.
For more information about handling debug zones and debug messages, see Debug Messages.
You can set initial values for debug zones in the registry. This allows you to get debug messages from the first time you launch your application, rather than enable debug zones later through the IDE.
For more information about setting debug zone values in the registry, see Setting Initial Debug Zones.