gdb requires watchpoints to fire after the write
Joel Brobecker
brobecker@adacore.com
Wed Aug 29 15:47:00 GMT 2018
> I don't have experience with many different architectures, but as far as I
> know, the expectation of the GDB is that the watchpoint is reported after
> the write. Otherwise it wouldn't need to save the value of the watched
> expression. That's also how software watchpoints seem to work.
>
> The easiest way to deal with this would be to match GDB's expectation. But
> if you really prefer the behavior of reporting the watchpoint before the
> event, I suppose it's always possible to teach GDB about this, but it's a
> less trivial task. Especially that when you GDB evaluates whether the watch
> expression has changed value, it would need to consider the not-yet-written
> value in memory.
>
> I'm also curious to know if other architectures work in this way (report the
> event before the write actually take place).
I seem to remember some architectures having different behaviors,
and so we have a couple of entry points in GDB. For architecture-specific
settings, we have gdbarch_have_nonsteppable_watchpoint. For target-specific
settings, you would use target_have_steppable_watchpoint. (IIRC)
--
Joel
More information about the Gdb
mailing list