From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18729 invoked by alias); 14 Mar 2009 13:56:11 -0000 Received: (qmail 18715 invoked by uid 22791); 14 Mar 2009 13:56:09 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (65.74.133.4) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 14 Mar 2009 13:56:04 +0000 Received: (qmail 9113 invoked from network); 14 Mar 2009 13:56:01 -0000 Received: from unknown (HELO orlando.local) (pedro@127.0.0.2) by mail.codesourcery.com with ESMTPA; 14 Mar 2009 13:56:01 -0000 From: Pedro Alves To: gdb-patches@sourceware.org Subject: Re: [RFA] config/i386: Remove I386_WATCHPOINTS_IN_TARGET_VECTOR macro Date: Sat, 14 Mar 2009 14:28:00 -0000 User-Agent: KMail/1.9.10 Cc: "Pierre Muller" References: <000701c9a3b8$bd7cc330$38764990$@u-strasbg.fr> In-Reply-To: <000701c9a3b8$bd7cc330$38764990$@u-strasbg.fr> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200903141346.16400.pedro@codesourcery.com> 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: 2009-03/txt/msg00230.txt.bz2 On Friday 13 March 2009 08:50:20, Pierre Muller wrote: > As suggested by Pedro, > see the previous thread: > http://sourceware.org/ml/gdb-patches/2009-03/msg00180.html Thanks! > Tested on x86_64-*-linux, > no regressions. > > > ChangeLog entry: > > 2009-03-13 Pierre Muller > > * config/i386/nm-i386.h: Remove code within > I386_WATCHPOINTS_IN_TARGET_VECTOR conditional. This looks good to me. I didn't spot any target defining I386_USE_GENERIC_WATCHPOINTS yet not defining I386_WATCHPOINTS_IN_TARGET_VECTOR. I take it you looked for those as well. > * config/i386/nm-cygwin.h: Remove I386_WATCHPOINTS_IN_TARGET_VECTOR > macro. > * config/i386/nm-cygwin64.h: Ditto. Maybe Christopher wants to comment on this. You've made windows-nat.c call i386_use_watchpoints, so this looks obviously correct to me. > * config/i386/nm-go32.h: Ditto. Eli approved this one. > * config/i386/nm-fbsd.h: Ditto. > * config/i386/nm-linux.h: Ditto. > * config/i386/nm-linux64.h: Ditto. These look good to me too. Making i386 solaris (config/nm-i386sol2.h) use the target vector for watchpoints, would be my recomended next step for cleaning up the config/i386 nm headers. > > Index: src/gdb/config/i386/nm-cygwin.h > =================================================================== > RCS file: /cvs/src/src/gdb/config/i386/nm-cygwin.h,v > retrieving revision 1.9 > diff -u -p -r1.9 nm-cygwin.h > --- src/gdb/config/i386/nm-cygwin.h 20 Feb 2009 10:52:24 -0000 1.9 > +++ src/gdb/config/i386/nm-cygwin.h 13 Mar 2009 08:21:21 -0000 > @@ -20,7 +20,6 @@ > void dll_symbol_command (char *, int); > > #define I386_USE_GENERIC_WATCHPOINTS > -#define I386_WATCHPOINTS_IN_TARGET_VECTOR > > #include "i386/nm-i386.h" > > Index: src/gdb/config/i386/nm-cygwin64.h > =================================================================== > RCS file: /cvs/src/src/gdb/config/i386/nm-cygwin64.h,v > retrieving revision 1.2 > diff -u -p -r1.2 nm-cygwin64.h > --- src/gdb/config/i386/nm-cygwin64.h 20 Feb 2009 10:52:24 -0000 1.2 > +++ src/gdb/config/i386/nm-cygwin64.h 13 Mar 2009 08:21:21 -0000 > @@ -19,7 +19,6 @@ > void dll_symbol_command (char *, int); > > #define I386_USE_GENERIC_WATCHPOINTS > -#define I386_WATCHPOINTS_IN_TARGET_VECTOR > > #include "i386/nm-i386.h" > > Index: src/gdb/config/i386/nm-fbsd.h > =================================================================== > RCS file: /cvs/src/src/gdb/config/i386/nm-fbsd.h,v > retrieving revision 1.19 > diff -u -p -r1.19 nm-fbsd.h > --- src/gdb/config/i386/nm-fbsd.h 20 Feb 2009 10:52:24 -0000 1.19 > +++ src/gdb/config/i386/nm-fbsd.h 13 Mar 2009 08:21:21 -0000 > @@ -23,7 +23,6 @@ > > #ifdef HAVE_PT_GETDBREGS > #define I386_USE_GENERIC_WATCHPOINTS > -#define I386_WATCHPOINTS_IN_TARGET_VECTOR > #endif > > #include "i386/nm-i386.h" > Index: src/gdb/config/i386/nm-go32.h > =================================================================== > RCS file: /cvs/src/src/gdb/config/i386/nm-go32.h,v > retrieving revision 1.9 > diff -u -p -r1.9 nm-go32.h > --- src/gdb/config/i386/nm-go32.h 20 Feb 2009 10:52:24 -0000 1.9 > +++ src/gdb/config/i386/nm-go32.h 13 Mar 2009 08:21:21 -0000 > @@ -18,7 +18,6 @@ > along with this program. If not, see . > */ > > #define I386_USE_GENERIC_WATCHPOINTS > -#define I386_WATCHPOINTS_IN_TARGET_VECTOR > > #include "i386/nm-i386.h" > > Index: src/gdb/config/i386/nm-i386.h > =================================================================== > RCS file: /cvs/src/src/gdb/config/i386/nm-i386.h,v > retrieving revision 1.14 > diff -u -p -r1.14 nm-i386.h > --- src/gdb/config/i386/nm-i386.h 3 Jan 2009 05:57:54 -0000 1.14 > +++ src/gdb/config/i386/nm-i386.h 13 Mar 2009 08:21:21 -0000 > @@ -24,8 +24,9 @@ > /* Targets should define this to use the generic x86 watchpoint support. > */ > #ifdef I386_USE_GENERIC_WATCHPOINTS > > -/* Add watchpoint methods to the provided target_ops. Targets which call > - this should also define I386_WATCHPOINTS_IN_TARGET_VECTOR. */ > +/* Add watchpoint methods to the provided target_ops. > + Targets which define I386_USE_GENERIC_WATCHPOINTS must > + call this function. */ > struct target_ops; > void i386_use_watchpoints (struct target_ops *); > > @@ -66,60 +67,6 @@ extern int i386_remove_hw_breakpoint (s > > extern int i386_stopped_by_watchpoint (void); > > -#ifndef I386_WATCHPOINTS_IN_TARGET_VECTOR > - > -/* Returns the number of hardware watchpoints of type TYPE that we can > - set. Value is positive if we can set CNT watchpoints, zero if > - setting watchpoints of type TYPE is not supported, and negative if > - CNT is more than the maximum number of watchpoints of type TYPE > - that we can support. TYPE is one of bp_hardware_watchpoint, > - bp_read_watchpoint, bp_write_watchpoint, or bp_hardware_breakpoint. > - CNT is the number of such watchpoints used so far (including this > - one). OTHERTYPE is non-zero if other types of watchpoints are > - currently enabled. > - > - We always return 1 here because we don't have enough information > - about possible overlap of addresses that they want to watch. As an > - extreme example, consider the case where all the watchpoints watch > - the same address and the same region length: then we can handle a > - virtually unlimited number of watchpoints, due to debug register > - sharing implemented via reference counts in i386-nat.c. */ > - > -#define TARGET_CAN_USE_HARDWARE_WATCHPOINT(type, cnt, ot) 1 > - > -/* Returns non-zero if we can use hardware watchpoints to watch a > - region whose address is ADDR and whose length is LEN. */ > - > -#define TARGET_REGION_OK_FOR_HW_WATCHPOINT(addr, len) \ > - i386_region_ok_for_watchpoint (addr, len) > - > -/* After a watchpoint trap, the PC points to the instruction after the > - one that caused the trap. Therefore we don't need to step over it. > - But we do need to reset the status register to avoid another trap. */ > - > -#define HAVE_CONTINUABLE_WATCHPOINT 1 > - > -#define STOPPED_BY_WATCHPOINT(W) (i386_stopped_by_watchpoint () != 0) > - > -#define target_stopped_data_address(target, x) \ > - i386_stopped_data_address(target, x) > - > -/* Use these macros for watchpoint insertion/removal. */ > - > -#define target_insert_watchpoint(addr, len, type) \ > - i386_insert_watchpoint (addr, len, type) > - > -#define target_remove_watchpoint(addr, len, type) \ > - i386_remove_watchpoint (addr, len, type) > - > -#define target_insert_hw_breakpoint(bp_tgt) \ > - i386_insert_hw_breakpoint (bp_tgt) > - > -#define target_remove_hw_breakpoint(bp_tgt) \ > - i386_remove_hw_breakpoint (bp_tgt) > - > -#endif /* I386_WATCHPOINTS_IN_TARGET_VECTOR */ > - > #endif /* I386_USE_GENERIC_WATCHPOINTS */ > > #endif /* NM_I386_H */ > Index: src/gdb/config/i386/nm-linux.h > =================================================================== > RCS file: /cvs/src/src/gdb/config/i386/nm-linux.h,v > retrieving revision 1.29 > diff -u -p -r1.29 nm-linux.h > --- src/gdb/config/i386/nm-linux.h 3 Jan 2009 05:57:54 -0000 1.29 > +++ src/gdb/config/i386/nm-linux.h 13 Mar 2009 08:21:21 -0000 > @@ -24,7 +24,6 @@ > > /* GNU/Linux supports the i386 hardware debugging registers. */ > #define I386_USE_GENERIC_WATCHPOINTS > -#define I386_WATCHPOINTS_IN_TARGET_VECTOR > > #include "i386/nm-i386.h" > #include "config/nm-linux.h" > Index: src/gdb/config/i386/nm-linux64.h > =================================================================== > RCS file: /cvs/src/src/gdb/config/i386/nm-linux64.h,v > retrieving revision 1.9 > diff -u -p -r1.9 nm-linux64.h > --- src/gdb/config/i386/nm-linux64.h 3 Jan 2009 05:57:54 -0000 1.9 > +++ src/gdb/config/i386/nm-linux64.h 13 Mar 2009 08:21:21 -0000 > @@ -25,7 +25,6 @@ > > /* GNU/Linux supports the i386 hardware debugging registers. */ > #define I386_USE_GENERIC_WATCHPOINTS > -#define I386_WATCHPOINTS_IN_TARGET_VECTOR > > #include "i386/nm-i386.h" > #include "config/nm-linux.h" > > -- Pedro Alves