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