6.5.2. Breakpoints and exceptions

A breakpointed instruction can have a Prefetch Abort associated with it. If so, the Prefetch Abort takes priority and the breakpoint is ignored. If there is a Prefetch Abort with invalid instruction data, and the breakpoint is data-dependent then the breakpoint is triggered incorrectly.

SWI and undefined instructions are treated in the same way as any other instruction that can have a breakpoint set on it. Therefore, the breakpoint takes priority over the SWI or undefined instruction.

On an instruction boundary, if there is a breakpointed instruction and an interrupt occurs, the interrupt is taken and the breakpointed instruction is discarded. When the interrupt has been serviced, the execution flow is returned to the original program. This means that the instruction which was previously breakpointed is fetched again, and if the breakpoint is still set, the processor enters debug state when it reaches the execute stage of the pipeline.

When the processor has entered debug state, it is important that further interrupts do not affect the instructions executed. For this reason, as soon as the processor enters debug state, interrupts are automatically disabled, although the state of the I and F bits in the Program Status Register (PSR) are not affected.

Copyright ©  2001 ARM Limited. All rights reserved.ARM DDI 0214B