
UDI Services
Universal Debugger Interface Specification
3-43
UDIStep
Call
UDIError UDIStep (
UDIUInt32
UDIStepType
UDIRange
);
Steps,
StepType,
Range
/* In */
/* In */
/* In */
Description
UDIStep
causes execution to continue one instruction at a time. The number
of instructions executed is specified by the
Steps
argument. That number of
steps is executed unless a breakpoint is encountered first. Additionally, the
StepType
parameter can modify which instructions count and which do not.
Specifically,
UDIStepOverCalls
causes instructions that are executed as a
result of a call not to be counted. Similarly,
UDIStepOverTraps
causes
instructions in interrupt and trap handlers not to be counted. Not all targets
support all step types (monitors, for example, have problems with
not
stepping
over traps) and when a requested step type is unavailable,
UDIErrorUnsupportedStepType
is returned.
An additional step type is
UDIStepInRange
which executes until the step
count is exhausted, a breakpoint is hit, or the PC is outside
Range
. The last
step type is
UDIStepNatural
, which allows the TIP to step naturally. It is the
only
StepType
value that is guaranteed to be supported by all TIPs. Note that
like
UDIExecute
, progress is guaranteed using the “same step, install
breakpoints, more steps” process.
UDIStep
returns as soon as the TIP is informed of the number of steps to be
executed. Conceptually, no steps are performed until after control returns from
UDIStep
. As a practical matter, on non–multitasking hosts,
UDIStep
does the
first step and installs breakpoints before returning.
If
UDIStep
is called when the target is already running, it should cause the
target to stop and the next
UDIWait
call should return
StopReason
=
UDIStepped
.
Return Codes
UDIErrorUnsupportedStepType
UDIErrorUnknownResourceSpace
UDIErrorInvalidResource