Software Breakpoints
Software breakpoints are implemented by replacing the instruction at the breakpoint address with a BREAK instruction that will halt the program and turn over control to the debug executive.
There are more software breakpoints available than hardware breakpoints. These breakpoints only support breaking on program memory events. To use software breakpoints, they must first be enabled.
Software breakpoints are only supported by the MPLAB® REAL ICE™, MPLAB ICD3, and MPLAB ICD4 debuggers.