Armv8-A processors provide the ability to set breakpoints on code or instructions of interest. Setting breakpoints is a common and useful debugging tool to help determine the cause of unexpected or incorrect behavior during execution.

Most debuggers capable of debugging Arm architecture processors will provide two types of breakpoint: software and hardware breakpoints. The following table compares the different breakpoint types:

  Software breakpoints  Hardware breakpoints
 Implemented by  Replacing an existing instruction with a BKPT assembly instruction  Setting up some comparators in the debug logic of the core or processor
 Operation when hit  Put the core into debug state  Put the core into debug state
 Action on resuming execution  The BKPT instruction will be replaced with the original instruction.  The breakpoint will remain until the breakpoint is disabled or removed.
 Number of breakpoints available  A large number (may be limited by the debugger)  Limited by Armv8-A implementation (see core reference manual)
Previous Next