4.9.5. Vector breakpoints and exceptions

The Multi-ICE DLL puts into place any breakpoints that have been requested in the order they are received, including those implicitly requested by the debugger internal variable vector_catch. The Multi-ICE DLL uses the breakpoint resources it has available as efficiently as possible, but the presence of a vector catch breakpoint sometimes requires software breakpoints to be used.

The vector_catch variable indicates whether or not execution must be trapped when one of the conditions described in Table 4.5 arises. The default value is, for ADW %RUsPDAifE, and for AXD %RUsPDif where capital letters indicate that the condition is to be intercepted.

Table 4.5. Breakpoints

VectorDescription
R

Reset

U

Undefined instruction

S

Software interrupt (SWI)

P

Instruction prefetch abort

D

Data access abort

A[1]

Address exception

I

Interrupt request (IRQ)

F

Fast interrupt request (FIQ)

E[2]

Error

[1] Not used by AXD.

[2] Not used by AXD or ADW.

On ARM9TDMI and ARM10TDMI family devices, and on XScale microarchitecture processors, additional hardware in the core enables you to perform vector catching without setting general breakpoints on the vectors. See the ARM9TDMI Technical Reference Manual or ARM1020T Technical Reference Manual for more details.

In normal usage, the SWI flag within vector_catch remains lowercase, as finer control is provided by the debugger internal variables semihosting_enabled and semihosting_vector (see Semihosting).

Note

If you set the S bit in vector_catch with semihosting_enabled nonzero, vector catch takes precedence over semihosting.

Copyright © 1998-2002 ARM Limited. All rights reserved.ARM DUI 0048F
Non-Confidential