From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7413 invoked by alias); 4 May 2011 22:21:15 -0000 Received: (qmail 7395 invoked by uid 22791); 4 May 2011 22:21:13 -0000 X-SWARE-Spam-Status: No, hits=-1.4 required=5.0 tests=AWL,BAYES_00,SPF_SOFTFAIL,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from e4.ny.us.ibm.com (HELO e4.ny.us.ibm.com) (32.97.182.144) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 04 May 2011 22:20:58 +0000 Received: from d01relay03.pok.ibm.com (d01relay03.pok.ibm.com [9.56.227.235]) by e4.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p44M0MiD016842 for ; Wed, 4 May 2011 18:00:22 -0400 Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by d01relay03.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p44MKtab095024 for ; Wed, 4 May 2011 18:20:55 -0400 Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p44MKs6K012785 for ; Wed, 4 May 2011 19:20:55 -0300 Received: from [9.12.228.54] ([9.12.228.54]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p44MKqKh012733; Wed, 4 May 2011 19:20:53 -0300 Subject: Re: [RFA 2/3] Demote to sw watchpoint only in update_watchpoint From: Thiago Jung Bauermann To: Eli Zaretskii Cc: pedro@codesourcery.com, gdb-patches@sourceware.org, uweigand@de.ibm.com In-Reply-To: <83d3jz4110.fsf@gnu.org> References: <201104291726.p3THQVaC029608@d06av02.portsmouth.uk.ibm.com> <201105031841.46949.pedro@codesourcery.com> <83hb9b4q80.fsf@gnu.org> <201105031912.43042.pedro@codesourcery.com> <83fwov4jem.fsf@gnu.org> <1304467386.19357.4.camel@hactar> <83d3jz4110.fsf@gnu.org> Content-Type: text/plain; charset="UTF-8" Date: Wed, 04 May 2011 22:21:00 -0000 Message-ID: <1304547648.19357.230.camel@hactar> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-05/txt/msg00116.txt.bz2 On Wed, 2011-05-04 at 06:06 +0300, Eli Zaretskii wrote: > > From: Thiago Jung Bauermann > > Cc: Pedro Alves , gdb-patches@sourceware.org, > > uweigand@de.ibm.com > > Date: Tue, 03 May 2011 21:03:06 -0300 > > > > On Tue, 2011-05-03 at 23:29 +0300, Eli Zaretskii wrote: > > > > From: Pedro Alves > > > > Date: Tue, 3 May 2011 19:12:42 +0100 > > > > Cc: bauerman@br.ibm.com, > > > > uweigand@de.ibm.com > > > > > > > > I'm proposing getting rid of target_can_use_hardware_watchpoint > > > > as being part of the core accounting infrastructure. > > > > > > I'm fine with heading that way. It will certainly be cleaner than the > > > current mess, which needs a face-lift every few months. > > > > For this scheme to work, GDB will have to be changed to use > > always-inserted mode exclusively, right? Or at least insert all > > breakpoints and watchpoints when probing whether a new > > breakpoint/watchpoint can be created. > > I think what Pedro suggests can (and should) work only for hardware > watchpoints and breakpoints. Normal breakpoints and watchpoints > cannot work that way, they must be inserted at "resume" time. > > So I think always-inserted mode is not the right way here, unless I'm > missing something. Ok, I think I'm a bit slow today. Is the following description correct? Current scheme: 1. The inferior is stopped and all bp_locations are removed. 2. The user asks for a new watchpoint. 3. GDB evaluates the expression and creates the bp_locations. 4. GDB counts all existing watchpoint bp_locations and asks the target whether there's room for one more. Depending on the answer, decides for a hw or sw watch. 5. GDB registers the new watchpoint for insertion. 6. The user asks the inferior to be continued. 7. GDB inserts all breakpoints and watchpoints and resumes the inferior. Pedro's suggestion: 1. The inferior is stopped and software bp_locations (both breakpoints and watchpoints) are removed. Hardware ones stay in place. 2. The user asks for a new watchpoint. 3. GDB evaluates the expression and creates the bp_locations. 4. GDB tries to insert the bp_locations as hw watches. If that fails, then converts to sw and registers the watchpoint for insertion. 5. The user asks the inferior to be continued. 6. GDB inserts sw breakpoints and watchpoints and resumes the inferior. -- []'s Thiago Jung Bauermann IBM Linux Technology Center