12.7. Debug exception

The processor takes a debug exception when a software debug event occurs while in Monitor debug-mode. Prefetch Abort and Data Abort Vector catch debug events are ignored though.

If the processor takes a debug exception because of a breakpoint, BKPT, or vector catch debug event, the processor performs the following actions:

Note

The Prefetch Abort handler checks the IFSR bit to determine if a debug exception or other kind of Prefetch Abort exception causes the exception entry. If the cause is a debug exception, the Prefetch Abort handler must branch to the debug monitor. You can find the address of the instruction to restart in the R14_abt register.

If the processor takes a debug exception because of a watchpoint debug event, the processor performs the following actions:

Note

The Data Abort handler checks the DFSR bits to determine if the exception entry was caused by a Debug exception or other kind of Data Abort exception. If the cause is a Debug exception, the Data Abort handler must branch to the debug monitor. The address of the instruction to restart can be found in the R14_abt register.

Table 12.53 shows the values in the Link Register after exceptions. The ARM and Thumb columns in this table represent the processor state in which the exception occurred.

Table 12.53. Values in Link Register after exceptions

Cause of faultARMThumbReturn address (RA) meaning
BreakpointRA+4RA+4Breakpointed instruction address
WatchpointRA+8RA+8Address of the instruction that triggered the watchpoint event
BKPT instructionRA+4RA+4BKPT instruction address
Vector catchRA+4RA+4Vector address
Prefetch AbortRA+4RA+4Address of the instruction that the prefetch abort event canceled
Data AbortRA+8RA+8Address of the instruction that the data abort event canceled

Copyright © 2006-2009 ARM Limited. All rights reserved.ARM DDI 0344I
Non-Confidential