I see, then this means that all the reverse targets in existance
implement inserting breakpoints (target_insert_breakpoint, Z packet),
instead of relying on memory breakpoints.
I believe that's true. Certainly it's true for gdb-freeplay.
Do I understand to mean that the assumption is that the remote-capable target
system
Implements breakpoints by NOT modifying the code, but rather using some other
mechanism that says that certain instructions in memory are breakpoints, and
triggers them appropriately?
This is what we do in Simics, and this assumptions makes sense to us.
Breakpoints are implemented in the simulator, without any change to the target
system.