This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: STOPPED_BY_WATCHPOINT peculiarity
On Tue, Apr 02, 2002 at 05:01:45PM -0500, Daniel Jacobowitz wrote:
> On Tue, Apr 02, 2002 at 01:54:47PM -0800, Doug Evans wrote:
> > Something is not right, or at least confusing, in watchpoint-land.
> >
> > This code in infrun.c is odd:
> >
> > /* It may be possible to simply continue after a watchpoint. */
> > if (HAVE_CONTINUABLE_WATCHPOINT)
> > STOPPED_BY_WATCHPOINT (ecs->ws);
> >
> > STOPPED_BY_WATCHPOINT is a predicate.
> > Therefore at first glance this code is pointless.
> >
> > Things are slightly less confusing by recognizing that in the
> > process of computing STOPPED_BY_WATCHPOINT some debugging printf's
> > may get printed. e.g. grep for maint_show_dr in
> > i386-nat.c:i386_stopped_data_address.
> >
> > nm-i386.h:
> > #define STOPPED_BY_WATCHPOINT(W) (i386_stopped_data_address () != 0)
> >
> > Is that all there is to it?
> >
> > If so, a comment should be added, maybe something like
> >
> > - /* It may be possible to simply continue after a watchpoint. */
> > + /* It may be possible to simply continue after a watchpoint.
> > + While at first glance this code is pointless, STOPPED_BY_WATCHPOINT
> > + is called in case there are any maintenance debugging printf's. */
> > if (HAVE_CONTINUABLE_WATCHPOINT)
> > STOPPED_BY_WATCHPOINT (ecs->ws);
>
> What astonishing timing... I believe there is more going on here, and I
> was in the middle of looking at this code just a moment ago. See the
> test failure on i386-linux in gdb.c++/annota2.exp (watch a.x). We have
> a problem actually correctly detecting that we are stopped by a
> watchpoint.
Actually, I take that back. STOPPED_BY_WATCHPOINT has nothing to do
with the problem I'm working on. This line came in far enough back
that the public tree's CVS history appears to be useless; it's been
through some reformats but that's it. Might want to ask a Cygnus
person to dig around.
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer