This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: Display of read/access watchpoints when HAVE_NONSTEPPABLE_WATCHPOINT
- From: Eli Zaretskii <eliz at elta dot co dot il>
- To: Orjan Friberg <orjan dot friberg at axis dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: 08 Oct 2003 12:27:43 +0200
- Subject: Re: Display of read/access watchpoints when HAVE_NONSTEPPABLE_WATCHPOINT
- References: <3F83CFD1.8010002@axis.com>
- Reply-to: Eli Zaretskii <eliz at elta dot co dot il>
> 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.