This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] config/i386: Remove I386_WATCHPOINTS_IN_TARGET_VECTOR macro


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  <muller@ics.u-strasbg.fr>
> 
> 	* 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 <http://www.gnu.org/licenses/>.
> */
>  
>  #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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]