eXDI Architecture (Windows Embedded CE 6.0)

1/5/2010

The Extended Debugging Interface is an adaptation layer between a software development environment, such as Platform Builder or Visual Studio, and a debugging target.

An eXDI driver runs as a Core Connectivity service under ICcSvcHost, exposing the ICcService interface which provides connectivity support. One eXDI service instance runs for each probe.

As the following diagram shows, Platform Builder debugging makes extensive use of Core Connectivity services. In the example depicted by the diagram, Platform Builder uses an eXDI service and an OS Access service. The eXDI service supports kernel debugging with KdStub, a software probe component that the kernel loads onto the target. KdStub and the eXDI service communicate using the KdStub-specific protocol KDBG over the Kernel Independent Transport Layer (KITL).

On the desktop host computer, KITL runs as another Core Connectivity service, supported by the ICcKitl interface.

For more information about Core Connectivity services, see Core Connectivity Overview.

The following diagram provides a high-level overview of the eXDI architecture as applied to kernel debugging with the software probe KdStub.

Ee480983.6f9a4688-4762-42fe-b1d6-f6cf568004b1(en-US,WinEmbedded.60).gif

eXDI can also be used to support a wide variety of probes, including software probes such as the Platform Builder kernel debugger, KdStub; hardware ports such as JTAG; in-circuit emulators; post-mortem debugging; and software simulators.

Third-party probe vendors who want to allow Platform Builder customers to use their diagnostic equipment with Platform Build must write an eXDI service for that purpose.

eXDI includes a set of powerful debugging helper components that perform a variety of debugging tasks, including handling for software breakpoints and single-stepping. You can add the functionality of these helpers as needed, greatly simplifying the overall driver development process.

The following diagram shows an example implementation of a hardware probe.

Ee480983.68711d46-dd8d-4b56-a5df-d6c01dcd9395(en-US,WinEmbedded.60).gif

See Also

Concepts

eXDI Overview
eXDI Run-State Control
Memory and Register Access
OS Access

Other Resources

eXDI Driver Development