|
|
f9426a |
http://sourceware.org/ml/gdb-patches/2012-09/msg00629.html
|
|
|
f9426a |
Subject: [PATCH 3/4] Expand watchpoint lengths to LONGEST
|
|
|
f9426a |
|
|
|
f9426a |
|
|
|
f9426a |
--MP_/6HRlH6vpyqtSy4CYyMrX6b2
|
|
|
f9426a |
Content-Type: text/plain; charset=US-ASCII
|
|
|
f9426a |
Content-Transfer-Encoding: 7bit
|
|
|
f9426a |
Content-Disposition: inline
|
|
|
f9426a |
|
|
|
f9426a |
Hi,
|
|
|
f9426a |
|
|
|
f9426a |
This is part three of the bitpos expansion change. Some architectures
|
|
|
f9426a |
allow arbitrary length watchpoints and combined with the fact that type
|
|
|
f9426a |
lengths could be large enough, we need LONGEST for watchpoint lengths.
|
|
|
f9426a |
It is architecture dependent however, whether the LONGEST is needed or
|
|
|
f9426a |
not. This patch updates the signatures of watchpoint insertion and
|
|
|
f9426a |
removal functions of all architectures (to comply with the function
|
|
|
f9426a |
signatures in the callback struct), but expands types only in
|
|
|
f9426a |
architectures that need it. Tested on Fedora 16 x86_64.
|
|
|
f9426a |
|
|
|
f9426a |
Regards,
|
|
|
f9426a |
Siddhesh
|
|
|
f9426a |
--MP_/6HRlH6vpyqtSy4CYyMrX6b2
|
|
|
f9426a |
Content-Type: text/plain
|
|
|
f9426a |
Content-Transfer-Encoding: quoted-printable
|
|
|
f9426a |
Content-Disposition: attachment; filename=ChangeLog-wp
|
|
|
f9426a |
|
|
|
f9426a |
gdb/ChangeLog:
|
|
|
f9426a |
|
|
|
f9426a |
* arm-linux-nat.c (arm_linux_insert_watchpoint): Expand
|
|
|
f9426a |
parameter LEN to LONGEST.
|
|
|
f9426a |
(arm_linux_remove_watchpoint): Likewise.
|
|
|
f9426a |
(arm_linux_watchpoint_addr_within_range): Expand parameter
|
|
|
f9426a |
LENGTH to LONGEST.
|
|
|
f9426a |
* i386-nat.c (i386_insert_watchpoint): Expand parameter LEN to
|
|
|
f9426a |
LONGEST.
|
|
|
f9426a |
(i386_remove_watchpoint): Likewise.
|
|
|
f9426a |
* ia64-linux-nat.c (ia64_linux_insert_watchpoint): Likewise.
|
|
|
f9426a |
(ia64_linux_remove_watchpoint): Likewise.
|
|
|
f9426a |
* inf-ttrace.c (inf_ttrace_insert_watchpoint): Likewise.
|
|
|
f9426a |
Expand NUM_PAGES, PAGE to LONGEST.
|
|
|
f9426a |
(inf_ttrace_remove_watchpoint): Likewise.
|
|
|
f9426a |
* mips-linux-nat.c (mips_linux_insert_watchpoint): Expand
|
|
|
f9426a |
parameter LEN to LONGEST.
|
|
|
f9426a |
(mips_linux_remove_watchpoint): Likewise.
|
|
|
f9426a |
* nto-procfs.c (procfs_remove_hw_watchpoint): Likewise.
|
|
|
f9426a |
(procfs_insert_hw_watchpoint): Likewise.
|
|
|
f9426a |
* ppc-linux-nat.c (calculate_dvc): Likewise. Expand I,
|
|
|
f9426a |
NUM_BYTE_ENABLE to LONGEST.
|
|
|
f9426a |
(check_condition): Expand parameter LEN to point to LONGEST.
|
|
|
f9426a |
(ppc_linux_can_accel_watchpoint_condition): Expand parameter
|
|
|
f9426a |
LEN to LONGEST.
|
|
|
f9426a |
(create_watchpoint_request): Likewise.
|
|
|
f9426a |
(ppc_linux_insert_watchpoint): Likewise.
|
|
|
f9426a |
(ppc_linux_remove_watchpoint): Likewise.
|
|
|
f9426a |
(ppc_linux_watchpoint_addr_within_range): Expand parameter
|
|
|
f9426a |
LENGTH to LONGEST.
|
|
|
f9426a |
* procfs.c (proc_set_watchpoint): Expand parameter LEN to
|
|
|
f9426a |
LONGEST.
|
|
|
f9426a |
(procfs_set_watchpoint): Likewise.
|
|
|
f9426a |
(procfs_insert_watchpoint): Likewise.
|
|
|
f9426a |
(procfs_remove_watchpoint): Likewise.
|
|
|
f9426a |
* remote-m32r-sdi.c (m32r_insert_watchpoint): Likewise. Use
|
|
|
f9426a |
plongest to format print LEN.
|
|
|
f9426a |
(m32r_remove_watchpoint): Likewise.
|
|
|
f9426a |
* remote-mips.c (mips_insert_watchpoint): Expand parameter LEN
|
|
|
f9426a |
to LONGEST.
|
|
|
f9426a |
(mips_remove_watchpoint): Likewise.
|
|
|
f9426a |
* remote.c (remote_insert_watchpoint): Likewise.
|
|
|
f9426a |
Use phex_nz to format print LEN.
|
|
|
f9426a |
(remote_remove_watchpoint): Likewise.
|
|
|
f9426a |
(remote_watchpoint_addr_within_range): Expand parameter LENGTH
|
|
|
f9426a |
to LONGEST.
|
|
|
f9426a |
* s390-linux-nat.c (s390_insert_watchpoint): Expand parameter LEN to
|
|
|
f9426a |
LONGEST.
|
|
|
f9426a |
(s390_remove_watchpoint): Likewise.
|
|
|
f9426a |
* target.c (update_current_target): Expand parameter LEN for
|
|
|
f9426a |
callbacks to TO_INSERT_WATCHPOINT, TO_REMOVE_WATCHPOINT,
|
|
|
f9426a |
TO_CAN_ACCEL_WATCHPOINT_CONDITION, to LONGEST.
|
|
|
f9426a |
(default_watchpoint_addr_within_range): Expand parameter
|
|
|
f9426a |
LENGTH to LONGEST.
|
|
|
f9426a |
(debug_to_can_accel_watchpoint_condition): Expand parameter LEN
|
|
|
f9426a |
to LONGEST. Use plongest to format print LEN.
|
|
|
f9426a |
(debug_to_watchpoint_addr_within_range): Expand parameter LENGTH
|
|
|
f9426a |
to LONGEST. Use plongest to format print LENGTH.
|
|
|
f9426a |
(debug_to_insert_watchpoint): Expand parameter LEN to LONGEST.
|
|
|
f9426a |
Use plongest to format print LEN.
|
|
|
f9426a |
(debug_to_remove_watchpoint): Likewise.
|
|
|
f9426a |
* target.h (struct target_ops): Expand parameter LEN of
|
|
|
f9426a |
TO_REMOVE_WATCHPOINT, TO_INSERT_WATCHPOINT,
|
|
|
f9426a |
TO_WATCHPOINT_ADDR_WITHIN_RANGE and
|
|
|
f9426a |
TO_CAN_ACCEL_WATCHPOINT_CONDITION to LONGEST.
|
|
|
f9426a |
|
|
|
f9426a |
--MP_/6HRlH6vpyqtSy4CYyMrX6b2
|
|
|
f9426a |
Content-Type: text/x-patch
|
|
|
f9426a |
Content-Transfer-Encoding: 7bit
|
|
|
f9426a |
Content-Disposition: attachment; filename=bitpos-wp.patch
|
|
|
f9426a |
|
|
|
f9426a |
Index: gdb-7.8/gdb/arm-linux-nat.c
|
|
|
f9426a |
===================================================================
|
|
|
f9426a |
--- gdb-7.8.orig/gdb/arm-linux-nat.c 2014-08-01 23:27:30.183773676 +0200
|
|
|
f9426a |
+++ gdb-7.8/gdb/arm-linux-nat.c 2014-08-01 23:27:30.241773754 +0200
|
|
|
f9426a |
@@ -1296,7 +1296,7 @@ arm_linux_stopped_by_watchpoint (struct
|
|
|
f9426a |
static int
|
|
|
f9426a |
arm_linux_watchpoint_addr_within_range (struct target_ops *target,
|
|
|
f9426a |
CORE_ADDR addr,
|
|
|
f9426a |
- CORE_ADDR start, int length)
|
|
|
f9426a |
+ CORE_ADDR start, LONGEST length)
|
|
|
f9426a |
{
|
|
|
f9426a |
return start <= addr && start + length - 1 >= addr;
|
|
|
f9426a |
}
|
|
|
f9426a |
Index: gdb-7.8/gdb/ppc-linux-nat.c
|
|
|
f9426a |
===================================================================
|
|
|
f9426a |
--- gdb-7.8.orig/gdb/ppc-linux-nat.c 2014-08-01 23:27:30.202773701 +0200
|
|
|
f9426a |
+++ gdb-7.8/gdb/ppc-linux-nat.c 2014-08-01 23:29:38.311944925 +0200
|
|
|
f9426a |
@@ -1862,11 +1862,11 @@ can_use_watchpoint_cond_accel (void)
|
|
|
f9426a |
CONDITION_VALUE will hold the value which should be put in the
|
|
|
f9426a |
DVC register. */
|
|
|
f9426a |
static void
|
|
|
f9426a |
-calculate_dvc (CORE_ADDR addr, int len, CORE_ADDR data_value,
|
|
|
f9426a |
+calculate_dvc (CORE_ADDR addr, LONGEST len, CORE_ADDR data_value,
|
|
|
f9426a |
uint32_t *condition_mode, uint64_t *condition_value)
|
|
|
f9426a |
{
|
|
|
f9426a |
- int i, num_byte_enable, align_offset, num_bytes_off_dvc,
|
|
|
f9426a |
- rightmost_enabled_byte;
|
|
|
f9426a |
+ LONGEST i, num_byte_enable;
|
|
|
f9426a |
+ int align_offset, num_bytes_off_dvc, rightmost_enabled_byte;
|
|
|
f9426a |
CORE_ADDR addr_end_data, addr_end_dvc;
|
|
|
f9426a |
|
|
|
f9426a |
/* The DVC register compares bytes within fixed-length windows which
|
|
|
f9426a |
@@ -1953,7 +1953,7 @@ num_memory_accesses (struct value *v)
|
|
|
f9426a |
of the constant. */
|
|
|
f9426a |
static int
|
|
|
f9426a |
check_condition (CORE_ADDR watch_addr, struct expression *cond,
|
|
|
f9426a |
- CORE_ADDR *data_value, int *len)
|
|
|
f9426a |
+ CORE_ADDR *data_value, LONGEST *len)
|
|
|
f9426a |
{
|
|
|
f9426a |
int pc = 1, num_accesses_left, num_accesses_right;
|
|
|
f9426a |
struct value *left_val, *right_val, *left_chain, *right_chain;
|
|
|
f9426a |
@@ -2021,7 +2021,7 @@ check_condition (CORE_ADDR watch_addr, s
|
|
|
f9426a |
true. */
|
|
|
f9426a |
static int
|
|
|
f9426a |
ppc_linux_can_accel_watchpoint_condition (struct target_ops *self,
|
|
|
f9426a |
- CORE_ADDR addr, int len, int rw,
|
|
|
f9426a |
+ CORE_ADDR addr, LONGEST len, int rw,
|
|
|
f9426a |
struct expression *cond)
|
|
|
f9426a |
{
|
|
|
f9426a |
CORE_ADDR data_value;
|
|
|
f9426a |
@@ -2038,7 +2038,7 @@ ppc_linux_can_accel_watchpoint_condition
|
|
|
f9426a |
|
|
|
f9426a |
static void
|
|
|
f9426a |
create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr,
|
|
|
f9426a |
- int len, int rw, struct expression *cond,
|
|
|
f9426a |
+ LONGEST len, int rw, struct expression *cond,
|
|
|
f9426a |
int insert)
|
|
|
f9426a |
{
|
|
|
f9426a |
if (len == 1
|
|
|
f9426a |
@@ -2304,7 +2304,7 @@ ppc_linux_stopped_by_watchpoint (struct
|
|
|
f9426a |
static int
|
|
|
f9426a |
ppc_linux_watchpoint_addr_within_range (struct target_ops *target,
|
|
|
f9426a |
CORE_ADDR addr,
|
|
|
f9426a |
- CORE_ADDR start, int length)
|
|
|
f9426a |
+ CORE_ADDR start, LONGEST length)
|
|
|
f9426a |
{
|
|
|
f9426a |
int mask;
|
|
|
f9426a |
|
|
|
f9426a |
Index: gdb-7.8/gdb/procfs.c
|
|
|
f9426a |
===================================================================
|
|
|
f9426a |
--- gdb-7.8.orig/gdb/procfs.c 2014-08-01 23:27:30.203773703 +0200
|
|
|
f9426a |
+++ gdb-7.8/gdb/procfs.c 2014-08-01 23:27:30.243773756 +0200
|
|
|
f9426a |
@@ -2429,7 +2429,7 @@ procfs_address_to_host_pointer (CORE_ADD
|
|
|
f9426a |
#endif
|
|
|
f9426a |
|
|
|
f9426a |
static int
|
|
|
f9426a |
-proc_set_watchpoint (procinfo *pi, CORE_ADDR addr, int len, int wflags)
|
|
|
f9426a |
+proc_set_watchpoint (procinfo *pi, CORE_ADDR addr, LONGEST len, int wflags)
|
|
|
f9426a |
{
|
|
|
f9426a |
#if !defined (PCWATCH) && !defined (PIOCSWATCH)
|
|
|
f9426a |
/* If neither or these is defined, we can't support watchpoints.
|
|
|
f9426a |
@@ -4762,7 +4762,7 @@ procfs_pid_to_str (struct target_ops *op
|
|
|
f9426a |
/* Insert a watchpoint. */
|
|
|
f9426a |
|
|
|
f9426a |
static int
|
|
|
f9426a |
-procfs_set_watchpoint (ptid_t ptid, CORE_ADDR addr, int len, int rwflag,
|
|
|
f9426a |
+procfs_set_watchpoint (ptid_t ptid, CORE_ADDR addr, LONGEST len, int rwflag,
|
|
|
f9426a |
int after)
|
|
|
f9426a |
{
|
|
|
f9426a |
#ifndef AIX5
|
|
|
f9426a |
Index: gdb-7.8/gdb/remote.c
|
|
|
f9426a |
===================================================================
|
|
|
f9426a |
--- gdb-7.8.orig/gdb/remote.c 2014-08-01 23:27:30.205773705 +0200
|
|
|
f9426a |
+++ gdb-7.8/gdb/remote.c 2014-08-01 23:27:30.246773760 +0200
|
|
|
f9426a |
@@ -8206,7 +8206,7 @@ remote_insert_watchpoint (struct target_
|
|
|
f9426a |
p = strchr (rs->buf, '\0');
|
|
|
f9426a |
addr = remote_address_masked (addr);
|
|
|
f9426a |
p += hexnumstr (p, (ULONGEST) addr);
|
|
|
f9426a |
- xsnprintf (p, endbuf - p, ",%x", len);
|
|
|
f9426a |
+ xsnprintf (p, endbuf - p, ",%s", phex_nz (len, sizeof (len)));
|
|
|
f9426a |
|
|
|
f9426a |
putpkt (rs->buf);
|
|
|
f9426a |
getpkt (&rs->buf, &rs->buf_size, 0);
|
|
|
f9426a |
@@ -8226,7 +8226,7 @@ remote_insert_watchpoint (struct target_
|
|
|
f9426a |
|
|
|
f9426a |
static int
|
|
|
f9426a |
remote_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr,
|
|
|
f9426a |
- CORE_ADDR start, int length)
|
|
|
f9426a |
+ CORE_ADDR start, LONGEST length)
|
|
|
f9426a |
{
|
|
|
f9426a |
CORE_ADDR diff = remote_address_masked (addr - start);
|
|
|
f9426a |
|
|
|
f9426a |
@@ -8256,7 +8256,7 @@ remote_remove_watchpoint (struct target_
|
|
|
f9426a |
p = strchr (rs->buf, '\0');
|
|
|
f9426a |
addr = remote_address_masked (addr);
|
|
|
f9426a |
p += hexnumstr (p, (ULONGEST) addr);
|
|
|
f9426a |
- xsnprintf (p, endbuf - p, ",%x", len);
|
|
|
f9426a |
+ xsnprintf (p, endbuf - p, ",%s", phex_nz (len, sizeof (len)));
|
|
|
f9426a |
putpkt (rs->buf);
|
|
|
f9426a |
getpkt (&rs->buf, &rs->buf_size, 0);
|
|
|
f9426a |
|
|
|
f9426a |
Index: gdb-7.8/gdb/target.c
|
|
|
f9426a |
===================================================================
|
|
|
f9426a |
--- gdb-7.8.orig/gdb/target.c 2014-08-01 23:27:30.206773707 +0200
|
|
|
f9426a |
+++ gdb-7.8/gdb/target.c 2014-08-01 23:29:38.314944857 +0200
|
|
|
f9426a |
@@ -52,7 +52,7 @@ static void target_info (char *, int);
|
|
|
f9426a |
static void default_terminal_info (struct target_ops *, const char *, int);
|
|
|
f9426a |
|
|
|
f9426a |
static int default_watchpoint_addr_within_range (struct target_ops *,
|
|
|
f9426a |
- CORE_ADDR, CORE_ADDR, int);
|
|
|
f9426a |
+ CORE_ADDR, CORE_ADDR, LONGEST);
|
|
|
f9426a |
|
|
|
f9426a |
static int default_region_ok_for_hw_watchpoint (struct target_ops *,
|
|
|
f9426a |
CORE_ADDR, LONGEST);
|
|
|
f9426a |
@@ -150,13 +150,13 @@ static int debug_to_remove_watchpoint (s
|
|
|
f9426a |
static int debug_to_stopped_data_address (struct target_ops *, CORE_ADDR *);
|
|
|
f9426a |
|
|
|
f9426a |
static int debug_to_watchpoint_addr_within_range (struct target_ops *,
|
|
|
f9426a |
- CORE_ADDR, CORE_ADDR, int);
|
|
|
f9426a |
+ CORE_ADDR, CORE_ADDR, LONGEST);
|
|
|
f9426a |
|
|
|
f9426a |
static int debug_to_region_ok_for_hw_watchpoint (struct target_ops *self,
|
|
|
f9426a |
CORE_ADDR, LONGEST);
|
|
|
f9426a |
|
|
|
f9426a |
static int debug_to_can_accel_watchpoint_condition (struct target_ops *self,
|
|
|
f9426a |
- CORE_ADDR, int, int,
|
|
|
f9426a |
+ CORE_ADDR, LONGEST, int,
|
|
|
f9426a |
struct expression *);
|
|
|
f9426a |
|
|
|
f9426a |
static void debug_to_terminal_init (struct target_ops *self);
|
|
|
f9426a |
@@ -2960,7 +2960,7 @@ default_region_ok_for_hw_watchpoint (str
|
|
|
f9426a |
static int
|
|
|
f9426a |
default_watchpoint_addr_within_range (struct target_ops *target,
|
|
|
f9426a |
CORE_ADDR addr,
|
|
|
f9426a |
- CORE_ADDR start, int length)
|
|
|
f9426a |
+ CORE_ADDR start, LONGEST length)
|
|
|
f9426a |
{
|
|
|
f9426a |
return addr >= start && addr < start + length;
|
|
|
f9426a |
}
|
|
|
f9426a |
@@ -3681,7 +3681,7 @@ debug_to_region_ok_for_hw_watchpoint (st
|
|
|
f9426a |
|
|
|
f9426a |
static int
|
|
|
f9426a |
debug_to_can_accel_watchpoint_condition (struct target_ops *self,
|
|
|
f9426a |
- CORE_ADDR addr, int len, int rw,
|
|
|
f9426a |
+ CORE_ADDR addr, LONGEST len, int rw,
|
|
|
f9426a |
struct expression *cond)
|
|
|
f9426a |
{
|
|
|
f9426a |
int retval;
|
|
|
f9426a |
@@ -3692,8 +3692,8 @@ debug_to_can_accel_watchpoint_condition
|
|
|
f9426a |
|
|
|
f9426a |
fprintf_unfiltered (gdb_stdlog,
|
|
|
f9426a |
"target_can_accel_watchpoint_condition "
|
|
|
f9426a |
- "(%s, %d, %d, %s) = %ld\n",
|
|
|
f9426a |
- core_addr_to_string (addr), len, rw,
|
|
|
f9426a |
+ "(%s, %s, %d, %s) = %ld\n",
|
|
|
f9426a |
+ core_addr_to_string (addr), plongest (len), rw,
|
|
|
f9426a |
host_address_to_string (cond), (unsigned long) retval);
|
|
|
f9426a |
return retval;
|
|
|
f9426a |
}
|
|
|
f9426a |
@@ -3728,7 +3728,7 @@ debug_to_stopped_data_address (struct ta
|
|
|
f9426a |
static int
|
|
|
f9426a |
debug_to_watchpoint_addr_within_range (struct target_ops *target,
|
|
|
f9426a |
CORE_ADDR addr,
|
|
|
f9426a |
- CORE_ADDR start, int length)
|
|
|
f9426a |
+ CORE_ADDR start, LONGEST length)
|
|
|
f9426a |
{
|
|
|
f9426a |
int retval;
|
|
|
f9426a |
|
|
|
f9426a |
@@ -3736,9 +3736,9 @@ debug_to_watchpoint_addr_within_range (s
|
|
|
f9426a |
start, length);
|
|
|
f9426a |
|
|
|
f9426a |
fprintf_filtered (gdb_stdlog,
|
|
|
f9426a |
- "target_watchpoint_addr_within_range (%s, %s, %d) = %d\n",
|
|
|
f9426a |
+ "target_watchpoint_addr_within_range (%s, %s, %s) = %d\n",
|
|
|
f9426a |
core_addr_to_string (addr), core_addr_to_string (start),
|
|
|
f9426a |
- length, retval);
|
|
|
f9426a |
+ plongest (length), retval);
|
|
|
f9426a |
return retval;
|
|
|
f9426a |
}
|
|
|
f9426a |
|
|
|
f9426a |
Index: gdb-7.8/gdb/target.h
|
|
|
f9426a |
===================================================================
|
|
|
f9426a |
--- gdb-7.8.orig/gdb/target.h 2014-08-01 23:27:30.207773708 +0200
|
|
|
f9426a |
+++ gdb-7.8/gdb/target.h 2014-08-01 23:29:38.315944839 +0200
|
|
|
f9426a |
@@ -469,7 +469,7 @@ struct target_ops
|
|
|
f9426a |
int (*to_stopped_data_address) (struct target_ops *, CORE_ADDR *)
|
|
|
f9426a |
TARGET_DEFAULT_RETURN (0);
|
|
|
f9426a |
int (*to_watchpoint_addr_within_range) (struct target_ops *,
|
|
|
f9426a |
- CORE_ADDR, CORE_ADDR, int)
|
|
|
f9426a |
+ CORE_ADDR, CORE_ADDR, LONGEST)
|
|
|
f9426a |
TARGET_DEFAULT_FUNC (default_watchpoint_addr_within_range);
|
|
|
f9426a |
|
|
|
f9426a |
/* Documentation of this routine is provided with the corresponding
|
|
|
f9426a |
@@ -479,7 +479,7 @@ struct target_ops
|
|
|
f9426a |
TARGET_DEFAULT_FUNC (default_region_ok_for_hw_watchpoint);
|
|
|
f9426a |
|
|
|
f9426a |
int (*to_can_accel_watchpoint_condition) (struct target_ops *,
|
|
|
f9426a |
- CORE_ADDR, int, int,
|
|
|
f9426a |
+ CORE_ADDR, LONGEST, int,
|
|
|
f9426a |
struct expression *)
|
|
|
f9426a |
TARGET_DEFAULT_RETURN (0);
|
|
|
f9426a |
int (*to_masked_watch_num_registers) (struct target_ops *,
|
|
|
f9426a |
Index: gdb-7.8/gdb/aarch64-linux-nat.c
|
|
|
f9426a |
===================================================================
|
|
|
f9426a |
--- gdb-7.8.orig/gdb/aarch64-linux-nat.c 2014-08-01 23:27:30.212773715 +0200
|
|
|
f9426a |
+++ gdb-7.8/gdb/aarch64-linux-nat.c 2014-08-01 23:27:30.248773763 +0200
|
|
|
f9426a |
@@ -428,14 +428,14 @@ aarch64_notify_debug_reg_change (const s
|
|
|
f9426a |
static void
|
|
|
f9426a |
aarch64_show_debug_reg_state (struct aarch64_debug_reg_state *state,
|
|
|
f9426a |
const char *func, CORE_ADDR addr,
|
|
|
f9426a |
- int len, int type)
|
|
|
f9426a |
+ LONGEST len, int type)
|
|
|
f9426a |
{
|
|
|
f9426a |
int i;
|
|
|
f9426a |
|
|
|
f9426a |
fprintf_unfiltered (gdb_stdlog, "%s", func);
|
|
|
f9426a |
if (addr || len)
|
|
|
f9426a |
- fprintf_unfiltered (gdb_stdlog, " (addr=0x%08lx, len=%d, type=%s)",
|
|
|
f9426a |
- (unsigned long) addr, len,
|
|
|
f9426a |
+ fprintf_unfiltered (gdb_stdlog, " (addr=0x%08lx, len=%s, type=%s)",
|
|
|
f9426a |
+ (unsigned long) addr, plongest (len),
|
|
|
f9426a |
type == hw_write ? "hw-write-watchpoint"
|
|
|
f9426a |
: (type == hw_read ? "hw-read-watchpoint"
|
|
|
f9426a |
: (type == hw_access ? "hw-access-watchpoint"
|
|
|
f9426a |
@@ -869,9 +869,10 @@ aarch64_linux_read_description (struct t
|
|
|
f9426a |
gdbserver/linux-aarch64-low.c for more information. */
|
|
|
f9426a |
|
|
|
f9426a |
static void
|
|
|
f9426a |
-aarch64_align_watchpoint (CORE_ADDR addr, int len, CORE_ADDR *aligned_addr_p,
|
|
|
f9426a |
+aarch64_align_watchpoint (CORE_ADDR addr, LONGEST len,
|
|
|
f9426a |
+ CORE_ADDR *aligned_addr_p,
|
|
|
f9426a |
int *aligned_len_p, CORE_ADDR *next_addr_p,
|
|
|
f9426a |
- int *next_len_p)
|
|
|
f9426a |
+ LONGEST *next_len_p)
|
|
|
f9426a |
{
|
|
|
f9426a |
int aligned_len;
|
|
|
f9426a |
unsigned int offset;
|
|
|
f9426a |
@@ -1038,7 +1039,7 @@ aarch64_point_encode_ctrl_reg (int type,
|
|
|
f9426a |
Return 0 for any non-compliant ADDR and/or LEN; return 1 otherwise. */
|
|
|
f9426a |
|
|
|
f9426a |
static int
|
|
|
f9426a |
-aarch64_point_is_aligned (int is_watchpoint, CORE_ADDR addr, int len)
|
|
|
f9426a |
+aarch64_point_is_aligned (int is_watchpoint, CORE_ADDR addr, LONGEST len)
|
|
|
f9426a |
{
|
|
|
f9426a |
unsigned int alignment = is_watchpoint ? AARCH64_HWP_ALIGNMENT
|
|
|
f9426a |
: AARCH64_HBP_ALIGNMENT;
|
|
|
f9426a |
@@ -1290,7 +1291,7 @@ aarch64_handle_aligned_watchpoint (int t
|
|
|
f9426a |
Return 0 if succeed. */
|
|
|
f9426a |
|
|
|
f9426a |
static int
|
|
|
f9426a |
-aarch64_handle_unaligned_watchpoint (int type, CORE_ADDR addr, int len,
|
|
|
f9426a |
+aarch64_handle_unaligned_watchpoint (int type, CORE_ADDR addr, LONGEST len,
|
|
|
f9426a |
int is_insert)
|
|
|
f9426a |
{
|
|
|
f9426a |
struct aarch64_debug_reg_state *state
|
|
|
f9426a |
@@ -1315,8 +1316,8 @@ aarch64_handle_unaligned_watchpoint (int
|
|
|
f9426a |
fprintf_unfiltered (gdb_stdlog,
|
|
|
f9426a |
"handle_unaligned_watchpoint: is_insert: %d\n"
|
|
|
f9426a |
" aligned_addr: 0x%08lx, aligned_len: %d\n"
|
|
|
f9426a |
-" next_addr: 0x%08lx, next_len: %d\n",
|
|
|
f9426a |
- is_insert, aligned_addr, aligned_len, addr, len);
|
|
|
f9426a |
+" next_addr: 0x%08lx, next_len: %s\n",
|
|
|
f9426a |
+ is_insert, aligned_addr, aligned_len, addr, plongest (len));
|
|
|
f9426a |
|
|
|
f9426a |
if (ret != 0)
|
|
|
f9426a |
return ret;
|
|
|
f9426a |
@@ -1328,7 +1329,7 @@ aarch64_handle_unaligned_watchpoint (int
|
|
|
f9426a |
/* Implements insertion and removal of a single watchpoint. */
|
|
|
f9426a |
|
|
|
f9426a |
static int
|
|
|
f9426a |
-aarch64_handle_watchpoint (int type, CORE_ADDR addr, int len, int is_insert)
|
|
|
f9426a |
+aarch64_handle_watchpoint (int type, CORE_ADDR addr, LONGEST len, int is_insert)
|
|
|
f9426a |
{
|
|
|
f9426a |
if (aarch64_point_is_aligned (1 /* is_watchpoint */ , addr, len))
|
|
|
f9426a |
return aarch64_handle_aligned_watchpoint (type, addr, len, is_insert);
|
|
|
f9426a |
@@ -1497,7 +1498,7 @@ aarch64_linux_stopped_by_watchpoint (str
|
|
|
f9426a |
static int
|
|
|
f9426a |
aarch64_linux_watchpoint_addr_within_range (struct target_ops *target,
|
|
|
f9426a |
CORE_ADDR addr,
|
|
|
f9426a |
- CORE_ADDR start, int length)
|
|
|
f9426a |
+ CORE_ADDR start, LONGEST length)
|
|
|
f9426a |
{
|
|
|
f9426a |
return start <= addr && start + length - 1 >= addr;
|
|
|
f9426a |
}
|
|
|
f9426a |
Index: gdb-7.8/gdb/target-delegates.c
|
|
|
f9426a |
===================================================================
|
|
|
f9426a |
--- gdb-7.8.orig/gdb/target-delegates.c 2014-08-01 23:27:30.212773715 +0200
|
|
|
f9426a |
+++ gdb-7.8/gdb/target-delegates.c 2014-08-01 23:29:38.313944877 +0200
|
|
|
f9426a |
@@ -261,7 +261,7 @@ tdefault_stopped_data_address (struct ta
|
|
|
f9426a |
}
|
|
|
f9426a |
|
|
|
f9426a |
static int
|
|
|
f9426a |
-delegate_watchpoint_addr_within_range (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, int arg3)
|
|
|
f9426a |
+delegate_watchpoint_addr_within_range (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, LONGEST arg3)
|
|
|
f9426a |
{
|
|
|
f9426a |
self = self->beneath;
|
|
|
f9426a |
return self->to_watchpoint_addr_within_range (self, arg1, arg2, arg3);
|
|
|
f9426a |
@@ -275,14 +275,14 @@ delegate_region_ok_for_hw_watchpoint (st
|
|
|
f9426a |
}
|
|
|
f9426a |
|
|
|
f9426a |
static int
|
|
|
f9426a |
-delegate_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, int arg2, int arg3, struct expression *arg4)
|
|
|
f9426a |
+delegate_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, LONGEST arg2, int arg3, struct expression *arg4)
|
|
|
f9426a |
{
|
|
|
f9426a |
self = self->beneath;
|
|
|
f9426a |
return self->to_can_accel_watchpoint_condition (self, arg1, arg2, arg3, arg4);
|
|
|
f9426a |
}
|
|
|
f9426a |
|
|
|
f9426a |
static int
|
|
|
f9426a |
-tdefault_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, int arg2, int arg3, struct expression *arg4)
|
|
|
f9426a |
+tdefault_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, LONGEST arg2, int arg3, struct expression *arg4)
|
|
|
f9426a |
{
|
|
|
f9426a |
return 0;
|
|
|
f9426a |
}
|