A data processor communicates with a peripheral device and selectively sets breakpoints with minimal overhead. The data processor utilizes an instruction register to store instructions to be executed. Control means communicate with the peripheral device to selectively set a breakpoint in a software program. When repetitions of the breakpoint are encountered, an exception handler is only executed at the desired breakpoint to minimize overhead. A control portion of the processor selectively receives a breakpoint instruction and stores the breakpoint instruction in the instruction register.