This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA] config/i386: Remove I386_WATCHPOINTS_IN_TARGET_VECTOR macro
- From: Pedro Alves <pedro at codesourcery dot com>
- To: gdb-patches at sourceware dot org
- Cc: "Pierre Muller" <muller at ics dot u-strasbg dot fr>
- Date: Sat, 14 Mar 2009 13:46:16 +0000
- Subject: Re: [RFA] config/i386: Remove I386_WATCHPOINTS_IN_TARGET_VECTOR macro
- References: <000701c9a3b8$bd7cc330$38764990$@u-strasbg.fr>
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