On Mon, 2011-03-21 at 12:01 -0400, Nicolas Pitre wrote:
Why not always using a 16-bit Thumb breakpoint instruction even in place of a 32-bit Thumb instruction? This way you sidestep all the issues about atomically updating the instruction across two words. The instruction to emulate might still be 32-bit and therefore pc would be advanced appropriately.
If the breakpoint is in an IT block and its execution condition is false then the breakpoint may not cause an exception and the CPU will go on and try and execute the other half of the instruction.