2017-12-10 22:00:49 +00:00
|
|
|
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
|
2017-12-04 19:24:00 +00:00
|
|
|
From: Fedora GDB patches <invalid@email.com>
|
|
|
|
Date: Fri, 27 Oct 2017 21:07:50 +0200
|
2017-12-08 04:31:26 +00:00
|
|
|
Subject: Expand watchpoint lengths to LONGEST
|
2012-11-09 18:03:10 +00:00
|
|
|
|
2017-12-04 19:24:00 +00:00
|
|
|
FileName: gdb-rhbz795424-bitpos-22of25.patch
|
|
|
|
|
2017-12-08 04:31:26 +00:00
|
|
|
;; Fix `GDB cannot access struct member whose offset is larger than 256MB'
|
|
|
|
;; (RH BZ 795424).
|
|
|
|
;;=push
|
2017-12-04 19:24:00 +00:00
|
|
|
|
2017-12-08 04:31:26 +00:00
|
|
|
http://sourceware.org/ml/gdb-patches/2012-09/msg00629.html
|
2012-11-09 18:03:10 +00:00
|
|
|
|
|
|
|
--MP_/6HRlH6vpyqtSy4CYyMrX6b2
|
|
|
|
Content-Type: text/plain; charset=US-ASCII
|
|
|
|
Content-Transfer-Encoding: 7bit
|
|
|
|
Content-Disposition: inline
|
|
|
|
|
|
|
|
Hi,
|
|
|
|
|
|
|
|
This is part three of the bitpos expansion change. Some architectures
|
|
|
|
allow arbitrary length watchpoints and combined with the fact that type
|
|
|
|
lengths could be large enough, we need LONGEST for watchpoint lengths.
|
|
|
|
It is architecture dependent however, whether the LONGEST is needed or
|
|
|
|
not. This patch updates the signatures of watchpoint insertion and
|
|
|
|
removal functions of all architectures (to comply with the function
|
|
|
|
signatures in the callback struct), but expands types only in
|
|
|
|
architectures that need it. Tested on Fedora 16 x86_64.
|
|
|
|
|
|
|
|
Regards,
|
|
|
|
Siddhesh
|
|
|
|
--MP_/6HRlH6vpyqtSy4CYyMrX6b2
|
|
|
|
Content-Type: text/plain
|
|
|
|
Content-Transfer-Encoding: quoted-printable
|
|
|
|
Content-Disposition: attachment; filename=ChangeLog-wp
|
|
|
|
|
|
|
|
gdb/ChangeLog:
|
|
|
|
|
|
|
|
* arm-linux-nat.c (arm_linux_insert_watchpoint): Expand
|
|
|
|
parameter LEN to LONGEST.
|
|
|
|
(arm_linux_remove_watchpoint): Likewise.
|
|
|
|
(arm_linux_watchpoint_addr_within_range): Expand parameter
|
|
|
|
LENGTH to LONGEST.
|
|
|
|
* i386-nat.c (i386_insert_watchpoint): Expand parameter LEN to
|
|
|
|
LONGEST.
|
|
|
|
(i386_remove_watchpoint): Likewise.
|
|
|
|
* ia64-linux-nat.c (ia64_linux_insert_watchpoint): Likewise.
|
|
|
|
(ia64_linux_remove_watchpoint): Likewise.
|
|
|
|
* inf-ttrace.c (inf_ttrace_insert_watchpoint): Likewise.
|
|
|
|
Expand NUM_PAGES, PAGE to LONGEST.
|
|
|
|
(inf_ttrace_remove_watchpoint): Likewise.
|
|
|
|
* mips-linux-nat.c (mips_linux_insert_watchpoint): Expand
|
|
|
|
parameter LEN to LONGEST.
|
|
|
|
(mips_linux_remove_watchpoint): Likewise.
|
|
|
|
* nto-procfs.c (procfs_remove_hw_watchpoint): Likewise.
|
|
|
|
(procfs_insert_hw_watchpoint): Likewise.
|
|
|
|
* ppc-linux-nat.c (calculate_dvc): Likewise. Expand I,
|
|
|
|
NUM_BYTE_ENABLE to LONGEST.
|
|
|
|
(check_condition): Expand parameter LEN to point to LONGEST.
|
|
|
|
(ppc_linux_can_accel_watchpoint_condition): Expand parameter
|
|
|
|
LEN to LONGEST.
|
|
|
|
(create_watchpoint_request): Likewise.
|
|
|
|
(ppc_linux_insert_watchpoint): Likewise.
|
|
|
|
(ppc_linux_remove_watchpoint): Likewise.
|
|
|
|
(ppc_linux_watchpoint_addr_within_range): Expand parameter
|
|
|
|
LENGTH to LONGEST.
|
|
|
|
* procfs.c (proc_set_watchpoint): Expand parameter LEN to
|
|
|
|
LONGEST.
|
|
|
|
(procfs_set_watchpoint): Likewise.
|
|
|
|
(procfs_insert_watchpoint): Likewise.
|
|
|
|
(procfs_remove_watchpoint): Likewise.
|
|
|
|
* remote-m32r-sdi.c (m32r_insert_watchpoint): Likewise. Use
|
|
|
|
plongest to format print LEN.
|
|
|
|
(m32r_remove_watchpoint): Likewise.
|
|
|
|
* remote-mips.c (mips_insert_watchpoint): Expand parameter LEN
|
|
|
|
to LONGEST.
|
|
|
|
(mips_remove_watchpoint): Likewise.
|
|
|
|
* remote.c (remote_insert_watchpoint): Likewise.
|
|
|
|
Use phex_nz to format print LEN.
|
|
|
|
(remote_remove_watchpoint): Likewise.
|
|
|
|
(remote_watchpoint_addr_within_range): Expand parameter LENGTH
|
|
|
|
to LONGEST.
|
2014-02-07 18:38:14 +00:00
|
|
|
* s390-linux-nat.c (s390_insert_watchpoint): Expand parameter LEN to
|
2012-11-09 18:03:10 +00:00
|
|
|
LONGEST.
|
|
|
|
(s390_remove_watchpoint): Likewise.
|
|
|
|
* target.c (update_current_target): Expand parameter LEN for
|
|
|
|
callbacks to TO_INSERT_WATCHPOINT, TO_REMOVE_WATCHPOINT,
|
|
|
|
TO_CAN_ACCEL_WATCHPOINT_CONDITION, to LONGEST.
|
|
|
|
(default_watchpoint_addr_within_range): Expand parameter
|
|
|
|
LENGTH to LONGEST.
|
|
|
|
(debug_to_can_accel_watchpoint_condition): Expand parameter LEN
|
|
|
|
to LONGEST. Use plongest to format print LEN.
|
|
|
|
(debug_to_watchpoint_addr_within_range): Expand parameter LENGTH
|
|
|
|
to LONGEST. Use plongest to format print LENGTH.
|
|
|
|
(debug_to_insert_watchpoint): Expand parameter LEN to LONGEST.
|
|
|
|
Use plongest to format print LEN.
|
|
|
|
(debug_to_remove_watchpoint): Likewise.
|
|
|
|
* target.h (struct target_ops): Expand parameter LEN of
|
|
|
|
TO_REMOVE_WATCHPOINT, TO_INSERT_WATCHPOINT,
|
|
|
|
TO_WATCHPOINT_ADDR_WITHIN_RANGE and
|
|
|
|
TO_CAN_ACCEL_WATCHPOINT_CONDITION to LONGEST.
|
|
|
|
|
|
|
|
--MP_/6HRlH6vpyqtSy4CYyMrX6b2
|
|
|
|
Content-Type: text/x-patch
|
|
|
|
Content-Transfer-Encoding: 7bit
|
|
|
|
Content-Disposition: attachment; filename=bitpos-wp.patch
|
2017-12-08 04:31:26 +00:00
|
|
|
---
|
|
|
|
gdb/aarch64-linux-nat.c | 2 +-
|
|
|
|
gdb/arm-linux-nat.c | 2 +-
|
|
|
|
gdb/nat/aarch64-linux-hw-point.c | 21 +++++++++++----------
|
|
|
|
gdb/nat/aarch64-linux-hw-point.h | 4 ++--
|
|
|
|
gdb/ppc-linux-nat.c | 14 +++++++-------
|
|
|
|
gdb/procfs.c | 4 ++--
|
|
|
|
gdb/remote.c | 6 +++---
|
|
|
|
gdb/target-delegates.c | 14 +++++++-------
|
|
|
|
gdb/target.c | 4 ++--
|
|
|
|
gdb/target.h | 4 ++--
|
|
|
|
10 files changed, 38 insertions(+), 37 deletions(-)
|
2012-11-09 18:03:10 +00:00
|
|
|
|
2018-05-17 18:52:53 +00:00
|
|
|
diff --git a/gdb/aarch64-linux-nat.c b/gdb/aarch64-linux-nat.c
|
|
|
|
index 08e6f4d4fd..f08bf039e4 100644
|
|
|
|
--- a/gdb/aarch64-linux-nat.c
|
|
|
|
+++ b/gdb/aarch64-linux-nat.c
|
|
|
|
@@ -767,7 +767,7 @@ aarch64_linux_stopped_by_watchpoint (struct target_ops *ops)
|
2017-12-08 04:31:26 +00:00
|
|
|
static int
|
|
|
|
aarch64_linux_watchpoint_addr_within_range (struct target_ops *target,
|
|
|
|
CORE_ADDR addr,
|
|
|
|
- CORE_ADDR start, int length)
|
|
|
|
+ CORE_ADDR start, LONGEST length)
|
|
|
|
{
|
|
|
|
return start <= addr && start + length - 1 >= addr;
|
|
|
|
}
|
2018-05-17 18:52:53 +00:00
|
|
|
diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c
|
|
|
|
index 3b7aa40db8..48dfe22ce1 100644
|
|
|
|
--- a/gdb/arm-linux-nat.c
|
|
|
|
+++ b/gdb/arm-linux-nat.c
|
|
|
|
@@ -1177,7 +1177,7 @@ arm_linux_stopped_by_watchpoint (struct target_ops *ops)
|
2012-11-09 18:03:10 +00:00
|
|
|
static int
|
|
|
|
arm_linux_watchpoint_addr_within_range (struct target_ops *target,
|
|
|
|
CORE_ADDR addr,
|
|
|
|
- CORE_ADDR start, int length)
|
|
|
|
+ CORE_ADDR start, LONGEST length)
|
|
|
|
{
|
|
|
|
return start <= addr && start + length - 1 >= addr;
|
|
|
|
}
|
2018-05-17 18:52:53 +00:00
|
|
|
diff --git a/gdb/nat/aarch64-linux-hw-point.c b/gdb/nat/aarch64-linux-hw-point.c
|
|
|
|
index ce26f28fad..e9ebc5fba8 100644
|
|
|
|
--- a/gdb/nat/aarch64-linux-hw-point.c
|
|
|
|
+++ b/gdb/nat/aarch64-linux-hw-point.c
|
|
|
|
@@ -111,7 +111,7 @@ aarch64_point_encode_ctrl_reg (enum target_hw_bp_type type, int len)
|
2017-12-08 04:31:26 +00:00
|
|
|
Return 0 for any non-compliant ADDR and/or LEN; return 1 otherwise. */
|
|
|
|
|
|
|
|
static int
|
|
|
|
-aarch64_point_is_aligned (int is_watchpoint, CORE_ADDR addr, int len)
|
|
|
|
+aarch64_point_is_aligned (int is_watchpoint, CORE_ADDR addr, LONGEST len)
|
|
|
|
{
|
|
|
|
unsigned int alignment = 0;
|
|
|
|
|
2018-05-17 18:52:53 +00:00
|
|
|
@@ -180,9 +180,10 @@ aarch64_point_is_aligned (int is_watchpoint, CORE_ADDR addr, int len)
|
|
|
|
limitations can be largely relaxed with some further work. */
|
2017-12-08 04:31:26 +00:00
|
|
|
|
|
|
|
static void
|
|
|
|
-aarch64_align_watchpoint (CORE_ADDR addr, int len, CORE_ADDR *aligned_addr_p,
|
2018-05-17 18:52:53 +00:00
|
|
|
+aarch64_align_watchpoint (CORE_ADDR addr, LONGEST len,
|
|
|
|
+ CORE_ADDR *aligned_addr_p,
|
|
|
|
int *aligned_len_p, CORE_ADDR *next_addr_p,
|
|
|
|
- int *next_len_p)
|
|
|
|
+ LONGEST *next_len_p)
|
2017-12-08 04:31:26 +00:00
|
|
|
{
|
|
|
|
int aligned_len;
|
2018-05-17 18:52:53 +00:00
|
|
|
unsigned int offset;
|
|
|
|
@@ -501,7 +502,7 @@ aarch64_handle_aligned_watchpoint (enum target_hw_bp_type type,
|
2017-12-08 04:31:26 +00:00
|
|
|
|
|
|
|
static int
|
|
|
|
aarch64_handle_unaligned_watchpoint (enum target_hw_bp_type type,
|
|
|
|
- CORE_ADDR addr, int len, int is_insert,
|
|
|
|
+ CORE_ADDR addr, LONGEST len, int is_insert,
|
|
|
|
struct aarch64_debug_reg_state *state)
|
|
|
|
{
|
2018-05-17 18:52:53 +00:00
|
|
|
while (len > 0)
|
|
|
|
@@ -524,9 +525,9 @@ aarch64_handle_unaligned_watchpoint (enum target_hw_bp_type type,
|
|
|
|
" "
|
|
|
|
"aligned_addr: %s, aligned_len: %d\n"
|
2017-12-08 04:31:26 +00:00
|
|
|
" "
|
2018-05-17 18:52:53 +00:00
|
|
|
- "next_addr: %s, next_len: %d\n",
|
|
|
|
+ "next_addr: %s, next_len: %s\n",
|
2017-12-08 04:31:26 +00:00
|
|
|
is_insert, core_addr_to_string_nz (aligned_addr),
|
2018-05-17 18:52:53 +00:00
|
|
|
- aligned_len, core_addr_to_string_nz (addr), len);
|
|
|
|
+ aligned_len, core_addr_to_string_nz (addr), plongest (len));
|
2017-12-08 04:31:26 +00:00
|
|
|
|
2018-05-17 18:52:53 +00:00
|
|
|
if (ret != 0)
|
|
|
|
return ret;
|
|
|
|
@@ -537,7 +538,7 @@ aarch64_handle_unaligned_watchpoint (enum target_hw_bp_type type,
|
2017-12-08 04:31:26 +00:00
|
|
|
|
|
|
|
int
|
|
|
|
aarch64_handle_watchpoint (enum target_hw_bp_type type, CORE_ADDR addr,
|
|
|
|
- int len, int is_insert,
|
|
|
|
+ LONGEST len, int is_insert,
|
|
|
|
struct aarch64_debug_reg_state *state)
|
|
|
|
{
|
|
|
|
if (aarch64_point_is_aligned (1 /* is_watchpoint */ , addr, len))
|
2018-05-17 18:52:53 +00:00
|
|
|
@@ -588,14 +589,14 @@ aarch64_linux_set_debug_regs (const struct aarch64_debug_reg_state *state,
|
2017-12-08 04:31:26 +00:00
|
|
|
void
|
|
|
|
aarch64_show_debug_reg_state (struct aarch64_debug_reg_state *state,
|
|
|
|
const char *func, CORE_ADDR addr,
|
|
|
|
- int len, enum target_hw_bp_type type)
|
|
|
|
+ LONGEST len, enum target_hw_bp_type type)
|
|
|
|
{
|
|
|
|
int i;
|
|
|
|
|
|
|
|
debug_printf ("%s", func);
|
|
|
|
if (addr || len)
|
|
|
|
- debug_printf (" (addr=0x%08lx, len=%d, type=%s)",
|
|
|
|
- (unsigned long) addr, len,
|
|
|
|
+ debug_printf (" (addr=0x%08lx, len=%s, type=%s)",
|
|
|
|
+ (unsigned long) addr, plongest (len),
|
|
|
|
type == hw_write ? "hw-write-watchpoint"
|
|
|
|
: (type == hw_read ? "hw-read-watchpoint"
|
|
|
|
: (type == hw_access ? "hw-access-watchpoint"
|
2018-05-17 18:52:53 +00:00
|
|
|
diff --git a/gdb/nat/aarch64-linux-hw-point.h b/gdb/nat/aarch64-linux-hw-point.h
|
|
|
|
index 7c42b96d1b..e1d4fc8dbc 100644
|
|
|
|
--- a/gdb/nat/aarch64-linux-hw-point.h
|
|
|
|
+++ b/gdb/nat/aarch64-linux-hw-point.h
|
|
|
|
@@ -172,7 +172,7 @@ int aarch64_handle_breakpoint (enum target_hw_bp_type type, CORE_ADDR addr,
|
2017-12-08 04:31:26 +00:00
|
|
|
int len, int is_insert,
|
|
|
|
struct aarch64_debug_reg_state *state);
|
|
|
|
int aarch64_handle_watchpoint (enum target_hw_bp_type type, CORE_ADDR addr,
|
|
|
|
- int len, int is_insert,
|
|
|
|
+ LONGEST len, int is_insert,
|
|
|
|
struct aarch64_debug_reg_state *state);
|
|
|
|
|
2018-05-17 18:52:53 +00:00
|
|
|
void aarch64_linux_set_debug_regs (const struct aarch64_debug_reg_state *state,
|
|
|
|
@@ -180,7 +180,7 @@ void aarch64_linux_set_debug_regs (const struct aarch64_debug_reg_state *state,
|
2017-12-08 04:31:26 +00:00
|
|
|
|
|
|
|
void aarch64_show_debug_reg_state (struct aarch64_debug_reg_state *state,
|
|
|
|
const char *func, CORE_ADDR addr,
|
|
|
|
- int len, enum target_hw_bp_type type);
|
|
|
|
+ LONGEST len, enum target_hw_bp_type type);
|
|
|
|
|
|
|
|
void aarch64_linux_get_debug_reg_capacity (int tid);
|
|
|
|
|
2018-05-17 18:52:53 +00:00
|
|
|
diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c
|
|
|
|
index 4a82434c0d..49a27d8daa 100644
|
|
|
|
--- a/gdb/ppc-linux-nat.c
|
|
|
|
+++ b/gdb/ppc-linux-nat.c
|
|
|
|
@@ -1798,11 +1798,11 @@ can_use_watchpoint_cond_accel (void)
|
2012-11-09 18:03:10 +00:00
|
|
|
CONDITION_VALUE will hold the value which should be put in the
|
|
|
|
DVC register. */
|
|
|
|
static void
|
|
|
|
-calculate_dvc (CORE_ADDR addr, int len, CORE_ADDR data_value,
|
|
|
|
+calculate_dvc (CORE_ADDR addr, LONGEST len, CORE_ADDR data_value,
|
|
|
|
uint32_t *condition_mode, uint64_t *condition_value)
|
|
|
|
{
|
|
|
|
- int i, num_byte_enable, align_offset, num_bytes_off_dvc,
|
|
|
|
- rightmost_enabled_byte;
|
|
|
|
+ LONGEST i, num_byte_enable;
|
|
|
|
+ int align_offset, num_bytes_off_dvc, rightmost_enabled_byte;
|
|
|
|
CORE_ADDR addr_end_data, addr_end_dvc;
|
|
|
|
|
|
|
|
/* The DVC register compares bytes within fixed-length windows which
|
2018-05-17 18:52:53 +00:00
|
|
|
@@ -1889,7 +1889,7 @@ num_memory_accesses (struct value *v)
|
2012-11-09 18:03:10 +00:00
|
|
|
of the constant. */
|
|
|
|
static int
|
|
|
|
check_condition (CORE_ADDR watch_addr, struct expression *cond,
|
|
|
|
- CORE_ADDR *data_value, int *len)
|
|
|
|
+ CORE_ADDR *data_value, LONGEST *len)
|
|
|
|
{
|
|
|
|
int pc = 1, num_accesses_left, num_accesses_right;
|
|
|
|
struct value *left_val, *right_val, *left_chain, *right_chain;
|
2018-05-17 18:52:53 +00:00
|
|
|
@@ -1957,7 +1957,7 @@ check_condition (CORE_ADDR watch_addr, struct expression *cond,
|
2014-08-02 10:58:20 +00:00
|
|
|
true. */
|
|
|
|
static int
|
|
|
|
ppc_linux_can_accel_watchpoint_condition (struct target_ops *self,
|
|
|
|
- CORE_ADDR addr, int len, int rw,
|
|
|
|
+ CORE_ADDR addr, LONGEST len, int rw,
|
|
|
|
struct expression *cond)
|
|
|
|
{
|
|
|
|
CORE_ADDR data_value;
|
2018-05-17 18:52:53 +00:00
|
|
|
@@ -1974,7 +1974,7 @@ ppc_linux_can_accel_watchpoint_condition (struct target_ops *self,
|
2012-11-09 18:03:10 +00:00
|
|
|
|
|
|
|
static void
|
|
|
|
create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr,
|
2015-11-03 21:28:36 +00:00
|
|
|
- int len, enum target_hw_bp_type type,
|
|
|
|
+ LONGEST len, enum target_hw_bp_type type,
|
|
|
|
struct expression *cond, int insert)
|
2012-11-09 18:03:10 +00:00
|
|
|
{
|
|
|
|
if (len == 1
|
2018-05-17 18:52:53 +00:00
|
|
|
@@ -2240,7 +2240,7 @@ ppc_linux_stopped_by_watchpoint (struct target_ops *ops)
|
2012-11-09 18:03:10 +00:00
|
|
|
static int
|
|
|
|
ppc_linux_watchpoint_addr_within_range (struct target_ops *target,
|
|
|
|
CORE_ADDR addr,
|
|
|
|
- CORE_ADDR start, int length)
|
|
|
|
+ CORE_ADDR start, LONGEST length)
|
|
|
|
{
|
|
|
|
int mask;
|
|
|
|
|
2018-05-17 18:52:53 +00:00
|
|
|
diff --git a/gdb/procfs.c b/gdb/procfs.c
|
|
|
|
index 887f1201fe..edd1be632a 100644
|
|
|
|
--- a/gdb/procfs.c
|
|
|
|
+++ b/gdb/procfs.c
|
|
|
|
@@ -1563,7 +1563,7 @@ procfs_address_to_host_pointer (CORE_ADDR addr)
|
2017-12-08 04:31:26 +00:00
|
|
|
}
|
2012-11-09 18:03:10 +00:00
|
|
|
|
|
|
|
static int
|
|
|
|
-proc_set_watchpoint (procinfo *pi, CORE_ADDR addr, int len, int wflags)
|
|
|
|
+proc_set_watchpoint (procinfo *pi, CORE_ADDR addr, LONGEST len, int wflags)
|
|
|
|
{
|
2017-12-08 04:31:26 +00:00
|
|
|
struct {
|
|
|
|
procfs_ctl_t cmd;
|
2018-05-17 18:52:53 +00:00
|
|
|
@@ -3250,7 +3250,7 @@ procfs_pid_to_str (struct target_ops *ops, ptid_t ptid)
|
2012-11-09 18:03:10 +00:00
|
|
|
/* Insert a watchpoint. */
|
|
|
|
|
|
|
|
static int
|
|
|
|
-procfs_set_watchpoint (ptid_t ptid, CORE_ADDR addr, int len, int rwflag,
|
|
|
|
+procfs_set_watchpoint (ptid_t ptid, CORE_ADDR addr, LONGEST len, int rwflag,
|
|
|
|
int after)
|
|
|
|
{
|
2017-12-08 04:31:26 +00:00
|
|
|
int pflags = 0;
|
2018-05-17 18:52:53 +00:00
|
|
|
diff --git a/gdb/remote.c b/gdb/remote.c
|
|
|
|
index 94d5594175..86777f1e5e 100644
|
|
|
|
--- a/gdb/remote.c
|
|
|
|
+++ b/gdb/remote.c
|
|
|
|
@@ -9897,7 +9897,7 @@ remote_insert_watchpoint (struct target_ops *self, CORE_ADDR addr, int len,
|
2012-11-09 18:03:10 +00:00
|
|
|
p = strchr (rs->buf, '\0');
|
|
|
|
addr = remote_address_masked (addr);
|
|
|
|
p += hexnumstr (p, (ULONGEST) addr);
|
|
|
|
- xsnprintf (p, endbuf - p, ",%x", len);
|
|
|
|
+ xsnprintf (p, endbuf - p, ",%s", phex_nz (len, sizeof (len)));
|
|
|
|
|
|
|
|
putpkt (rs->buf);
|
|
|
|
getpkt (&rs->buf, &rs->buf_size, 0);
|
2018-05-17 18:52:53 +00:00
|
|
|
@@ -9917,7 +9917,7 @@ remote_insert_watchpoint (struct target_ops *self, CORE_ADDR addr, int len,
|
2012-11-09 18:03:10 +00:00
|
|
|
|
|
|
|
static int
|
|
|
|
remote_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr,
|
|
|
|
- CORE_ADDR start, int length)
|
|
|
|
+ CORE_ADDR start, LONGEST length)
|
|
|
|
{
|
|
|
|
CORE_ADDR diff = remote_address_masked (addr - start);
|
|
|
|
|
2018-05-17 18:52:53 +00:00
|
|
|
@@ -9946,7 +9946,7 @@ remote_remove_watchpoint (struct target_ops *self, CORE_ADDR addr, int len,
|
2012-11-09 18:03:10 +00:00
|
|
|
p = strchr (rs->buf, '\0');
|
|
|
|
addr = remote_address_masked (addr);
|
|
|
|
p += hexnumstr (p, (ULONGEST) addr);
|
|
|
|
- xsnprintf (p, endbuf - p, ",%x", len);
|
|
|
|
+ xsnprintf (p, endbuf - p, ",%s", phex_nz (len, sizeof (len)));
|
|
|
|
putpkt (rs->buf);
|
|
|
|
getpkt (&rs->buf, &rs->buf_size, 0);
|
|
|
|
|
2018-05-17 18:52:53 +00:00
|
|
|
diff --git a/gdb/target-delegates.c b/gdb/target-delegates.c
|
|
|
|
index 2b449cbf01..f725215fff 100644
|
|
|
|
--- a/gdb/target-delegates.c
|
|
|
|
+++ b/gdb/target-delegates.c
|
|
|
|
@@ -733,14 +733,14 @@ debug_stopped_data_address (struct target_ops *self, CORE_ADDR *arg1)
|
2014-06-19 20:14:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static int
|
|
|
|
-delegate_watchpoint_addr_within_range (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, int arg3)
|
|
|
|
+delegate_watchpoint_addr_within_range (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, LONGEST arg3)
|
|
|
|
{
|
|
|
|
self = self->beneath;
|
|
|
|
return self->to_watchpoint_addr_within_range (self, arg1, arg2, arg3);
|
2015-01-08 20:53:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static int
|
|
|
|
-debug_watchpoint_addr_within_range (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, int arg3)
|
|
|
|
+debug_watchpoint_addr_within_range (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, LONGEST arg3)
|
|
|
|
{
|
|
|
|
int result;
|
|
|
|
fprintf_unfiltered (gdb_stdlog, "-> %s->to_watchpoint_addr_within_range (...)\n", debug_target.to_shortname);
|
2018-05-17 18:52:53 +00:00
|
|
|
@@ -752,7 +752,7 @@ debug_watchpoint_addr_within_range (struct target_ops *self, CORE_ADDR arg1, COR
|
2015-01-08 20:53:17 +00:00
|
|
|
fputs_unfiltered (", ", gdb_stdlog);
|
|
|
|
target_debug_print_CORE_ADDR (arg2);
|
|
|
|
fputs_unfiltered (", ", gdb_stdlog);
|
|
|
|
- target_debug_print_int (arg3);
|
|
|
|
+ target_debug_print_LONGEST (arg3);
|
|
|
|
fputs_unfiltered (") = ", gdb_stdlog);
|
|
|
|
target_debug_print_int (result);
|
|
|
|
fputs_unfiltered ("\n", gdb_stdlog);
|
2018-05-17 18:52:53 +00:00
|
|
|
@@ -785,20 +785,20 @@ debug_region_ok_for_hw_watchpoint (struct target_ops *self, CORE_ADDR arg1, LONG
|
2014-08-02 10:58:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static int
|
|
|
|
-delegate_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, int arg2, int arg3, struct expression *arg4)
|
|
|
|
+delegate_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, LONGEST arg2, int arg3, struct expression *arg4)
|
|
|
|
{
|
|
|
|
self = self->beneath;
|
|
|
|
return self->to_can_accel_watchpoint_condition (self, arg1, arg2, arg3, arg4);
|
|
|
|
}
|
|
|
|
|
|
|
|
static int
|
|
|
|
-tdefault_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, int arg2, int arg3, struct expression *arg4)
|
|
|
|
+tdefault_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, LONGEST arg2, int arg3, struct expression *arg4)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
2015-01-08 20:53:17 +00:00
|
|
|
|
|
|
|
static int
|
|
|
|
-debug_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, int arg2, int arg3, struct expression *arg4)
|
|
|
|
+debug_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, LONGEST arg2, int arg3, struct expression *arg4)
|
|
|
|
{
|
|
|
|
int result;
|
|
|
|
fprintf_unfiltered (gdb_stdlog, "-> %s->to_can_accel_watchpoint_condition (...)\n", debug_target.to_shortname);
|
2018-05-17 18:52:53 +00:00
|
|
|
@@ -808,7 +808,7 @@ debug_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, i
|
2015-01-08 20:53:17 +00:00
|
|
|
fputs_unfiltered (", ", gdb_stdlog);
|
|
|
|
target_debug_print_CORE_ADDR (arg1);
|
|
|
|
fputs_unfiltered (", ", gdb_stdlog);
|
|
|
|
- target_debug_print_int (arg2);
|
|
|
|
+ target_debug_print_LONGEST (arg2);
|
|
|
|
fputs_unfiltered (", ", gdb_stdlog);
|
|
|
|
target_debug_print_int (arg3);
|
|
|
|
fputs_unfiltered (", ", gdb_stdlog);
|
2018-05-17 18:52:53 +00:00
|
|
|
diff --git a/gdb/target.c b/gdb/target.c
|
|
|
|
index a1ac6d0697..eb0538cb82 100644
|
|
|
|
--- a/gdb/target.c
|
|
|
|
+++ b/gdb/target.c
|
|
|
|
@@ -53,7 +53,7 @@ static void generic_tls_error (void) ATTRIBUTE_NORETURN;
|
2017-12-08 04:31:26 +00:00
|
|
|
static void default_terminal_info (struct target_ops *, const char *, int);
|
2015-11-03 21:28:36 +00:00
|
|
|
|
2017-12-08 04:31:26 +00:00
|
|
|
static int default_watchpoint_addr_within_range (struct target_ops *,
|
|
|
|
- CORE_ADDR, CORE_ADDR, int);
|
|
|
|
+ CORE_ADDR, CORE_ADDR, LONGEST);
|
2015-11-03 21:28:36 +00:00
|
|
|
|
2017-12-08 04:31:26 +00:00
|
|
|
static int default_region_ok_for_hw_watchpoint (struct target_ops *,
|
|
|
|
CORE_ADDR, LONGEST);
|
2018-05-17 18:52:53 +00:00
|
|
|
@@ -3120,7 +3120,7 @@ default_region_ok_for_hw_watchpoint (struct target_ops *self,
|
2015-11-03 21:28:36 +00:00
|
|
|
static int
|
2017-12-08 04:31:26 +00:00
|
|
|
default_watchpoint_addr_within_range (struct target_ops *target,
|
|
|
|
CORE_ADDR addr,
|
|
|
|
- CORE_ADDR start, int length)
|
|
|
|
+ CORE_ADDR start, LONGEST length)
|
2015-11-03 21:28:36 +00:00
|
|
|
{
|
2017-12-08 04:31:26 +00:00
|
|
|
return addr >= start && addr < start + length;
|
|
|
|
}
|
2018-05-17 18:52:53 +00:00
|
|
|
diff --git a/gdb/target.h b/gdb/target.h
|
|
|
|
index 7a70c3f6da..35eee91a83 100644
|
|
|
|
--- a/gdb/target.h
|
|
|
|
+++ b/gdb/target.h
|
|
|
|
@@ -535,7 +535,7 @@ struct target_ops
|
2017-12-08 04:31:26 +00:00
|
|
|
int (*to_stopped_data_address) (struct target_ops *, CORE_ADDR *)
|
|
|
|
TARGET_DEFAULT_RETURN (0);
|
|
|
|
int (*to_watchpoint_addr_within_range) (struct target_ops *,
|
|
|
|
- CORE_ADDR, CORE_ADDR, int)
|
|
|
|
+ CORE_ADDR, CORE_ADDR, LONGEST)
|
|
|
|
TARGET_DEFAULT_FUNC (default_watchpoint_addr_within_range);
|
2015-11-08 09:38:42 +00:00
|
|
|
|
2017-12-08 04:31:26 +00:00
|
|
|
/* Documentation of this routine is provided with the corresponding
|
2018-05-17 18:52:53 +00:00
|
|
|
@@ -545,7 +545,7 @@ struct target_ops
|
2017-12-08 04:31:26 +00:00
|
|
|
TARGET_DEFAULT_FUNC (default_region_ok_for_hw_watchpoint);
|
2015-11-08 09:38:42 +00:00
|
|
|
|
2017-12-08 04:31:26 +00:00
|
|
|
int (*to_can_accel_watchpoint_condition) (struct target_ops *,
|
|
|
|
- CORE_ADDR, int, int,
|
|
|
|
+ CORE_ADDR, LONGEST, int,
|
|
|
|
struct expression *)
|
|
|
|
TARGET_DEFAULT_RETURN (0);
|
|
|
|
int (*to_masked_watch_num_registers) (struct target_ops *,
|
2018-05-17 18:52:53 +00:00
|
|
|
--
|
|
|
|
2.14.3
|
|
|
|
|