Care must be taken when setting breakpoints in exception handler code. A typical exception consists of a preamble that saves processor context, the actual exception handler, and then a postamble that restores processor context. You can use software breakpoints in the actual exception handler code, but not in the preamble or postamble where the processor context is changing.
To avoid this problem, always set your breakpoints before or after code which accesses SRR0 and SRR1, and never step through such code. For example, you can set your breakpoint anywhere after the interrupt prologue, but before the epilogue.
Instructions that involve the SRR0 and SRR1 registers are "MTSPR SRR0/1,Rx" "MFSPR Rx,SRR0/1," and "RFI."