From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2884 invoked by alias); 2 Apr 2002 22:20:12 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 2851 invoked from network); 2 Apr 2002 22:20:08 -0000 Received: from unknown (HELO nevyn.them.org) (128.2.145.6) by sources.redhat.com with SMTP; 2 Apr 2002 22:20:08 -0000 Received: from drow by nevyn.them.org with local (Exim 3.35 #1 (Debian)) id 16sWdM-0001GB-00; Tue, 02 Apr 2002 17:20:08 -0500 Date: Tue, 02 Apr 2002 14:20:00 -0000 From: Daniel Jacobowitz To: Doug Evans , gdb@sources.redhat.com Subject: Re: STOPPED_BY_WATCHPOINT peculiarity Message-ID: <20020402172008.A4532@nevyn.them.org> Mail-Followup-To: Doug Evans , gdb@sources.redhat.com References: <200204022154.NAA10074@casey.transmeta.com> <20020402170145.A3797@nevyn.them.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020402170145.A3797@nevyn.them.org> User-Agent: Mutt/1.3.23i X-SW-Source: 2002-04/txt/msg00010.txt.bz2 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