Extended Debugging Interface

The Extended Debugging Interface (eXDI) allows the end user to control and debug a target device using a third party device driver and a hardware probe or emulator.

An eXDI driver is a Component Object Model (COM) server that allows a probe or emulator to communicate with the integrated development environment (IDE). To develop a driver, you must implement components that expose two or more interfaces. You are responsible for implementing this driver. This driver then needs to be installed and registered with the IDE. A sample driver is included under the installation directory at <Platform Builder installation path>\eXDI\Sampledriver.

At a minimum, an eXDI driver must expose the IeXdiServer interface and the IeXdiCPUContext interface, where CPU corresponds to a specific microprocessor. For example, a driver developed for the X86 microprocessor would use the IeXdiX86Context interface.

There should be only one driver instance running for each probe or emulator. The eXDI driver must allow multiple simultaneous clients, for example, the Platform Builder debugger and a plug-in.

You can create eXDI plug-ins to extend the eXDI driver functionality. For example, you could create a plug-in that downloads code to the target, provides additional code coverage, or configures a probe. At a minimum, an eXDI plug-in consists of the IPluginFn interface. Just like a driver, a plug-in may utilize other interfaces, such as IeXdiServer, in order to meet your requirements.

eXDI exposes eXDI Callback methods, IeXdiClientNotifyRunChg and IeXdiClientNotifyMemChg, so that your driver may send eXDI information on the status of its target. Plug-ins may also expose their callback methods to receive information from the driver. Your driver will expose, at a minimum, IeXdiServer and its context-specific methods to receive directives and information from eXDI and any plug-ins you may be using. Your driver may also optionally use methods provided by OsAxS.dll. The driver must be able to send instructions and receive data from your probe or emulator, and your probe must be able to communicate with the target with which it is working.

See Also

Memory Model | Breakpoints | Breakpoint Functionality | eXDI Notifications | Probe and Emulator Communication | Microprocessor Register Access | Error Handling | eXDI Hardware-Assisted Debugging | Configuring eXDI Hardware-Assisted Debugging

 Last updated on Friday, October 08, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.