Blame SOURCES/gdb-rhbz795424-bitpos-22of25.patch

4c2ad1
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
4c2ad1
From: Fedora GDB patches <invalid@email.com>
4c2ad1
Date: Fri, 27 Oct 2017 21:07:50 +0200
4c2ad1
Subject: gdb-rhbz795424-bitpos-22of25.patch
4c2ad1
4c2ad1
;; Fix `GDB cannot access struct member whose offset is larger than 256MB'
4c2ad1
;; (RH BZ 795424).
4c2ad1
;;=push
4c2ad1
4c2ad1
http://sourceware.org/ml/gdb-patches/2012-09/msg00629.html
4c2ad1
4c2ad1
--MP_/6HRlH6vpyqtSy4CYyMrX6b2
4c2ad1
Content-Type: text/plain; charset=US-ASCII
4c2ad1
Content-Transfer-Encoding: 7bit
4c2ad1
Content-Disposition: inline
4c2ad1
4c2ad1
Hi,
4c2ad1
4c2ad1
This is part three of the bitpos expansion change.  Some architectures
4c2ad1
allow arbitrary length watchpoints and combined with the fact that type
4c2ad1
lengths could be large enough, we need LONGEST for watchpoint lengths.
4c2ad1
It is architecture dependent however, whether the LONGEST is needed or
4c2ad1
not.  This patch updates the signatures of watchpoint insertion and
4c2ad1
removal functions of all architectures (to comply with the function
4c2ad1
signatures in the callback struct), but expands types only in
4c2ad1
architectures that need it.  Tested on Fedora 16 x86_64.
4c2ad1
4c2ad1
Regards,
4c2ad1
Siddhesh
4c2ad1
--MP_/6HRlH6vpyqtSy4CYyMrX6b2
4c2ad1
Content-Type: text/plain
4c2ad1
Content-Transfer-Encoding: quoted-printable
4c2ad1
Content-Disposition: attachment; filename=ChangeLog-wp
4c2ad1
4c2ad1
gdb/ChangeLog:
4c2ad1
4c2ad1
	* arm-linux-nat.c (arm_linux_insert_watchpoint): Expand
4c2ad1
	parameter LEN to LONGEST.
4c2ad1
	(arm_linux_remove_watchpoint): Likewise.
4c2ad1
	(arm_linux_watchpoint_addr_within_range): Expand parameter
4c2ad1
	LENGTH to LONGEST.
4c2ad1
	* i386-nat.c (i386_insert_watchpoint): Expand parameter LEN to
4c2ad1
	LONGEST.
4c2ad1
	(i386_remove_watchpoint): Likewise.
4c2ad1
	* ia64-linux-nat.c (ia64_linux_insert_watchpoint): Likewise.
4c2ad1
	(ia64_linux_remove_watchpoint): Likewise.
4c2ad1
	* inf-ttrace.c (inf_ttrace_insert_watchpoint): Likewise.
4c2ad1
	Expand NUM_PAGES, PAGE to LONGEST.
4c2ad1
	(inf_ttrace_remove_watchpoint): Likewise.
4c2ad1
	* mips-linux-nat.c (mips_linux_insert_watchpoint): Expand
4c2ad1
	parameter LEN to LONGEST.
4c2ad1
	(mips_linux_remove_watchpoint): Likewise.
4c2ad1
	* nto-procfs.c (procfs_remove_hw_watchpoint): Likewise.
4c2ad1
	(procfs_insert_hw_watchpoint): Likewise.
4c2ad1
	* ppc-linux-nat.c (calculate_dvc): Likewise.  Expand I,
4c2ad1
	NUM_BYTE_ENABLE to LONGEST.
4c2ad1
	(check_condition): Expand parameter LEN to point to LONGEST.
4c2ad1
	(ppc_linux_can_accel_watchpoint_condition): Expand parameter
4c2ad1
	LEN to LONGEST.
4c2ad1
	(create_watchpoint_request): Likewise.
4c2ad1
	(ppc_linux_insert_watchpoint): Likewise.
4c2ad1
	(ppc_linux_remove_watchpoint): Likewise.
4c2ad1
	(ppc_linux_watchpoint_addr_within_range): Expand parameter
4c2ad1
	LENGTH to LONGEST.
4c2ad1
	* procfs.c (proc_set_watchpoint): Expand parameter LEN to
4c2ad1
	LONGEST.
4c2ad1
	(procfs_set_watchpoint): Likewise.
4c2ad1
	(procfs_insert_watchpoint): Likewise.
4c2ad1
	(procfs_remove_watchpoint): Likewise.
4c2ad1
	* remote-m32r-sdi.c (m32r_insert_watchpoint): Likewise.  Use
4c2ad1
	plongest to format print LEN.
4c2ad1
	(m32r_remove_watchpoint): Likewise.
4c2ad1
	* remote-mips.c (mips_insert_watchpoint): Expand parameter LEN
4c2ad1
	to LONGEST.
4c2ad1
	(mips_remove_watchpoint): Likewise.
4c2ad1
	* remote.c (remote_insert_watchpoint): Likewise.
4c2ad1
	Use phex_nz to format print LEN.
4c2ad1
	(remote_remove_watchpoint): Likewise.
4c2ad1
	(remote_watchpoint_addr_within_range): Expand parameter LENGTH
4c2ad1
	to LONGEST.
4c2ad1
	* s390-linux-nat.c (s390_insert_watchpoint): Expand parameter LEN to
4c2ad1
	LONGEST.
4c2ad1
	(s390_remove_watchpoint): Likewise.
4c2ad1
	* target.c (update_current_target): Expand parameter LEN for
4c2ad1
	callbacks to TO_INSERT_WATCHPOINT, TO_REMOVE_WATCHPOINT,
4c2ad1
	TO_CAN_ACCEL_WATCHPOINT_CONDITION, to LONGEST.
4c2ad1
	(default_watchpoint_addr_within_range): Expand parameter
4c2ad1
	LENGTH to LONGEST.
4c2ad1
	(debug_to_can_accel_watchpoint_condition): Expand parameter LEN
4c2ad1
	to LONGEST.  Use plongest to format print LEN.
4c2ad1
	(debug_to_watchpoint_addr_within_range): Expand parameter LENGTH
4c2ad1
	to LONGEST.  Use plongest to format print LENGTH.
4c2ad1
	(debug_to_insert_watchpoint): Expand parameter LEN to LONGEST.
4c2ad1
	Use plongest to format print LEN.
4c2ad1
	(debug_to_remove_watchpoint): Likewise.
4c2ad1
	* target.h (struct target_ops): Expand parameter LEN of
4c2ad1
	TO_REMOVE_WATCHPOINT, TO_INSERT_WATCHPOINT,
4c2ad1
	TO_WATCHPOINT_ADDR_WITHIN_RANGE and
4c2ad1
	TO_CAN_ACCEL_WATCHPOINT_CONDITION to LONGEST.
4c2ad1
4c2ad1
--MP_/6HRlH6vpyqtSy4CYyMrX6b2
4c2ad1
Content-Type: text/x-patch
4c2ad1
Content-Transfer-Encoding: 7bit
4c2ad1
Content-Disposition: attachment; filename=bitpos-wp.patch
4c2ad1
4c2ad1
diff --git a/gdb/aarch64-linux-nat.c b/gdb/aarch64-linux-nat.c
4c2ad1
--- a/gdb/aarch64-linux-nat.c
4c2ad1
+++ b/gdb/aarch64-linux-nat.c
4c2ad1
@@ -63,14 +63,14 @@ public:
4c2ad1
   int can_use_hw_breakpoint (enum bptype, int, int) override;
4c2ad1
   int insert_hw_breakpoint (struct gdbarch *, struct bp_target_info *) override;
4c2ad1
   int remove_hw_breakpoint (struct gdbarch *, struct bp_target_info *) override;
4c2ad1
-  int region_ok_for_hw_watchpoint (CORE_ADDR, int) override;
4c2ad1
+  int region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST) override;
4c2ad1
   int insert_watchpoint (CORE_ADDR, int, enum target_hw_bp_type,
4c2ad1
 			 struct expression *) override;
4c2ad1
   int remove_watchpoint (CORE_ADDR, int, enum target_hw_bp_type,
4c2ad1
 			 struct expression *) override;
4c2ad1
   bool stopped_by_watchpoint () override;
4c2ad1
   bool stopped_data_address (CORE_ADDR *) override;
4c2ad1
-  bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, int) override;
4c2ad1
+  bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, LONGEST) override;
4c2ad1
 
4c2ad1
   int can_do_single_step () override;
4c2ad1
 
4c2ad1
@@ -887,7 +887,8 @@ aarch64_linux_nat_target::stopped_by_watchpoint ()
4c2ad1
 
4c2ad1
 bool
4c2ad1
 aarch64_linux_nat_target::watchpoint_addr_within_range (CORE_ADDR addr,
4c2ad1
-							CORE_ADDR start, int length)
4c2ad1
+							CORE_ADDR start,
4c2ad1
+							LONGEST length)
4c2ad1
 {
4c2ad1
   return start <= addr && start + length - 1 >= addr;
4c2ad1
 }
4c2ad1
diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c
4c2ad1
--- a/gdb/arm-linux-nat.c
4c2ad1
+++ b/gdb/arm-linux-nat.c
4c2ad1
@@ -80,7 +80,7 @@ public:
4c2ad1
 
4c2ad1
   int remove_hw_breakpoint (struct gdbarch *, struct bp_target_info *) override;
4c2ad1
 
4c2ad1
-  int region_ok_for_hw_watchpoint (CORE_ADDR, int) override;
4c2ad1
+  int region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST) override;
4c2ad1
 
4c2ad1
   int insert_watchpoint (CORE_ADDR, int, enum target_hw_bp_type,
4c2ad1
 			 struct expression *) override;
4c2ad1
@@ -91,7 +91,7 @@ public:
4c2ad1
 
4c2ad1
   bool stopped_data_address (CORE_ADDR *) override;
4c2ad1
 
4c2ad1
-  bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, int) override;
4c2ad1
+  bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, LONGEST) override;
4c2ad1
 
4c2ad1
   const struct target_desc *read_description () override;
4c2ad1
 
4c2ad1
@@ -1207,7 +1207,7 @@ arm_linux_nat_target::stopped_by_watchpoint ()
4c2ad1
 bool
4c2ad1
 arm_linux_nat_target::watchpoint_addr_within_range (CORE_ADDR addr,
4c2ad1
 						    CORE_ADDR start,
4c2ad1
-						    int length)
4c2ad1
+						    LONGEST length)
4c2ad1
 {
4c2ad1
   return start <= addr && start + length - 1 >= addr;
4c2ad1
 }
4c2ad1
diff --git a/gdb/nat/aarch64-linux-hw-point.c b/gdb/nat/aarch64-linux-hw-point.c
4c2ad1
--- a/gdb/nat/aarch64-linux-hw-point.c
4c2ad1
+++ b/gdb/nat/aarch64-linux-hw-point.c
4c2ad1
@@ -137,7 +137,7 @@ aarch64_point_encode_ctrl_reg (enum target_hw_bp_type type, int offset, int len)
4c2ad1
    Return 0 for any non-compliant ADDR and/or LEN; return 1 otherwise.  */
4c2ad1
 
4c2ad1
 static int
4c2ad1
-aarch64_point_is_aligned (int is_watchpoint, CORE_ADDR addr, int len)
4c2ad1
+aarch64_point_is_aligned (int is_watchpoint, CORE_ADDR addr, LONGEST len)
4c2ad1
 {
4c2ad1
   unsigned int alignment = 0;
4c2ad1
 
4c2ad1
@@ -212,9 +212,10 @@ aarch64_point_is_aligned (int is_watchpoint, CORE_ADDR addr, int len)
4c2ad1
    an address within the latter. */
4c2ad1
 
4c2ad1
 static void
4c2ad1
-aarch64_align_watchpoint (CORE_ADDR addr, int len, CORE_ADDR *aligned_addr_p,
4c2ad1
+aarch64_align_watchpoint (CORE_ADDR addr, LONGEST len,
4c2ad1
+			  CORE_ADDR *aligned_addr_p,
4c2ad1
 			  int *aligned_offset_p, int *aligned_len_p,
4c2ad1
-			  CORE_ADDR *next_addr_p, int *next_len_p,
4c2ad1
+			  CORE_ADDR *next_addr_p, LONGEST *next_len_p,
4c2ad1
 			  CORE_ADDR *next_addr_orig_p)
4c2ad1
 {
4c2ad1
   int aligned_len;
4c2ad1
@@ -611,7 +612,7 @@ aarch64_handle_aligned_watchpoint (enum target_hw_bp_type type,
4c2ad1
 
4c2ad1
 static int
4c2ad1
 aarch64_handle_unaligned_watchpoint (enum target_hw_bp_type type,
4c2ad1
-				     CORE_ADDR addr, int len, int is_insert,
4c2ad1
+				     CORE_ADDR addr, LONGEST len, int is_insert,
4c2ad1
 				     struct aarch64_debug_reg_state *state)
4c2ad1
 {
4c2ad1
   CORE_ADDR addr_orig = addr;
4c2ad1
@@ -641,12 +642,12 @@ aarch64_handle_unaligned_watchpoint (enum target_hw_bp_type type,
4c2ad1
 		      "                                "
4c2ad1
 		      "addr_orig: %s\n"
4c2ad1
 		      "                                "
4c2ad1
-		      "next_addr: %s,    next_len: %d\n"
4c2ad1
+		      "next_addr: %s,    next_len: %s\n"
4c2ad1
 		      "                           "
4c2ad1
 		      "addr_orig_next: %s\n",
4c2ad1
 		      is_insert, core_addr_to_string_nz (aligned_addr),
4c2ad1
 		      aligned_len, core_addr_to_string_nz (addr_orig),
4c2ad1
-		      core_addr_to_string_nz (addr), len,
4c2ad1
+		      core_addr_to_string_nz (addr), plongest (len),
4c2ad1
 		      core_addr_to_string_nz (addr_orig_next));
4c2ad1
 
4c2ad1
       addr_orig = addr_orig_next;
4c2ad1
@@ -660,7 +661,7 @@ aarch64_handle_unaligned_watchpoint (enum target_hw_bp_type type,
4c2ad1
 
4c2ad1
 int
4c2ad1
 aarch64_handle_watchpoint (enum target_hw_bp_type type, CORE_ADDR addr,
4c2ad1
-			   int len, int is_insert,
4c2ad1
+			   LONGEST len, int is_insert,
4c2ad1
 			   struct aarch64_debug_reg_state *state)
4c2ad1
 {
4c2ad1
   if (aarch64_point_is_aligned (1 /* is_watchpoint */ , addr, len))
4c2ad1
@@ -722,14 +723,14 @@ aarch64_linux_set_debug_regs (struct aarch64_debug_reg_state *state,
4c2ad1
 void
4c2ad1
 aarch64_show_debug_reg_state (struct aarch64_debug_reg_state *state,
4c2ad1
 			      const char *func, CORE_ADDR addr,
4c2ad1
-			      int len, enum target_hw_bp_type type)
4c2ad1
+			      LONGEST len, enum target_hw_bp_type type)
4c2ad1
 {
4c2ad1
   int i;
4c2ad1
 
4c2ad1
   debug_printf ("%s", func);
4c2ad1
   if (addr || len)
4c2ad1
-    debug_printf (" (addr=0x%08lx, len=%d, type=%s)",
4c2ad1
-		  (unsigned long) addr, len,
4c2ad1
+    debug_printf (" (addr=0x%08lx, len=%s, type=%s)",
4c2ad1
+		  (unsigned long) addr, plongest (len),
4c2ad1
 		  type == hw_write ? "hw-write-watchpoint"
4c2ad1
 		  : (type == hw_read ? "hw-read-watchpoint"
4c2ad1
 		     : (type == hw_access ? "hw-access-watchpoint"
4c2ad1
@@ -812,7 +813,7 @@ aarch64_linux_get_debug_reg_capacity (int tid)
4c2ad1
    ADDR and whose length is LEN in bytes.  */
4c2ad1
 
4c2ad1
 int
4c2ad1
-aarch64_linux_region_ok_for_watchpoint (CORE_ADDR addr, int len)
4c2ad1
+aarch64_linux_region_ok_for_watchpoint (CORE_ADDR addr, LONGEST len)
4c2ad1
 {
4c2ad1
   CORE_ADDR aligned_addr;
4c2ad1
 
4c2ad1
diff --git a/gdb/nat/aarch64-linux-hw-point.h b/gdb/nat/aarch64-linux-hw-point.h
4c2ad1
--- a/gdb/nat/aarch64-linux-hw-point.h
4c2ad1
+++ b/gdb/nat/aarch64-linux-hw-point.h
4c2ad1
@@ -176,7 +176,7 @@ int aarch64_handle_breakpoint (enum target_hw_bp_type type, CORE_ADDR addr,
4c2ad1
 			       int len, int is_insert,
4c2ad1
 			       struct aarch64_debug_reg_state *state);
4c2ad1
 int aarch64_handle_watchpoint (enum target_hw_bp_type type, CORE_ADDR addr,
4c2ad1
-			       int len, int is_insert,
4c2ad1
+			       LONGEST len, int is_insert,
4c2ad1
 			       struct aarch64_debug_reg_state *state);
4c2ad1
 
4c2ad1
 void aarch64_linux_set_debug_regs (struct aarch64_debug_reg_state *state,
4c2ad1
@@ -184,12 +184,12 @@ void aarch64_linux_set_debug_regs (struct aarch64_debug_reg_state *state,
4c2ad1
 
4c2ad1
 void aarch64_show_debug_reg_state (struct aarch64_debug_reg_state *state,
4c2ad1
 				   const char *func, CORE_ADDR addr,
4c2ad1
-				   int len, enum target_hw_bp_type type);
4c2ad1
+				   LONGEST len, enum target_hw_bp_type type);
4c2ad1
 
4c2ad1
 void aarch64_linux_get_debug_reg_capacity (int tid);
4c2ad1
 
4c2ad1
 struct aarch64_debug_reg_state *aarch64_get_debug_reg_state (pid_t pid);
4c2ad1
 
4c2ad1
-int aarch64_linux_region_ok_for_watchpoint (CORE_ADDR addr, int len);
4c2ad1
+int aarch64_linux_region_ok_for_watchpoint (CORE_ADDR addr, LONGEST len);
4c2ad1
 
4c2ad1
 #endif /* AARCH64_LINUX_HW_POINT_H */
4c2ad1
diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c
4c2ad1
--- a/gdb/ppc-linux-nat.c
4c2ad1
+++ b/gdb/ppc-linux-nat.c
4c2ad1
@@ -282,7 +282,7 @@ struct ppc_linux_nat_target final : public linux_nat_target
4c2ad1
   int remove_hw_breakpoint (struct gdbarch *, struct bp_target_info *)
4c2ad1
     override;
4c2ad1
 
4c2ad1
-  int region_ok_for_hw_watchpoint (CORE_ADDR, int) override;
4c2ad1
+  int region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST) override;
4c2ad1
 
4c2ad1
   int insert_watchpoint (CORE_ADDR, int, enum target_hw_bp_type,
4c2ad1
 			 struct expression *) override;
4c2ad1
@@ -300,9 +300,9 @@ struct ppc_linux_nat_target final : public linux_nat_target
4c2ad1
 
4c2ad1
   bool stopped_data_address (CORE_ADDR *) override;
4c2ad1
 
4c2ad1
-  bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, int) override;
4c2ad1
+  bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, LONGEST) override;
4c2ad1
 
4c2ad1
-  bool can_accel_watchpoint_condition (CORE_ADDR, int, int, struct expression *)
4c2ad1
+  bool can_accel_watchpoint_condition (CORE_ADDR, LONGEST, int, struct expression *)
4c2ad1
     override;
4c2ad1
 
4c2ad1
   int masked_watch_num_registers (CORE_ADDR, CORE_ADDR) override;
4c2ad1
@@ -1659,11 +1659,11 @@ can_use_watchpoint_cond_accel (void)
4c2ad1
    CONDITION_VALUE will hold the value which should be put in the
4c2ad1
    DVC register.  */
4c2ad1
 static void
4c2ad1
-calculate_dvc (CORE_ADDR addr, int len, CORE_ADDR data_value,
4c2ad1
+calculate_dvc (CORE_ADDR addr, LONGEST len, CORE_ADDR data_value,
4c2ad1
 	       uint32_t *condition_mode, uint64_t *condition_value)
4c2ad1
 {
4c2ad1
-  int i, num_byte_enable, align_offset, num_bytes_off_dvc,
4c2ad1
-      rightmost_enabled_byte;
4c2ad1
+  LONGEST i, num_byte_enable;
4c2ad1
+  int align_offset, num_bytes_off_dvc, rightmost_enabled_byte;
4c2ad1
   CORE_ADDR addr_end_data, addr_end_dvc;
4c2ad1
 
4c2ad1
   /* The DVC register compares bytes within fixed-length windows which
4c2ad1
@@ -1751,7 +1751,7 @@ num_memory_accesses (const std::vector<value_ref_ptr> &chain)
4c2ad1
    of the constant.  */
4c2ad1
 static int
4c2ad1
 check_condition (CORE_ADDR watch_addr, struct expression *cond,
4c2ad1
-		 CORE_ADDR *data_value, int *len)
4c2ad1
+		 CORE_ADDR *data_value, LONGEST *len)
4c2ad1
 {
4c2ad1
   int pc = 1, num_accesses_left, num_accesses_right;
4c2ad1
   struct value *left_val, *right_val;
4c2ad1
@@ -1802,7 +1802,8 @@ check_condition (CORE_ADDR watch_addr, struct expression *cond,
4c2ad1
    the condition expression, thus only triggering the watchpoint when it is
4c2ad1
    true.  */
4c2ad1
 bool
4c2ad1
-ppc_linux_nat_target::can_accel_watchpoint_condition (CORE_ADDR addr, int len,
4c2ad1
+ppc_linux_nat_target::can_accel_watchpoint_condition (CORE_ADDR addr,
4c2ad1
+						      LONGEST len,
4c2ad1
 						      int rw,
4c2ad1
 						      struct expression *cond)
4c2ad1
 {
4c2ad1
@@ -1820,7 +1821,7 @@ ppc_linux_nat_target::can_accel_watchpoint_condition (CORE_ADDR addr, int len,
4c2ad1
 
4c2ad1
 static void
4c2ad1
 create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr,
4c2ad1
-			   int len, enum target_hw_bp_type type,
4c2ad1
+			   LONGEST len, enum target_hw_bp_type type,
4c2ad1
 			   struct expression *cond, int insert)
4c2ad1
 {
4c2ad1
   if (len == 1
4c2ad1
@@ -2086,7 +2087,7 @@ ppc_linux_nat_target::stopped_by_watchpoint ()
4c2ad1
 bool
4c2ad1
 ppc_linux_nat_target::watchpoint_addr_within_range (CORE_ADDR addr,
4c2ad1
 						    CORE_ADDR start,
4c2ad1
-						    int length)
4c2ad1
+						    LONGEST length)
4c2ad1
 {
4c2ad1
   int mask;
4c2ad1
 
4c2ad1
diff --git a/gdb/procfs.c b/gdb/procfs.c
4c2ad1
--- a/gdb/procfs.c
4c2ad1
+++ b/gdb/procfs.c
4c2ad1
@@ -1561,7 +1561,7 @@ procfs_address_to_host_pointer (CORE_ADDR addr)
4c2ad1
 }
4c2ad1
 
4c2ad1
 static int
4c2ad1
-proc_set_watchpoint (procinfo *pi, CORE_ADDR addr, int len, int wflags)
4c2ad1
+proc_set_watchpoint (procinfo *pi, CORE_ADDR addr, LONGEST len, int wflags)
4c2ad1
 {
4c2ad1
   struct {
4c2ad1
     procfs_ctl_t cmd;
4c2ad1
@@ -3214,7 +3214,7 @@ procfs_target::pid_to_str (ptid_t ptid)
4c2ad1
 /* Insert a watchpoint.  */
4c2ad1
 
4c2ad1
 static int
4c2ad1
-procfs_set_watchpoint (ptid_t ptid, CORE_ADDR addr, int len, int rwflag,
4c2ad1
+procfs_set_watchpoint (ptid_t ptid, CORE_ADDR addr, LONGEST len, int rwflag,
4c2ad1
 		       int after)
4c2ad1
 {
4c2ad1
   int       pflags = 0;
4c2ad1
diff --git a/gdb/remote.c b/gdb/remote.c
4c2ad1
--- a/gdb/remote.c
4c2ad1
+++ b/gdb/remote.c
4c2ad1
@@ -454,7 +454,7 @@ public:
4c2ad1
 
4c2ad1
   bool stopped_data_address (CORE_ADDR *) override;
4c2ad1
 
4c2ad1
-  bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, int) override;
4c2ad1
+  bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, LONGEST) override;
4c2ad1
 
4c2ad1
   int can_use_hw_breakpoint (enum bptype, int, int) override;
4c2ad1
 
4c2ad1
@@ -10342,7 +10342,7 @@ remote_target::insert_watchpoint (CORE_ADDR addr, int len,
4c2ad1
   p = strchr (rs->buf, '\0');
4c2ad1
   addr = remote_address_masked (addr);
4c2ad1
   p += hexnumstr (p, (ULONGEST) addr);
4c2ad1
-  xsnprintf (p, endbuf - p, ",%x", len);
4c2ad1
+  xsnprintf (p, endbuf - p, ",%s", phex_nz (len, sizeof (len)));
4c2ad1
 
4c2ad1
   putpkt (rs->buf);
4c2ad1
   getpkt (&rs->buf, &rs->buf_size, 0);
4c2ad1
@@ -10362,7 +10362,7 @@ remote_target::insert_watchpoint (CORE_ADDR addr, int len,
4c2ad1
 
4c2ad1
 bool
4c2ad1
 remote_target::watchpoint_addr_within_range (CORE_ADDR addr,
4c2ad1
-					     CORE_ADDR start, int length)
4c2ad1
+					     CORE_ADDR start, LONGEST length)
4c2ad1
 {
4c2ad1
   CORE_ADDR diff = remote_address_masked (addr - start);
4c2ad1
 
4c2ad1
@@ -10391,7 +10391,7 @@ remote_target::remove_watchpoint (CORE_ADDR addr, int len,
4c2ad1
   p = strchr (rs->buf, '\0');
4c2ad1
   addr = remote_address_masked (addr);
4c2ad1
   p += hexnumstr (p, (ULONGEST) addr);
4c2ad1
-  xsnprintf (p, endbuf - p, ",%x", len);
4c2ad1
+  xsnprintf (p, endbuf - p, ",%s", phex_nz (len, sizeof (len)));
4c2ad1
   putpkt (rs->buf);
4c2ad1
   getpkt (&rs->buf, &rs->buf_size, 0);
4c2ad1
 
4c2ad1
diff --git a/gdb/s390-linux-nat.c b/gdb/s390-linux-nat.c
4c2ad1
--- a/gdb/s390-linux-nat.c
4c2ad1
+++ b/gdb/s390-linux-nat.c
4c2ad1
@@ -121,7 +121,7 @@ public:
4c2ad1
     override;
4c2ad1
   int remove_hw_breakpoint (struct gdbarch *, struct bp_target_info *)
4c2ad1
     override;
4c2ad1
-  int region_ok_for_hw_watchpoint (CORE_ADDR, int) override;
4c2ad1
+  int region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST) override;
4c2ad1
   bool have_continuable_watchpoint () override { return true; }
4c2ad1
   bool stopped_by_watchpoint () override;
4c2ad1
   int insert_watchpoint (CORE_ADDR, int, enum target_hw_bp_type,
4c2ad1
diff --git a/gdb/target-delegates.c b/gdb/target-delegates.c
4c2ad1
--- a/gdb/target-delegates.c
4c2ad1
+++ b/gdb/target-delegates.c
4c2ad1
@@ -38,9 +38,9 @@ struct dummy_target : public target_ops
4c2ad1
   int have_steppable_watchpoint () override;
4c2ad1
   bool have_continuable_watchpoint () override;
4c2ad1
   bool stopped_data_address (CORE_ADDR *arg0) override;
4c2ad1
-  bool watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, int arg2) override;
4c2ad1
+  bool watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, LONGEST arg2) override;
4c2ad1
   int region_ok_for_hw_watchpoint (CORE_ADDR arg0, LONGEST arg1) override;
4c2ad1
-  bool can_accel_watchpoint_condition (CORE_ADDR arg0, int arg1, int arg2, struct expression *arg3) override;
4c2ad1
+  bool can_accel_watchpoint_condition (CORE_ADDR arg0, LONGEST arg1, int arg2, struct expression *arg3) override;
4c2ad1
   int masked_watch_num_registers (CORE_ADDR arg0, CORE_ADDR arg1) override;
4c2ad1
   int can_do_single_step () override;
4c2ad1
   bool supports_terminal_ours () override;
4c2ad1
@@ -206,9 +206,9 @@ struct debug_target : public target_ops
4c2ad1
   int have_steppable_watchpoint () override;
4c2ad1
   bool have_continuable_watchpoint () override;
4c2ad1
   bool stopped_data_address (CORE_ADDR *arg0) override;
4c2ad1
-  bool watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, int arg2) override;
4c2ad1
+  bool watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, LONGEST arg2) override;
4c2ad1
   int region_ok_for_hw_watchpoint (CORE_ADDR arg0, LONGEST arg1) override;
4c2ad1
-  bool can_accel_watchpoint_condition (CORE_ADDR arg0, int arg1, int arg2, struct expression *arg3) override;
4c2ad1
+  bool can_accel_watchpoint_condition (CORE_ADDR arg0, LONGEST arg1, int arg2, struct expression *arg3) override;
4c2ad1
   int masked_watch_num_registers (CORE_ADDR arg0, CORE_ADDR arg1) override;
4c2ad1
   int can_do_single_step () override;
4c2ad1
   bool supports_terminal_ours () override;
4c2ad1
@@ -1068,19 +1068,19 @@ debug_target::stopped_data_address (CORE_ADDR *arg0)
4c2ad1
 }
4c2ad1
 
4c2ad1
 bool
4c2ad1
-target_ops::watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, int arg2)
4c2ad1
+target_ops::watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, LONGEST arg2)
4c2ad1
 {
4c2ad1
   return this->beneath ()->watchpoint_addr_within_range (arg0, arg1, arg2);
4c2ad1
 }
4c2ad1
 
4c2ad1
 bool
4c2ad1
-dummy_target::watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, int arg2)
4c2ad1
+dummy_target::watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, LONGEST arg2)
4c2ad1
 {
4c2ad1
   return default_watchpoint_addr_within_range (this, arg0, arg1, arg2);
4c2ad1
 }
4c2ad1
 
4c2ad1
 bool
4c2ad1
-debug_target::watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, int arg2)
4c2ad1
+debug_target::watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, LONGEST arg2)
4c2ad1
 {
4c2ad1
   bool result;
4c2ad1
   fprintf_unfiltered (gdb_stdlog, "-> %s->watchpoint_addr_within_range (...)\n", this->beneath ()->shortname ());
4c2ad1
@@ -1090,7 +1090,7 @@ debug_target::watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, int
4c2ad1
   fputs_unfiltered (", ", gdb_stdlog);
4c2ad1
   target_debug_print_CORE_ADDR (arg1);
4c2ad1
   fputs_unfiltered (", ", gdb_stdlog);
4c2ad1
-  target_debug_print_int (arg2);
4c2ad1
+  target_debug_print_LONGEST (arg2);
4c2ad1
   fputs_unfiltered (") = ", gdb_stdlog);
4c2ad1
   target_debug_print_bool (result);
4c2ad1
   fputs_unfiltered ("\n", gdb_stdlog);
4c2ad1
@@ -1126,19 +1126,19 @@ debug_target::region_ok_for_hw_watchpoint (CORE_ADDR arg0, LONGEST arg1)
4c2ad1
 }
4c2ad1
 
4c2ad1
 bool
4c2ad1
-target_ops::can_accel_watchpoint_condition (CORE_ADDR arg0, int arg1, int arg2, struct expression *arg3)
4c2ad1
+target_ops::can_accel_watchpoint_condition (CORE_ADDR arg0, LONGEST arg1, int arg2, struct expression *arg3)
4c2ad1
 {
4c2ad1
   return this->beneath ()->can_accel_watchpoint_condition (arg0, arg1, arg2, arg3);
4c2ad1
 }
4c2ad1
 
4c2ad1
 bool
4c2ad1
-dummy_target::can_accel_watchpoint_condition (CORE_ADDR arg0, int arg1, int arg2, struct expression *arg3)
4c2ad1
+dummy_target::can_accel_watchpoint_condition (CORE_ADDR arg0, LONGEST arg1, int arg2, struct expression *arg3)
4c2ad1
 {
4c2ad1
   return false;
4c2ad1
 }
4c2ad1
 
4c2ad1
 bool
4c2ad1
-debug_target::can_accel_watchpoint_condition (CORE_ADDR arg0, int arg1, int arg2, struct expression *arg3)
4c2ad1
+debug_target::can_accel_watchpoint_condition (CORE_ADDR arg0, LONGEST arg1, int arg2, struct expression *arg3)
4c2ad1
 {
4c2ad1
   bool result;
4c2ad1
   fprintf_unfiltered (gdb_stdlog, "-> %s->can_accel_watchpoint_condition (...)\n", this->beneath ()->shortname ());
4c2ad1
@@ -1146,7 +1146,7 @@ debug_target::can_accel_watchpoint_condition (CORE_ADDR arg0, int arg1, int arg2
4c2ad1
   fprintf_unfiltered (gdb_stdlog, "<- %s->can_accel_watchpoint_condition (", this->beneath ()->shortname ());
4c2ad1
   target_debug_print_CORE_ADDR (arg0);
4c2ad1
   fputs_unfiltered (", ", gdb_stdlog);
4c2ad1
-  target_debug_print_int (arg1);
4c2ad1
+  target_debug_print_LONGEST (arg1);
4c2ad1
   fputs_unfiltered (", ", gdb_stdlog);
4c2ad1
   target_debug_print_int (arg2);
4c2ad1
   fputs_unfiltered (", ", gdb_stdlog);
4c2ad1
diff --git a/gdb/target.c b/gdb/target.c
4c2ad1
--- a/gdb/target.c
4c2ad1
+++ b/gdb/target.c
4c2ad1
@@ -56,7 +56,7 @@ static void generic_tls_error (void) ATTRIBUTE_NORETURN;
4c2ad1
 static void default_terminal_info (struct target_ops *, const char *, int);
4c2ad1
 
4c2ad1
 static int default_watchpoint_addr_within_range (struct target_ops *,
4c2ad1
-						 CORE_ADDR, CORE_ADDR, int);
4c2ad1
+						 CORE_ADDR, CORE_ADDR, LONGEST);
4c2ad1
 
4c2ad1
 static int default_region_ok_for_hw_watchpoint (struct target_ops *,
4c2ad1
 						CORE_ADDR, LONGEST);
4c2ad1
@@ -3189,7 +3189,7 @@ default_region_ok_for_hw_watchpoint (struct target_ops *self,
4c2ad1
 static int
4c2ad1
 default_watchpoint_addr_within_range (struct target_ops *target,
4c2ad1
 				      CORE_ADDR addr,
4c2ad1
-				      CORE_ADDR start, int length)
4c2ad1
+				      CORE_ADDR start, LONGEST length)
4c2ad1
 {
4c2ad1
   return addr >= start && addr < start + length;
4c2ad1
 }
4c2ad1
diff --git a/gdb/target.h b/gdb/target.h
4c2ad1
--- a/gdb/target.h
4c2ad1
+++ b/gdb/target.h
4c2ad1
@@ -557,7 +557,7 @@ struct target_ops
4c2ad1
       TARGET_DEFAULT_RETURN (false);
4c2ad1
     virtual bool stopped_data_address (CORE_ADDR *)
4c2ad1
       TARGET_DEFAULT_RETURN (false);
4c2ad1
-    virtual bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, int)
4c2ad1
+    virtual bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, LONGEST)
4c2ad1
       TARGET_DEFAULT_FUNC (default_watchpoint_addr_within_range);
4c2ad1
 
4c2ad1
     /* Documentation of this routine is provided with the corresponding
4c2ad1
@@ -565,7 +565,7 @@ struct target_ops
4c2ad1
     virtual int region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST)
4c2ad1
       TARGET_DEFAULT_FUNC (default_region_ok_for_hw_watchpoint);
4c2ad1
 
4c2ad1
-    virtual bool can_accel_watchpoint_condition (CORE_ADDR, int, int,
4c2ad1
+    virtual bool can_accel_watchpoint_condition (CORE_ADDR, LONGEST, int,
4c2ad1
 						 struct expression *)
4c2ad1
       TARGET_DEFAULT_RETURN (false);
4c2ad1
     virtual int masked_watch_num_registers (CORE_ADDR, CORE_ADDR)