From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21949 invoked by alias); 17 Feb 2006 20:02:00 -0000 Received: (qmail 21940 invoked by uid 22791); 17 Feb 2006 20:01:59 -0000 X-Spam-Check-By: sourceware.org Received: from sadr.equallogic.com (HELO sadr.equallogic.com) (66.155.203.134) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 17 Feb 2006 20:01:56 +0000 Received: from sadr.equallogic.com (localhost.localdomain [127.0.0.1]) by sadr.equallogic.com (8.12.8/8.12.8) with ESMTP id k1HK1rTY032481 for ; Fri, 17 Feb 2006 15:01:53 -0500 Received: from M31.equallogic.com (M31.equallogic.com [172.16.1.31]) by sadr.equallogic.com (8.12.8/8.12.8) with SMTP id k1HK1qGF032476; Fri, 17 Feb 2006 15:01:52 -0500 Received: from pkoning.equallogic.com ([172.16.1.169]) by M31.equallogic.com with Microsoft SMTPSVC(6.0.3790.211); Fri, 17 Feb 2006 15:01:39 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17398.11182.747232.774924@gargle.gargle.HOWL> Date: Fri, 17 Feb 2006 20:06:00 -0000 From: Paul Koning To: eliz@gnu.org Cc: ghost@cs.msu.su, gdb@sources.redhat.com Subject: Re: MI: reporting of multiple breakpoints References: <20060217153211.GA21402@nevyn.them.org> <20060217194426.GA28988@nevyn.them.org> X-IsSubscribed: yes 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 X-SW-Source: 2006-02/txt/msg00204.txt.bz2 >>>>> "Eli" == Eli Zaretskii writes: >> Date: Fri, 17 Feb 2006 14:44:26 -0500 From: Daniel Jacobowitz >> Cc: Vladimir Prus , >> gdb@sources.redhat.com >> >> There are two events in hardware, yes - but "GDB will always see >> these two as separate events" is not accurate. Suppose we've got >> an instruction at foo+0x10 that stores to a watched address and at >> foo+0x16 that has a breakpoint set on it. The watchpoint will >> trigger, stopping GDB at foo+0x16. At this point, we were stopped >> by the watchpoint, but we'll never hit the breakpoint - if the >> user "continue"s, GDB will politely step around the breakpoint. >> In effect, we've hit the watchpoint and breakpoint simultaneously, >> and IMO it would be appropriate to let the user know about both of >> them. Eli> Why do we step around the breakpoint? As long as we do that, Eli> the breakpoint never happened, and we don't need to announce it. Eli> If we _want_ to announce it, we should stop stepping around it, Eli> IMHO. I think it is wrong to step around a breakpoint that's set at a different instruction than one that triggers a watchpoint. For example, suppose I'm monitoring a variable by setting a watchpoint, and setting up a command sequence to print an expression and continue. Separate from that, I want the program to break at line x. It is a bad thing for the break at x to fail due to the bad luck of having a watch exception at the preceding instruction. If the two stops happened to be the SAME instruction, then you have plausible deniability. But not if they are different instructions. paul