
UDI Services
Universal Debugger Interface Specification
3-39
and then some time later
UDISetBreakpoint(info, &id);
a breakpoint can be disabled and then reenabled without changing its
PassCount and current CntRemaining status.
The Buf field, whose length is set in the BufLen field, is not used for the
standard breakpoints described in this section but can be optionally used for
vendor specific breakpoints.
BreakId values returned by UDISetBreakpoint are required to be non-zero and
are generally small positive integers. This makes it easier for pre-UDI1.4 TIPs
to query the breakpoints (UDIQueryBreakpoint did not return a NextBreakId
field before UDI 1.4).
The result of more than one breakpoint of the same type set against the same
address is TIP–defined (that is, the TIP must document what it does). A TIP
can limit the number of breakpoints it allows to be set. When any such limit is
reached,
UDIErrorTooManyBreakpoints
is returned.
The mechanism used to implement breakpoints should be hidden from the
DFE if possible. For example, if an execute breakpoint is implemented by
replacing an instruction with a special breakpoint instruction, subsequent calls
to
UDIRead
should continue to report the original instruction.
UDISetBreakpoint_13
is the old version of this call. It allowed a subset of
the breakpoint types allowed by UDISetBreakpoint_14. See the description of
UDISetBreakType_13
at the beginning of Chapter 3.
Return Codes
UDIErrorCantSetBreakpoint
UDIErrorTooManyBreakpoints
UDIErrorUnknownResourceSpace
UDIErrorInvalidResource