700 lines
27 KiB
Diff
700 lines
27 KiB
Diff
http://sourceware.org/ml/gdb-patches/2012-09/msg00629.html
|
|
Subject: [PATCH 3/4] Expand watchpoint lengths to LONGEST
|
|
|
|
|
|
--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.
|
|
* s390-nat.c (s390_insert_watchpoint): Expand parameter LEN to
|
|
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
|
|
|
|
Index: gdb-7.6.50.20130731-cvs/gdb/arm-linux-nat.c
|
|
===================================================================
|
|
--- gdb-7.6.50.20130731-cvs.orig/gdb/arm-linux-nat.c 2013-08-02 16:42:29.565632895 +0200
|
|
+++ gdb-7.6.50.20130731-cvs/gdb/arm-linux-nat.c 2013-08-02 16:42:34.094639104 +0200
|
|
@@ -1105,7 +1105,7 @@ arm_linux_region_ok_for_hw_watchpoint (C
|
|
|
|
/* Insert a Hardware breakpoint. */
|
|
static int
|
|
-arm_linux_insert_watchpoint (CORE_ADDR addr, int len, int rw,
|
|
+arm_linux_insert_watchpoint (CORE_ADDR addr, LONGEST len, int rw,
|
|
struct expression *cond)
|
|
{
|
|
struct lwp_info *lp;
|
|
@@ -1123,7 +1123,7 @@ arm_linux_insert_watchpoint (CORE_ADDR a
|
|
|
|
/* Remove a hardware breakpoint. */
|
|
static int
|
|
-arm_linux_remove_watchpoint (CORE_ADDR addr, int len, int rw,
|
|
+arm_linux_remove_watchpoint (CORE_ADDR addr, LONGEST len, int rw,
|
|
struct expression *cond)
|
|
{
|
|
struct lwp_info *lp;
|
|
@@ -1180,7 +1180,7 @@ arm_linux_stopped_by_watchpoint (void)
|
|
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;
|
|
}
|
|
Index: gdb-7.6.50.20130731-cvs/gdb/i386-nat.c
|
|
===================================================================
|
|
--- gdb-7.6.50.20130731-cvs.orig/gdb/i386-nat.c 2013-08-02 16:42:29.566632896 +0200
|
|
+++ gdb-7.6.50.20130731-cvs/gdb/i386-nat.c 2013-08-02 16:42:34.095639105 +0200
|
|
@@ -589,7 +589,7 @@ i386_update_inferior_debug_regs (struct
|
|
of the type TYPE. Return 0 on success, -1 on failure. */
|
|
|
|
static int
|
|
-i386_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+i386_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
struct i386_debug_reg_state *state
|
|
@@ -627,7 +627,7 @@ i386_insert_watchpoint (CORE_ADDR addr,
|
|
address ADDR, whose length is LEN bytes, and for accesses of the
|
|
type TYPE. Return 0 on success, -1 on failure. */
|
|
static int
|
|
-i386_remove_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+i386_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
struct i386_debug_reg_state *state
|
|
Index: gdb-7.6.50.20130731-cvs/gdb/ia64-linux-nat.c
|
|
===================================================================
|
|
--- gdb-7.6.50.20130731-cvs.orig/gdb/ia64-linux-nat.c 2013-08-02 16:42:29.566632896 +0200
|
|
+++ gdb-7.6.50.20130731-cvs/gdb/ia64-linux-nat.c 2013-08-02 16:42:34.095639105 +0200
|
|
@@ -542,7 +542,7 @@ is_power_of_2 (int val)
|
|
}
|
|
|
|
static int
|
|
-ia64_linux_insert_watchpoint (CORE_ADDR addr, int len, int rw,
|
|
+ia64_linux_insert_watchpoint (CORE_ADDR addr, LONGEST len, int rw,
|
|
struct expression *cond)
|
|
{
|
|
struct lwp_info *lp;
|
|
@@ -596,7 +596,7 @@ ia64_linux_insert_watchpoint (CORE_ADDR
|
|
}
|
|
|
|
static int
|
|
-ia64_linux_remove_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+ia64_linux_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
int idx;
|
|
Index: gdb-7.6.50.20130731-cvs/gdb/inf-ttrace.c
|
|
===================================================================
|
|
--- gdb-7.6.50.20130731-cvs.orig/gdb/inf-ttrace.c 2013-08-02 16:42:29.567632898 +0200
|
|
+++ gdb-7.6.50.20130731-cvs/gdb/inf-ttrace.c 2013-08-02 16:42:34.095639105 +0200
|
|
@@ -314,14 +314,14 @@ inf_ttrace_disable_page_protections (pid
|
|
type TYPE. */
|
|
|
|
static int
|
|
-inf_ttrace_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+inf_ttrace_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
const int pagesize = inf_ttrace_page_dict.pagesize;
|
|
pid_t pid = ptid_get_pid (inferior_ptid);
|
|
CORE_ADDR page_addr;
|
|
- int num_pages;
|
|
- int page;
|
|
+ LONGEST num_pages;
|
|
+ LONGEST page;
|
|
|
|
gdb_assert (type == hw_write);
|
|
|
|
@@ -338,14 +338,14 @@ inf_ttrace_insert_watchpoint (CORE_ADDR
|
|
type TYPE. */
|
|
|
|
static int
|
|
-inf_ttrace_remove_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+inf_ttrace_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
const int pagesize = inf_ttrace_page_dict.pagesize;
|
|
pid_t pid = ptid_get_pid (inferior_ptid);
|
|
CORE_ADDR page_addr;
|
|
- int num_pages;
|
|
- int page;
|
|
+ LONGEST num_pages;
|
|
+ LONGEST page;
|
|
|
|
gdb_assert (type == hw_write);
|
|
|
|
Index: gdb-7.6.50.20130731-cvs/gdb/mips-linux-nat.c
|
|
===================================================================
|
|
--- gdb-7.6.50.20130731-cvs.orig/gdb/mips-linux-nat.c 2013-08-02 16:42:29.568632899 +0200
|
|
+++ gdb-7.6.50.20130731-cvs/gdb/mips-linux-nat.c 2013-08-02 16:42:34.096639106 +0200
|
|
@@ -644,7 +644,7 @@ mips_linux_new_thread (struct lwp_info *
|
|
watch. Return zero on success. */
|
|
|
|
static int
|
|
-mips_linux_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+mips_linux_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
struct pt_watch_regs regs;
|
|
@@ -697,7 +697,7 @@ mips_linux_insert_watchpoint (CORE_ADDR
|
|
Return zero on success. */
|
|
|
|
static int
|
|
-mips_linux_remove_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+mips_linux_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
int retval;
|
|
Index: gdb-7.6.50.20130731-cvs/gdb/nto-procfs.c
|
|
===================================================================
|
|
--- gdb-7.6.50.20130731-cvs.orig/gdb/nto-procfs.c 2013-08-02 16:42:29.568632899 +0200
|
|
+++ gdb-7.6.50.20130731-cvs/gdb/nto-procfs.c 2013-08-02 16:42:34.096639106 +0200
|
|
@@ -69,10 +69,10 @@ static ptid_t do_attach (ptid_t ptid);
|
|
|
|
static int procfs_can_use_hw_breakpoint (int, int, int);
|
|
|
|
-static int procfs_insert_hw_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+static int procfs_insert_hw_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond);
|
|
|
|
-static int procfs_remove_hw_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+static int procfs_remove_hw_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond);
|
|
|
|
static int procfs_stopped_by_watchpoint (void);
|
|
@@ -1493,14 +1493,14 @@ procfs_can_use_hw_breakpoint (int type,
|
|
}
|
|
|
|
static int
|
|
-procfs_remove_hw_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+procfs_remove_hw_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
return procfs_hw_watchpoint (addr, -1, type);
|
|
}
|
|
|
|
static int
|
|
-procfs_insert_hw_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+procfs_insert_hw_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
return procfs_hw_watchpoint (addr, len, type);
|
|
Index: gdb-7.6.50.20130731-cvs/gdb/ppc-linux-nat.c
|
|
===================================================================
|
|
--- gdb-7.6.50.20130731-cvs.orig/gdb/ppc-linux-nat.c 2013-08-02 16:42:29.570632902 +0200
|
|
+++ gdb-7.6.50.20130731-cvs/gdb/ppc-linux-nat.c 2013-08-02 16:42:34.097639108 +0200
|
|
@@ -1853,11 +1853,11 @@ can_use_watchpoint_cond_accel (void)
|
|
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
|
|
@@ -1944,7 +1944,7 @@ num_memory_accesses (struct value *v)
|
|
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;
|
|
@@ -2011,7 +2011,7 @@ check_condition (CORE_ADDR watch_addr, s
|
|
the condition expression, thus only triggering the watchpoint when it is
|
|
true. */
|
|
static int
|
|
-ppc_linux_can_accel_watchpoint_condition (CORE_ADDR addr, int len, int rw,
|
|
+ppc_linux_can_accel_watchpoint_condition (CORE_ADDR addr, LONGEST len, int rw,
|
|
struct expression *cond)
|
|
{
|
|
CORE_ADDR data_value;
|
|
@@ -2028,7 +2028,7 @@ ppc_linux_can_accel_watchpoint_condition
|
|
|
|
static void
|
|
create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr,
|
|
- int len, int rw, struct expression *cond,
|
|
+ LONGEST len, int rw, struct expression *cond,
|
|
int insert)
|
|
{
|
|
if (len == 1
|
|
@@ -2073,7 +2073,7 @@ create_watchpoint_request (struct ppc_hw
|
|
}
|
|
|
|
static int
|
|
-ppc_linux_insert_watchpoint (CORE_ADDR addr, int len, int rw,
|
|
+ppc_linux_insert_watchpoint (CORE_ADDR addr, LONGEST len, int rw,
|
|
struct expression *cond)
|
|
{
|
|
struct lwp_info *lp;
|
|
@@ -2141,7 +2141,7 @@ ppc_linux_insert_watchpoint (CORE_ADDR a
|
|
}
|
|
|
|
static int
|
|
-ppc_linux_remove_watchpoint (CORE_ADDR addr, int len, int rw,
|
|
+ppc_linux_remove_watchpoint (CORE_ADDR addr, LONGEST len, int rw,
|
|
struct expression *cond)
|
|
{
|
|
struct lwp_info *lp;
|
|
@@ -2292,7 +2292,7 @@ ppc_linux_stopped_by_watchpoint (void)
|
|
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;
|
|
|
|
Index: gdb-7.6.50.20130731-cvs/gdb/procfs.c
|
|
===================================================================
|
|
--- gdb-7.6.50.20130731-cvs.orig/gdb/procfs.c 2013-08-02 16:42:29.572632904 +0200
|
|
+++ gdb-7.6.50.20130731-cvs/gdb/procfs.c 2013-08-02 16:42:34.098639109 +0200
|
|
@@ -2433,7 +2433,7 @@ procfs_address_to_host_pointer (CORE_ADD
|
|
#endif
|
|
|
|
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)
|
|
{
|
|
#if !defined (PCWATCH) && !defined (PIOCSWATCH)
|
|
/* If neither or these is defined, we can't support watchpoints.
|
|
@@ -4777,7 +4777,7 @@ procfs_pid_to_str (struct target_ops *op
|
|
/* 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)
|
|
{
|
|
#ifndef AIX5
|
|
@@ -4897,7 +4897,7 @@ procfs_stopped_data_address (struct targ
|
|
}
|
|
|
|
static int
|
|
-procfs_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+procfs_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
if (!target_have_steppable_watchpoint
|
|
@@ -4919,7 +4919,7 @@ procfs_insert_watchpoint (CORE_ADDR addr
|
|
}
|
|
|
|
static int
|
|
-procfs_remove_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+procfs_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
return procfs_set_watchpoint (inferior_ptid, addr, 0, 0, 0);
|
|
Index: gdb-7.6.50.20130731-cvs/gdb/remote-m32r-sdi.c
|
|
===================================================================
|
|
--- gdb-7.6.50.20130731-cvs.orig/gdb/remote-m32r-sdi.c 2013-08-02 16:42:29.573632906 +0200
|
|
+++ gdb-7.6.50.20130731-cvs/gdb/remote-m32r-sdi.c 2013-08-02 16:42:34.099639111 +0200
|
|
@@ -1416,14 +1416,15 @@ m32r_can_use_hw_watchpoint (int type, in
|
|
watchpoint. */
|
|
|
|
static int
|
|
-m32r_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+m32r_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
int i;
|
|
|
|
if (remote_debug)
|
|
- fprintf_unfiltered (gdb_stdlog, "m32r_insert_watchpoint(%s,%d,%d)\n",
|
|
- paddress (target_gdbarch (), addr), len, type);
|
|
+ fprintf_unfiltered (gdb_stdlog, "m32r_insert_watchpoint(%s,%s,%d)\n",
|
|
+ paddress (target_gdbarch (), addr), plongest (len),
|
|
+ type);
|
|
|
|
for (i = 0; i < MAX_ACCESS_BREAKS; i++)
|
|
{
|
|
@@ -1441,14 +1442,15 @@ m32r_insert_watchpoint (CORE_ADDR addr,
|
|
}
|
|
|
|
static int
|
|
-m32r_remove_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+m32r_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
int i;
|
|
|
|
if (remote_debug)
|
|
- fprintf_unfiltered (gdb_stdlog, "m32r_remove_watchpoint(%s,%d,%d)\n",
|
|
- paddress (target_gdbarch (), addr), len, type);
|
|
+ fprintf_unfiltered (gdb_stdlog, "m32r_remove_watchpoint(%s,%s,%d)\n",
|
|
+ paddress (target_gdbarch (), addr), plongest (len),
|
|
+ type);
|
|
|
|
for (i = 0; i < MAX_ACCESS_BREAKS; i++)
|
|
{
|
|
Index: gdb-7.6.50.20130731-cvs/gdb/remote-mips.c
|
|
===================================================================
|
|
--- gdb-7.6.50.20130731-cvs.orig/gdb/remote-mips.c 2013-08-02 16:42:29.574632907 +0200
|
|
+++ gdb-7.6.50.20130731-cvs/gdb/remote-mips.c 2013-08-02 16:42:34.100639112 +0200
|
|
@@ -2426,7 +2426,7 @@ calculate_mask (CORE_ADDR addr, int len)
|
|
watchpoint. */
|
|
|
|
static int
|
|
-mips_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+mips_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
if (mips_set_breakpoint (addr, len, type))
|
|
@@ -2438,7 +2438,7 @@ mips_insert_watchpoint (CORE_ADDR addr,
|
|
/* Remove a watchpoint. */
|
|
|
|
static int
|
|
-mips_remove_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+mips_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
if (mips_clear_breakpoint (addr, len, type))
|
|
Index: gdb-7.6.50.20130731-cvs/gdb/remote.c
|
|
===================================================================
|
|
--- gdb-7.6.50.20130731-cvs.orig/gdb/remote.c 2013-08-02 16:42:29.577632911 +0200
|
|
+++ gdb-7.6.50.20130731-cvs/gdb/remote.c 2013-08-02 16:42:34.103639116 +0200
|
|
@@ -8277,7 +8277,7 @@ watchpoint_to_Z_packet (int type)
|
|
}
|
|
|
|
static int
|
|
-remote_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+remote_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
struct remote_state *rs = get_remote_state ();
|
|
@@ -8297,7 +8297,7 @@ remote_insert_watchpoint (CORE_ADDR addr
|
|
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);
|
|
@@ -8317,7 +8317,7 @@ remote_insert_watchpoint (CORE_ADDR addr
|
|
|
|
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);
|
|
|
|
@@ -8326,7 +8326,7 @@ remote_watchpoint_addr_within_range (str
|
|
|
|
|
|
static int
|
|
-remote_remove_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+remote_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
struct remote_state *rs = get_remote_state ();
|
|
@@ -8346,7 +8346,7 @@ remote_remove_watchpoint (CORE_ADDR addr
|
|
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);
|
|
|
|
Index: gdb-7.6.50.20130731-cvs/gdb/s390-nat.c
|
|
===================================================================
|
|
--- gdb-7.6.50.20130731-cvs.orig/gdb/s390-nat.c 2013-08-02 16:42:29.578632913 +0200
|
|
+++ gdb-7.6.50.20130731-cvs/gdb/s390-nat.c 2013-08-02 16:42:34.103639116 +0200
|
|
@@ -516,7 +516,7 @@ s390_fix_watch_points (struct lwp_info *
|
|
}
|
|
|
|
static int
|
|
-s390_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+s390_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
struct lwp_info *lp;
|
|
@@ -537,7 +537,7 @@ s390_insert_watchpoint (CORE_ADDR addr,
|
|
}
|
|
|
|
static int
|
|
-s390_remove_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+s390_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
struct lwp_info *lp;
|
|
Index: gdb-7.6.50.20130731-cvs/gdb/target.c
|
|
===================================================================
|
|
--- gdb-7.6.50.20130731-cvs.orig/gdb/target.c 2013-08-02 16:42:29.580632915 +0200
|
|
+++ gdb-7.6.50.20130731-cvs/gdb/target.c 2013-08-02 16:42:52.160663787 +0200
|
|
@@ -49,7 +49,7 @@ static void target_info (char *, int);
|
|
static void default_terminal_info (const char *, int);
|
|
|
|
static int default_watchpoint_addr_within_range (struct target_ops *,
|
|
- CORE_ADDR, CORE_ADDR, int);
|
|
+ CORE_ADDR, CORE_ADDR, LONGEST);
|
|
|
|
static int default_region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST);
|
|
|
|
@@ -114,10 +114,10 @@ static int debug_to_insert_hw_breakpoint
|
|
static int debug_to_remove_hw_breakpoint (struct gdbarch *,
|
|
struct bp_target_info *);
|
|
|
|
-static int debug_to_insert_watchpoint (CORE_ADDR, int, int,
|
|
+static int debug_to_insert_watchpoint (CORE_ADDR, LONGEST, int,
|
|
struct expression *);
|
|
|
|
-static int debug_to_remove_watchpoint (CORE_ADDR, int, int,
|
|
+static int debug_to_remove_watchpoint (CORE_ADDR, LONGEST, int,
|
|
struct expression *);
|
|
|
|
static int debug_to_stopped_by_watchpoint (void);
|
|
@@ -125,11 +125,12 @@ static int debug_to_stopped_by_watchpoin
|
|
static int debug_to_stopped_data_address (struct target_ops *, CORE_ADDR *);
|
|
|
|
static int debug_to_watchpoint_addr_within_range (struct target_ops *,
|
|
- CORE_ADDR, CORE_ADDR, int);
|
|
+ CORE_ADDR, CORE_ADDR,
|
|
+ LONGEST);
|
|
|
|
static int debug_to_region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST);
|
|
|
|
-static int debug_to_can_accel_watchpoint_condition (CORE_ADDR, int, int,
|
|
+static int debug_to_can_accel_watchpoint_condition (CORE_ADDR, LONGEST, int,
|
|
struct expression *);
|
|
|
|
static void debug_to_terminal_init (void);
|
|
@@ -790,10 +791,10 @@ update_current_target (void)
|
|
(int (*) (struct gdbarch *, struct bp_target_info *))
|
|
return_minus_one);
|
|
de_fault (to_insert_watchpoint,
|
|
- (int (*) (CORE_ADDR, int, int, struct expression *))
|
|
+ (int (*) (CORE_ADDR, LONGEST, int, struct expression *))
|
|
return_minus_one);
|
|
de_fault (to_remove_watchpoint,
|
|
- (int (*) (CORE_ADDR, int, int, struct expression *))
|
|
+ (int (*) (CORE_ADDR, LONGEST, int, struct expression *))
|
|
return_minus_one);
|
|
de_fault (to_stopped_by_watchpoint,
|
|
(int (*) (void))
|
|
@@ -806,7 +807,7 @@ update_current_target (void)
|
|
de_fault (to_region_ok_for_hw_watchpoint,
|
|
default_region_ok_for_hw_watchpoint);
|
|
de_fault (to_can_accel_watchpoint_condition,
|
|
- (int (*) (CORE_ADDR, int, int, struct expression *))
|
|
+ (int (*) (CORE_ADDR, LONGEST, int, struct expression *))
|
|
return_zero);
|
|
de_fault (to_terminal_init,
|
|
(void (*) (void))
|
|
@@ -3594,7 +3595,7 @@ default_region_ok_for_hw_watchpoint (COR
|
|
static int
|
|
default_watchpoint_addr_within_range (struct target_ops *target,
|
|
CORE_ADDR addr,
|
|
- CORE_ADDR start, int length)
|
|
+ CORE_ADDR start, LONGEST length)
|
|
{
|
|
return addr >= start && addr < start + length;
|
|
}
|
|
@@ -4555,7 +4556,7 @@ debug_to_region_ok_for_hw_watchpoint (CO
|
|
}
|
|
|
|
static int
|
|
-debug_to_can_accel_watchpoint_condition (CORE_ADDR addr, int len, int rw,
|
|
+debug_to_can_accel_watchpoint_condition (CORE_ADDR addr, LONGEST len, int rw,
|
|
struct expression *cond)
|
|
{
|
|
int retval;
|
|
@@ -4565,8 +4566,8 @@ debug_to_can_accel_watchpoint_condition
|
|
|
|
fprintf_unfiltered (gdb_stdlog,
|
|
"target_can_accel_watchpoint_condition "
|
|
- "(%s, %d, %d, %s) = %ld\n",
|
|
- core_addr_to_string (addr), len, rw,
|
|
+ "(%s, %s, %d, %s) = %ld\n",
|
|
+ core_addr_to_string (addr), plongest (len), rw,
|
|
host_address_to_string (cond), (unsigned long) retval);
|
|
return retval;
|
|
}
|
|
@@ -4601,7 +4602,7 @@ debug_to_stopped_data_address (struct ta
|
|
static int
|
|
debug_to_watchpoint_addr_within_range (struct target_ops *target,
|
|
CORE_ADDR addr,
|
|
- CORE_ADDR start, int length)
|
|
+ CORE_ADDR start, LONGEST length)
|
|
{
|
|
int retval;
|
|
|
|
@@ -4609,9 +4610,9 @@ debug_to_watchpoint_addr_within_range (s
|
|
start, length);
|
|
|
|
fprintf_filtered (gdb_stdlog,
|
|
- "target_watchpoint_addr_within_range (%s, %s, %d) = %d\n",
|
|
+ "target_watchpoint_addr_within_range (%s, %s, %s) = %d\n",
|
|
core_addr_to_string (addr), core_addr_to_string (start),
|
|
- length, retval);
|
|
+ plongest (length), retval);
|
|
return retval;
|
|
}
|
|
|
|
@@ -4646,7 +4647,7 @@ debug_to_remove_hw_breakpoint (struct gd
|
|
}
|
|
|
|
static int
|
|
-debug_to_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+debug_to_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
int retval;
|
|
@@ -4654,14 +4655,14 @@ debug_to_insert_watchpoint (CORE_ADDR ad
|
|
retval = debug_target.to_insert_watchpoint (addr, len, type, cond);
|
|
|
|
fprintf_unfiltered (gdb_stdlog,
|
|
- "target_insert_watchpoint (%s, %d, %d, %s) = %ld\n",
|
|
- core_addr_to_string (addr), len, type,
|
|
+ "target_insert_watchpoint (%s, %s, %d, %s) = %ld\n",
|
|
+ core_addr_to_string (addr), plongest (len), type,
|
|
host_address_to_string (cond), (unsigned long) retval);
|
|
return retval;
|
|
}
|
|
|
|
static int
|
|
-debug_to_remove_watchpoint (CORE_ADDR addr, int len, int type,
|
|
+debug_to_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
|
|
struct expression *cond)
|
|
{
|
|
int retval;
|
|
@@ -4669,8 +4670,8 @@ debug_to_remove_watchpoint (CORE_ADDR ad
|
|
retval = debug_target.to_remove_watchpoint (addr, len, type, cond);
|
|
|
|
fprintf_unfiltered (gdb_stdlog,
|
|
- "target_remove_watchpoint (%s, %d, %d, %s) = %ld\n",
|
|
- core_addr_to_string (addr), len, type,
|
|
+ "target_remove_watchpoint (%s, %s, %d, %s) = %ld\n",
|
|
+ core_addr_to_string (addr), plongest (len), type,
|
|
host_address_to_string (cond), (unsigned long) retval);
|
|
return retval;
|
|
}
|
|
Index: gdb-7.6.50.20130731-cvs/gdb/target.h
|
|
===================================================================
|
|
--- gdb-7.6.50.20130731-cvs.orig/gdb/target.h 2013-08-02 16:42:29.580632915 +0200
|
|
+++ gdb-7.6.50.20130731-cvs/gdb/target.h 2013-08-02 16:42:34.105639119 +0200
|
|
@@ -373,8 +373,8 @@ struct target_ops
|
|
|
|
/* Documentation of what the two routines below are expected to do is
|
|
provided with the corresponding target_* macros. */
|
|
- int (*to_remove_watchpoint) (CORE_ADDR, int, int, struct expression *);
|
|
- int (*to_insert_watchpoint) (CORE_ADDR, int, int, struct expression *);
|
|
+ int (*to_remove_watchpoint) (CORE_ADDR, LONGEST, int, struct expression *);
|
|
+ int (*to_insert_watchpoint) (CORE_ADDR, LONGEST, int, struct expression *);
|
|
|
|
int (*to_insert_mask_watchpoint) (struct target_ops *,
|
|
CORE_ADDR, CORE_ADDR, int);
|
|
@@ -385,13 +385,13 @@ struct target_ops
|
|
int to_have_continuable_watchpoint;
|
|
int (*to_stopped_data_address) (struct target_ops *, CORE_ADDR *);
|
|
int (*to_watchpoint_addr_within_range) (struct target_ops *,
|
|
- CORE_ADDR, CORE_ADDR, int);
|
|
+ CORE_ADDR, CORE_ADDR, LONGEST);
|
|
|
|
/* Documentation of this routine is provided with the corresponding
|
|
target_* macro. */
|
|
int (*to_region_ok_for_hw_watchpoint) (CORE_ADDR, LONGEST);
|
|
|
|
- int (*to_can_accel_watchpoint_condition) (CORE_ADDR, int, int,
|
|
+ int (*to_can_accel_watchpoint_condition) (CORE_ADDR, LONGEST, int,
|
|
struct expression *);
|
|
int (*to_masked_watch_num_registers) (struct target_ops *,
|
|
CORE_ADDR, CORE_ADDR);
|