
UDI Services
Universal Debugger Interface Specification
3-5
Many UDI services access target resources. All resources are identified via the
UDIResource
structure, including target memory, target registers, and any
resources the TIP may provide, such as trace buffers or profiling data.
UDIResource
consists of two members: a Space member, and an Offset
member. The Offset member is usually the width of the target CPU’s address,
although it may be wider. For the 29K Family,
CPUOffset
is an unsigned 32–
bit integer. The Space member,
CPUSpace
, is of signed integer type, and is
generally a small integer. Negative values of
CPUSpace
are reserved for
vendor–specific definition, i.e. a UDI specification cannot define a negative
CPUSpace
value.
Each CPU–specific implementation provides its own values for
CPUSpace
to
access the various CPU–specific resources available. Note that CPU–specific
generally means CPU–family specific. All processors within a family that use
the same size addresses share space values and meanings.
Refer to Appendix C for 29K Family resource definitions.
The structure associated with a UDI resource is:
typedef struct
{
CPUSpace
CPUOffset Offset;
} UDIResource;
Space;
Some services return or receive a range of resources sharing a common space.
These services have defined
UDIMemoryRange
types.
typedef struct {
CPUSpace
CPUOffset
CPUSizeT
} UDIMemoryRange;
Space;
Offset;
Size;
When stepping the target, several options are available. You can step
individual instructions or step over certain kinds of instructions (calls and
traps). You can request stepping until the program is outside a specified range
of instruction addresses. These various step types (shown below) can be ORed
together. Each TIP offers a default step mode, and DFEs are encouraged to
use
UDIStepNatural
to refer to the TIP when the user has not specifically
requested a type of step. Some TIPs, such as emulators and simulators,
naturally step into traps, while other TIPs do not. If you request a step type that
the TIP cannot support, you get a
UDIErrorUnsupportedStepType
message.
If the value of a UDIStepType parameter is negative (i.e., the MSB is set), the
definition of all other bits is vendor-specified.