
UDI Services
3-34
Universal Debugger Interface Specification
UDIQueryBreakpoint
Call
UDIError UDIQueryBreakpoint_14 (
UDIBreakId
UDISizeT
UDIBreakInfo *
UDIBreakId *
);
BreakId,
BufSize,
BreakInfo,
NextBreakId
/* In */
/* In */
/* Out */
/* Out */
UDIError UDIQueryBreakpoint_13 (
UDIBreakId
UDIResource
UDIInt32
UDIBreakType_13 *Type,
UDIInt32
));
BreakId,
*Addr,
*PassCount,
/* In */
/* Out */
/* Out */
/* Out */
/* Out */
*CurrentCount
Description
UDIQueryBreakpoint_14
allows a DFE to obtain the state of breakpoints on
the TIP. The DFE can do so even though it does not know which
BreakId
values are valid. This is useful when a DFE connects to an unterminated TIP.
(See
UDIDisconnect
on page 3-20.)
Since the size of a returned breakinfo structure can vary (because of the
variable length vendor-specific Buf field), the DFE uses the parameter BufSize
to specify the maximum size of the BreakInfo.Buf that it is using to receive the
BreakInfo structure. If this is not big enough for the breakpoint that is being
queried, the TIP returns an error, UDIErrorIncomplete, and fills in
BreakInfo.BufLen as to what the actual required BufLen is. The DFE can then
requery with a larger BreakInfo.Buf if it desires.
To query all breakpoints, the DFE can start at BreakId 1 and continue until
UDIQueryBreakpoint returns UDIErrorNoMoreBreakIds. If the DFE queries a
BreakId values not currently in use, but with higher BreakId values in use, the
TIP will instead return UDIErrorInvalidBreakId. In all cases, the TIP returns
the next valid BreakId in NextBreakId and the DFE should use this for its next
query. In this way, the DFE can acquire all of the breakpoints installed on the
TIP without keeping any state locally.
Note that the CntRemaining field of the returned BreakInfo structure shows the
number of passes remaining until the breakpoint triggers. That is, it is a
downcounter which starts from the Passcount parameter passed in by
UDISetBreakpoint.