
Introduction to the Universal Debugger Interface (UDI)
1-2
Universal Debugger Interface Specification
Finally, sometimes it is desirable to mix debuggers from one company with
targets from another. For example, an emulator company may not be able to
justify supporting a little–used debugger (or vice versa), but a customer may
decide that such a configuration is best.
The fundamental goal of UDI is to provide an interface between a debugger
and its target so that the two can be developed, implemented, maintained, and
shipped separately. It should be possible to use any UDI–compliant debugger
with any UDI–compliant target. Also, end users should be able to develop
either custom debuggers for use with standard targets or, more probably,
custom targets for use with standard debuggers.
UDI Concepts
Most of the companies involved in specifying UDI are concerned with cross–
debugging, that is, using a computer of one type to debug a system of a
different type. Cross–debugging involves communication between the
computer that the debugger runs on (the
host
) and the system that the program
the debugger is debugging runs on (the
target
). Unfortunately, there can be no
strict standards for this communications path. For example, some targets
communicate via the host computer’s bus, some via RS–232, some via
Ethernet, some via SCSI, and some have no communications path at all
(simulators).
UDI works by providing interprocess communication (IPC) methods, which
allow separately built DFEs and TIPs to communicate. The IPC method
defines the basic communication method and the message format for each UDI
service.
This specification describes a procedural interface for each of the UDI services
and defines the semantics of the service and each of its parameters. The
procedural interface and the semantics of the services are the same for all IPC
methods.
UDI IPC methods have been defined for the following hosts:
DOS
UNIX sockets
The UDI IPC methods are defined in Chapters 4 and 5.
AMD provides sample code that maps the procedural interface defined in this
specification to either of the two UDI IPC methods listed above. This sample
code is described in Chapter 6.