Debug
ARM DDI 0363E Copyright © 2009 ARM Limited. All rights reserved. 11-39
ID013010 Non-Confidential, Unrestricted Access
11.6 Debug events
A processor responds to a debug event in one of the following ways:
• ignores the debug event
• takes a debug exception
• enters debug state.
This section describes:
• Software debug event
• Halting debug event on page 11-40.
• Behavior of the processor on debug events on page 11-40
• Debug event priority on page 11-40
• Watchpoint debug events on page 11-40.
11.6.1 Software debug event
A software debug event is any of the following:
• A watchpoint debug event. This occurs when:
— The data address for a load or store matches the watchpoint value.
— All the conditions of the WCR match.
— The watchpoint is enabled.
— The linked context ID-holding BRP, if any, is enabled and its value matches the
context ID in CP15 c13. See Chapter 4 System Control Coprocessor.
— The instruction that initiated the memory access is committed for execution.
Watchpoint debug events are only generated if the instruction passes its condition code.
• A breakpoint debug event. This occurs when:
— An instruction was fetched and the instruction address or the CP15 Context ID
register c13 matched the breakpoint value.
— At the same time the instruction was fetched, all the conditions of the BCR for
unlinked context ID breakpoint generation matched the I-side control signals.
— The breakpoint is enabled.
— The instruction is committed for execution. These debug events are generated
whether the instruction passes or fails its condition code.
• A BKPT debug event. This occurs when a
BKPT
instruction is committed for execution.
BKPT
is an unconditional instruction.
• A vector catch debug event. This occurs when:
— An instruction was prefetched and the address matched a vector location address.
This includes any kind of prefetch, not only the ones because of exception entry.
— At the same time the instruction was fetched, the corresponding bit of the VCR was
set, that is, the vector catch is enabled.
— The instruction is committed for execution. These debug events are generated
whether the instruction passes or fails its condition code.