Just-In-Time Kernel Debugging (Compact 2013)

3/26/2014

Windows Embedded Compact 2013 supports Just-In-Time (JIT) debugging, which is the ability to debug crashed code at the moment the OS would typically terminate the relevant process. This feature is useful if a halted OS on a stand-alone Windows Embedded Compact powered device occurs.

If you set up the OS for JIT debugging beforehand, you can respond to the system crash by connecting the device to a development computer that is running Platform Builder and then debugging the kernel or the running application.

When an exception occurs, the sequence of events is as follows:

  • When the OS encounters an exception, it immediately checks to see if there is a Kernel Independent Transport Layer (KITL) connection to a development computer that is running Platform Builder.
    • If a connection exists, the kernel debugger receives the exception.
    • If no connection exists, this first-chance exception is passed back to the application that generated it. The application's exception handler is given a chance to handle this exception.
  • If the application does not handle the exception, a second-chance exception passes to the kernel debugger. This is the point at which JIT debugging can take effect. After the kernel debugger receives the second-chance exception, it checks again for a KITL connection between the Windows Embedded Compact powered device and the development computer.
    • If a connection now exists, the kernel debugger takes the exception.
    • If there is still no connection, the debugger waits for a KITL connection to be made. At this point, you can set up a KITL connection between the device and the development computer; after this connection is made, the device can be debugged.

In this JIT debugging scenario, the OS of the Windows Embedded Compact powered device freezes and waits for a KITL connection to be made. No message is sent to signify this freeze to the user; in some situations, there might not be a user interface.

For information about how to set up JIT debugging, see Set Up JIT Debugging.

See Also

Concepts

Kernel Debugger
Debugging

Other Resources

Windows Embedded Compact 2013