Page Zero access by Debugger
Jon Abbott (1421) 2651 posts |
Debugger breakpoints are branching into Page Zero: Repro
The instruction being used is MOV PC,#&2780. The next breakpoint is MOV PC,#&2700, the third MOV PC,#&2680 etc. The jump table could be relocated to &FFFFFFF8 downwards, and use MVN PC, #7 etc. allowing 32 breakpoints in total – assuming execution is allowed in the relocated Page Zero. |
Jeffrey Lee (213) 6048 posts |
I think one of the things buried in my todo list is to upgrade the Debugger so that it can use the BKPT instruction instead. That way (on ARMv5+) we won’t have to reserve any space in the memory map for breakpoint trampolines (with the downside that you won’t be able to reliably use breakpoints to debug ABT mode code, since BKPT instructions trigger a prefetch abort when executed). On ARMv3/v4 we could switch to using undefined instructions instead of the trampolines (with the downside that you won’t be able to reliably debug UND mode code). But that’s probably less important since we’re always going to need a page at &0 for the processor vectors. |