A breakpoint is a mechanism for suspending program execution when a specific set of criteria are met.

The criteria for suspending program execution can range from a simple line breakpoint which stops a program when it lands on a particular line of code, all the way up to complex breakpoints which combine multiple conditions into a detailed set of criteria that can target very specific circumstances.

Types of Breakpoints

Breakpoints fall into two broad categories: Hardware Breakpoints] and Software Breakpoints. At the Integrated Development Environment (IDE) level, both types will appear to work the same way, but there are differences in their implementations behind the scenes.

Hardware Breakpoints

Hardware Breakpoints] are versatile in their ability to suspending program execution. Hardware breakpoints are limited in number by the target microcontroller's hardware.

MPLAB® X IDE will automatically use hardware breakpoints by default.

Icon Hardware Breakpoint Type
LineBreakpoint.png Line Breakpoint
AddressBreakpoint.png Address Breakpoint
DataBreakpoint.gif Data Breakpoint
EventBreakpoint.gif Event Breakpoint
SequenceBreakpoint.gif Sequence Breakpoint (Complex)
TupleBreakpoint.gif Tuple Breakpoint (Complex)

Software Breakpoints

There are more software breakpoints available than hardware breakpoints. Software breakpoints only support breaking on program memory events.

To use software breakpoints, they first need to be enabled. Software breakpoints are only supported by the MPLAB® REAL ICE and MPLAB® ICD 3 debuggers.

Icon Software Breakpoint Type
LineBreakpoint.png Line Breakpoint
AddressBreakpoint.png Address Breakpoint
© 2017 Microchip Technology, Inc.
Notice: ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries.
Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.