Some debuggers allows software breakpoints on code running in the flash memory. But this usually makes setting and removing breakpoints a time-consuming practice. The debugger has to erase and re-program the flash to set and remove the breakpoints. Other architectures implement a patch list, similar to the debugger breakpoint list in RAM. With this it is possible to set software breakpoints with hardware.