From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9410 invoked by alias); 14 Nov 2005 06:23:07 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Received: (qmail 9402 invoked by uid 22791); 14 Nov 2005 06:23:04 -0000 Received: from gorgon.vtab.com (HELO gorgon.vtab.com) (62.20.90.195) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Mon, 14 Nov 2005 06:23:04 +0000 Received: from [10.0.0.133] (despair.hq.vtech [10.0.0.133]) by gorgon.vtab.com (Postfix) with ESMTP id 33213B9177; Mon, 14 Nov 2005 07:23:02 +0100 (CET) Message-ID: <43782D46.9050702@virtutech.com> Date: Mon, 14 Nov 2005 06:23:00 -0000 From: Johan Rydberg User-Agent: Mozilla Thunderbird 1.0.7 (X11/20051013) MIME-Version: 1.0 To: Daniel Jacobowitz Cc: Eli Zaretskii , Vladimir Prus , gdb@sources.redhat.com Subject: Re: read watchpoints broken with remote targets? References: <200511111621.03372.ghost@cs.msu.su> <20051113170917.GC465@nevyn.them.org> In-Reply-To: <20051113170917.GC465@nevyn.them.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2005-11/txt/msg00259.txt.bz2 Daniel Jacobowitz wrote: > Actually, I think it is the right solution. [...] > So a watchpoint was found not to have triggered, but failed to change > bs->stop, so it was bogusly reported. This is exactly the change I have done in my private repo, and it seem to work just fine for our purposes. --- breakpoint.c 22 Aug 2005 15:45:46 -0000 1.1 +++ breakpoint.c 20 Oct 2005 16:17:59 -0000 1.2 @@ -2624,7 +2624,7 @@ if ((b->type == bp_hardware_watchpoint || b->type == bp_read_watchpoint || b->type == bp_access_watchpoint) - && !stopped_by_watchpoint) + && stopped_by_watchpoint == 0) continue; if (b->type == bp_hardware_breakpoint) @@ -2741,8 +2741,13 @@ struct value *v; int found = 0; - if (!target_stopped_data_address (¤t_target, &addr)) - continue; + if (!target_stopped_data_address (¤t_target, &addr)) + { + /* Don't stop. */ + bs->print_it = print_it_noop; + bs->stop = 0; + continue; + } for (v = b->val_chain; v; v = v->next) { if (VALUE_LVAL (v) == lval_memory