Display of read/access watchpoints when HAVE_NONSTEPPABLE_WATCHPOINT
Eli Zaretskii
eliz@elta.co.il
Wed Oct 8 10:26:00 GMT 2003
> Date: Wed, 08 Oct 2003 10:50:25 +0200
> From: Orjan Friberg <orjan.friberg@axis.com>
>
> The problem seems to be that target_stopped_data_address () is called in
> bp_stop_status () *after* the single-step over the disabled breakpoint
> has been carried out, at which point the target is no longer stopped due
> to a hardware watchpoint (but due to the single-step). Consequently,
> target_stopped_data_address () returns 0, and gdb thinks that the
> watchpoint didn't hit. I can't see that any other targets keep the last
> "stopped data address" until the next hardware watchpoint is hit (which
> would make the address still available after the single-step).
Perhaps none of the targets that support hardware read and access
watchpoints define HAVE_NONSTEPPABLE_WATCHPOINT?
Anyway, from your description, it is quite clear that if a target
defines HAVE_NONSTEPPABLE_WATCHPOINT, GDB must call
target_stopped_data_address before it disables the watchpoint and
steps over it, or else the target end should store the necessary info
somewhere and deliver it when target_stopped_data_address is called.
In other words, it sounds like a bug.
More information about the Gdb-patches
mailing list