2013-01-11 14:55:20 +00:00
|
|
|
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.
|
2014-02-10 17:10:42 +00:00
|
|
|
* s390-linux-nat.c (s390_insert_watchpoint): Expand parameter LEN to
|
2013-01-11 14:55:20 +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
|
|
|
|
|
2016-02-29 19:38:18 +00:00
|
|
|
Index: gdb-7.10.50.20151027/gdb/arm-linux-nat.c
|
2013-07-08 14:47:04 +00:00
|
|
|
===================================================================
|
2016-02-29 19:38:18 +00:00
|
|
|
--- gdb-7.10.50.20151027.orig/gdb/arm-linux-nat.c 2015-11-08 10:36:33.050071812 +0100
|
|
|
|
+++ gdb-7.10.50.20151027/gdb/arm-linux-nat.c 2015-11-08 10:36:33.094072110 +0100
|
|
|
|
@@ -1209,7 +1209,7 @@ arm_linux_stopped_by_watchpoint (struct
|
2013-01-11 14:55:20 +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;
|
|
|
|
}
|
2016-02-29 19:38:18 +00:00
|
|
|
Index: gdb-7.10.50.20151027/gdb/ppc-linux-nat.c
|
2013-07-08 14:47:04 +00:00
|
|
|
===================================================================
|
2016-02-29 19:38:18 +00:00
|
|
|
--- gdb-7.10.50.20151027.orig/gdb/ppc-linux-nat.c 2015-11-08 10:36:33.064071907 +0100
|
|
|
|
+++ gdb-7.10.50.20151027/gdb/ppc-linux-nat.c 2015-11-08 10:36:33.095072117 +0100
|
|
|
|
@@ -1807,11 +1807,11 @@ can_use_watchpoint_cond_accel (void)
|
2013-01-11 14:55:20 +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
|
2016-02-29 19:38:18 +00:00
|
|
|
@@ -1898,7 +1898,7 @@ num_memory_accesses (struct value *v)
|
2013-01-11 14:55:20 +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;
|
2016-02-29 19:38:18 +00:00
|
|
|
@@ -1966,7 +1966,7 @@ check_condition (CORE_ADDR watch_addr, s
|
2013-01-11 14:55:20 +00:00
|
|
|
true. */
|
|
|
|
static int
|
2014-08-11 14:08:48 +00:00
|
|
|
ppc_linux_can_accel_watchpoint_condition (struct target_ops *self,
|
|
|
|
- CORE_ADDR addr, int len, int rw,
|
|
|
|
+ CORE_ADDR addr, LONGEST len, int rw,
|
2013-01-11 14:55:20 +00:00
|
|
|
struct expression *cond)
|
|
|
|
{
|
|
|
|
CORE_ADDR data_value;
|
2016-02-29 19:38:18 +00:00
|
|
|
@@ -1983,7 +1983,7 @@ ppc_linux_can_accel_watchpoint_condition
|
2013-01-11 14:55:20 +00:00
|
|
|
|
|
|
|
static void
|
|
|
|
create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr,
|
2016-02-29 19:38:18 +00:00
|
|
|
- int len, enum target_hw_bp_type type,
|
|
|
|
+ LONGEST len, enum target_hw_bp_type type,
|
|
|
|
struct expression *cond, int insert)
|
2013-01-11 14:55:20 +00:00
|
|
|
{
|
|
|
|
if (len == 1
|
2016-02-29 19:38:18 +00:00
|
|
|
@@ -2249,7 +2249,7 @@ ppc_linux_stopped_by_watchpoint (struct
|
2013-01-11 14:55:20 +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;
|
|
|
|
|
2016-02-29 19:38:18 +00:00
|
|
|
Index: gdb-7.10.50.20151027/gdb/procfs.c
|
2013-07-08 14:47:04 +00:00
|
|
|
===================================================================
|
2016-02-29 19:38:18 +00:00
|
|
|
--- gdb-7.10.50.20151027.orig/gdb/procfs.c 2015-11-08 10:36:33.065071913 +0100
|
|
|
|
+++ gdb-7.10.50.20151027/gdb/procfs.c 2015-11-08 10:36:33.096072123 +0100
|
|
|
|
@@ -2427,7 +2427,7 @@ procfs_address_to_host_pointer (CORE_ADD
|
2013-01-11 14:55:20 +00:00
|
|
|
#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.
|
2016-02-29 19:38:18 +00:00
|
|
|
@@ -4706,7 +4706,7 @@ procfs_pid_to_str (struct target_ops *op
|
2013-01-11 14:55:20 +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)
|
|
|
|
{
|
2013-07-08 14:47:04 +00:00
|
|
|
#ifndef AIX5
|
2016-02-29 19:38:18 +00:00
|
|
|
Index: gdb-7.10.50.20151027/gdb/remote.c
|
2013-07-08 14:47:04 +00:00
|
|
|
===================================================================
|
2016-02-29 19:38:18 +00:00
|
|
|
--- gdb-7.10.50.20151027.orig/gdb/remote.c 2015-11-08 10:36:33.067071927 +0100
|
|
|
|
+++ gdb-7.10.50.20151027/gdb/remote.c 2015-11-08 10:36:33.097072130 +0100
|
|
|
|
@@ -9085,7 +9085,7 @@ remote_insert_watchpoint (struct target_
|
2013-01-11 14:55:20 +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);
|
2016-02-29 19:38:18 +00:00
|
|
|
@@ -9105,7 +9105,7 @@ remote_insert_watchpoint (struct target_
|
2013-01-11 14:55:20 +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);
|
|
|
|
|
2016-02-29 19:38:18 +00:00
|
|
|
@@ -9134,7 +9134,7 @@ remote_remove_watchpoint (struct target_
|
2013-01-11 14:55:20 +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);
|
|
|
|
|
2016-02-29 19:38:18 +00:00
|
|
|
Index: gdb-7.10.50.20151027/gdb/target.c
|
2013-07-08 14:47:04 +00:00
|
|
|
===================================================================
|
2016-02-29 19:38:18 +00:00
|
|
|
--- gdb-7.10.50.20151027.orig/gdb/target.c 2015-11-08 10:36:33.069071941 +0100
|
|
|
|
+++ gdb-7.10.50.20151027/gdb/target.c 2015-11-08 10:36:33.098072137 +0100
|
- Use patchlist.pl to merge with gdb-7.9-10.fc22, a rebase to FSF GDB 7.9.
The GDB 7.8 features are:
* Python Scripting
- You can now access frame registers from Python scripts.
- New attribute 'producer' for gdb.Symtab objects.
* New Python-based convenience functions:
- $_caller_is(name [, number_of_frames])
- $_caller_matches(regexp [, number_of_frames])
- $_any_caller_is(name [, number_of_frames])
- $_any_caller_matches(regexp [, number_of_frames])
* New commands
- queue-signal signal-name-or-number
Queue a signal to be delivered to the thread when it is resumed.
* On resume, GDB now always passes the signal the program had stopped
for to the thread the signal was sent to, even if the user changed
threads before resuming. Previously GDB would often (but not
always) deliver the signal to the thread that happens to be current
at resume time.
* Conversely, the "signal" command now consistently delivers the
requested signal to the current thread. GDB now asks for
confirmation if the program had stopped for a signal and the user
switched threads meanwhile.
* "breakpoint always-inserted" modes "off" and "auto" merged.
Now, when 'breakpoint always-inserted mode' is set to "off", GDB
won't remove breakpoints from the target until all threads stop,
even in non-stop mode. The "auto" mode has been removed, and "off"
is now the default mode.
* MI changes
- The -list-thread-groups command outputs an exit-code field for
inferiors that have exited.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gdb?expand=0&rev=115
2015-02-25 13:45:10 +00:00
|
|
|
@@ -51,7 +51,7 @@ static void generic_tls_error (void) ATT
|
2014-08-11 14:08:48 +00:00
|
|
|
static void default_terminal_info (struct target_ops *, const char *, int);
|
2013-01-11 14:55:20 +00:00
|
|
|
|
|
|
|
static int default_watchpoint_addr_within_range (struct target_ops *,
|
|
|
|
- CORE_ADDR, CORE_ADDR, int);
|
2013-09-11 13:42:29 +00:00
|
|
|
+ CORE_ADDR, CORE_ADDR, LONGEST);
|
2013-01-11 14:55:20 +00:00
|
|
|
|
2014-08-11 14:08:48 +00:00
|
|
|
static int default_region_ok_for_hw_watchpoint (struct target_ops *,
|
|
|
|
CORE_ADDR, LONGEST);
|
2016-02-29 19:38:18 +00:00
|
|
|
@@ -3140,7 +3140,7 @@ default_region_ok_for_hw_watchpoint (str
|
2013-01-11 14:55:20 +00:00
|
|
|
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;
|
|
|
|
}
|
2016-02-29 19:38:18 +00:00
|
|
|
Index: gdb-7.10.50.20151027/gdb/target.h
|
2014-08-11 14:08:48 +00:00
|
|
|
===================================================================
|
2016-02-29 19:38:18 +00:00
|
|
|
--- gdb-7.10.50.20151027.orig/gdb/target.h 2015-11-08 10:36:33.069071941 +0100
|
|
|
|
+++ gdb-7.10.50.20151027/gdb/target.h 2015-11-08 10:36:33.098072137 +0100
|
|
|
|
@@ -543,7 +543,7 @@ struct target_ops
|
2014-08-11 14:08:48 +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);
|
2013-01-11 14:55:20 +00:00
|
|
|
|
2014-08-11 14:08:48 +00:00
|
|
|
/* Documentation of this routine is provided with the corresponding
|
2016-02-29 19:38:18 +00:00
|
|
|
@@ -553,7 +553,7 @@ struct target_ops
|
2014-08-11 14:08:48 +00:00
|
|
|
TARGET_DEFAULT_FUNC (default_region_ok_for_hw_watchpoint);
|
|
|
|
|
|
|
|
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 *,
|
2016-02-29 19:38:18 +00:00
|
|
|
Index: gdb-7.10.50.20151027/gdb/aarch64-linux-nat.c
|
2014-08-11 14:08:48 +00:00
|
|
|
===================================================================
|
2016-02-29 19:38:18 +00:00
|
|
|
--- gdb-7.10.50.20151027.orig/gdb/aarch64-linux-nat.c 2015-11-08 10:36:33.074071975 +0100
|
|
|
|
+++ gdb-7.10.50.20151027/gdb/aarch64-linux-nat.c 2015-11-08 10:36:33.098072137 +0100
|
|
|
|
@@ -795,7 +795,7 @@ aarch64_linux_stopped_by_watchpoint (str
|
2014-08-11 14:08:48 +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;
|
2013-01-11 14:55:20 +00:00
|
|
|
}
|
2016-02-29 19:38:18 +00:00
|
|
|
Index: gdb-7.10.50.20151027/gdb/target-delegates.c
|
2013-07-08 14:47:04 +00:00
|
|
|
===================================================================
|
2016-02-29 19:38:18 +00:00
|
|
|
--- gdb-7.10.50.20151027.orig/gdb/target-delegates.c 2015-11-08 10:36:33.073071968 +0100
|
|
|
|
+++ gdb-7.10.50.20151027/gdb/target-delegates.c 2015-11-08 10:36:33.099072144 +0100
|
|
|
|
@@ -709,14 +709,14 @@ debug_stopped_data_address (struct targe
|
2014-08-11 14:08:48 +00:00
|
|
|
}
|
2013-01-11 14:55:20 +00:00
|
|
|
|
2014-08-11 14:08:48 +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);
|
- Use patchlist.pl to merge with gdb-7.9-10.fc22, a rebase to FSF GDB 7.9.
The GDB 7.8 features are:
* Python Scripting
- You can now access frame registers from Python scripts.
- New attribute 'producer' for gdb.Symtab objects.
* New Python-based convenience functions:
- $_caller_is(name [, number_of_frames])
- $_caller_matches(regexp [, number_of_frames])
- $_any_caller_is(name [, number_of_frames])
- $_any_caller_matches(regexp [, number_of_frames])
* New commands
- queue-signal signal-name-or-number
Queue a signal to be delivered to the thread when it is resumed.
* On resume, GDB now always passes the signal the program had stopped
for to the thread the signal was sent to, even if the user changed
threads before resuming. Previously GDB would often (but not
always) deliver the signal to the thread that happens to be current
at resume time.
* Conversely, the "signal" command now consistently delivers the
requested signal to the current thread. GDB now asks for
confirmation if the program had stopped for a signal and the user
switched threads meanwhile.
* "breakpoint always-inserted" modes "off" and "auto" merged.
Now, when 'breakpoint always-inserted mode' is set to "off", GDB
won't remove breakpoints from the target until all threads stop,
even in non-stop mode. The "auto" mode has been removed, and "off"
is now the default mode.
* MI changes
- The -list-thread-groups command outputs an exit-code field for
inferiors that have exited.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gdb?expand=0&rev=115
2015-02-25 13:45:10 +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);
|
2016-02-29 19:38:18 +00:00
|
|
|
@@ -728,7 +728,7 @@ debug_watchpoint_addr_within_range (stru
|
- Use patchlist.pl to merge with gdb-7.9-10.fc22, a rebase to FSF GDB 7.9.
The GDB 7.8 features are:
* Python Scripting
- You can now access frame registers from Python scripts.
- New attribute 'producer' for gdb.Symtab objects.
* New Python-based convenience functions:
- $_caller_is(name [, number_of_frames])
- $_caller_matches(regexp [, number_of_frames])
- $_any_caller_is(name [, number_of_frames])
- $_any_caller_matches(regexp [, number_of_frames])
* New commands
- queue-signal signal-name-or-number
Queue a signal to be delivered to the thread when it is resumed.
* On resume, GDB now always passes the signal the program had stopped
for to the thread the signal was sent to, even if the user changed
threads before resuming. Previously GDB would often (but not
always) deliver the signal to the thread that happens to be current
at resume time.
* Conversely, the "signal" command now consistently delivers the
requested signal to the current thread. GDB now asks for
confirmation if the program had stopped for a signal and the user
switched threads meanwhile.
* "breakpoint always-inserted" modes "off" and "auto" merged.
Now, when 'breakpoint always-inserted mode' is set to "off", GDB
won't remove breakpoints from the target until all threads stop,
even in non-stop mode. The "auto" mode has been removed, and "off"
is now the default mode.
* MI changes
- The -list-thread-groups command outputs an exit-code field for
inferiors that have exited.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gdb?expand=0&rev=115
2015-02-25 13:45:10 +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);
|
2016-02-29 19:38:18 +00:00
|
|
|
@@ -761,20 +761,20 @@ debug_region_ok_for_hw_watchpoint (struc
|
2014-08-11 14:08:48 +00:00
|
|
|
}
|
2013-01-11 14:55:20 +00:00
|
|
|
|
2014-08-11 14:08:48 +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);
|
|
|
|
}
|
2013-01-11 14:55:20 +00:00
|
|
|
|
2014-08-11 14:08:48 +00:00
|
|
|
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;
|
|
|
|
}
|
- Use patchlist.pl to merge with gdb-7.9-10.fc22, a rebase to FSF GDB 7.9.
The GDB 7.8 features are:
* Python Scripting
- You can now access frame registers from Python scripts.
- New attribute 'producer' for gdb.Symtab objects.
* New Python-based convenience functions:
- $_caller_is(name [, number_of_frames])
- $_caller_matches(regexp [, number_of_frames])
- $_any_caller_is(name [, number_of_frames])
- $_any_caller_matches(regexp [, number_of_frames])
* New commands
- queue-signal signal-name-or-number
Queue a signal to be delivered to the thread when it is resumed.
* On resume, GDB now always passes the signal the program had stopped
for to the thread the signal was sent to, even if the user changed
threads before resuming. Previously GDB would often (but not
always) deliver the signal to the thread that happens to be current
at resume time.
* Conversely, the "signal" command now consistently delivers the
requested signal to the current thread. GDB now asks for
confirmation if the program had stopped for a signal and the user
switched threads meanwhile.
* "breakpoint always-inserted" modes "off" and "auto" merged.
Now, when 'breakpoint always-inserted mode' is set to "off", GDB
won't remove breakpoints from the target until all threads stop,
even in non-stop mode. The "auto" mode has been removed, and "off"
is now the default mode.
* MI changes
- The -list-thread-groups command outputs an exit-code field for
inferiors that have exited.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gdb?expand=0&rev=115
2015-02-25 13:45:10 +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);
|
2016-02-29 19:38:18 +00:00
|
|
|
@@ -784,7 +784,7 @@ debug_can_accel_watchpoint_condition (st
|
- Use patchlist.pl to merge with gdb-7.9-10.fc22, a rebase to FSF GDB 7.9.
The GDB 7.8 features are:
* Python Scripting
- You can now access frame registers from Python scripts.
- New attribute 'producer' for gdb.Symtab objects.
* New Python-based convenience functions:
- $_caller_is(name [, number_of_frames])
- $_caller_matches(regexp [, number_of_frames])
- $_any_caller_is(name [, number_of_frames])
- $_any_caller_matches(regexp [, number_of_frames])
* New commands
- queue-signal signal-name-or-number
Queue a signal to be delivered to the thread when it is resumed.
* On resume, GDB now always passes the signal the program had stopped
for to the thread the signal was sent to, even if the user changed
threads before resuming. Previously GDB would often (but not
always) deliver the signal to the thread that happens to be current
at resume time.
* Conversely, the "signal" command now consistently delivers the
requested signal to the current thread. GDB now asks for
confirmation if the program had stopped for a signal and the user
switched threads meanwhile.
* "breakpoint always-inserted" modes "off" and "auto" merged.
Now, when 'breakpoint always-inserted mode' is set to "off", GDB
won't remove breakpoints from the target until all threads stop,
even in non-stop mode. The "auto" mode has been removed, and "off"
is now the default mode.
* MI changes
- The -list-thread-groups command outputs an exit-code field for
inferiors that have exited.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gdb?expand=0&rev=115
2015-02-25 13:45:10 +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);
|
2016-02-29 19:38:18 +00:00
|
|
|
Index: gdb-7.10.50.20151027/gdb/nat/aarch64-linux-hw-point.c
|
|
|
|
===================================================================
|
|
|
|
--- gdb-7.10.50.20151027.orig/gdb/nat/aarch64-linux-hw-point.c 2015-10-27 02:48:31.000000000 +0100
|
|
|
|
+++ gdb-7.10.50.20151027/gdb/nat/aarch64-linux-hw-point.c 2015-11-08 10:36:33.099072144 +0100
|
|
|
|
@@ -111,7 +111,7 @@ aarch64_point_encode_ctrl_reg (enum targ
|
|
|
|
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;
|
|
|
|
|
|
|
|
@@ -180,9 +180,10 @@ aarch64_point_is_aligned (int is_watchpo
|
|
|
|
limitations can be largely relaxed with some further work. */
|
|
|
|
|
|
|
|
static void
|
|
|
|
-aarch64_align_watchpoint (CORE_ADDR addr, int len, CORE_ADDR *aligned_addr_p,
|
|
|
|
+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)
|
|
|
|
{
|
|
|
|
int aligned_len;
|
|
|
|
unsigned int offset;
|
|
|
|
@@ -494,7 +495,7 @@ aarch64_handle_aligned_watchpoint (enum
|
|
|
|
|
|
|
|
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)
|
|
|
|
{
|
|
|
|
while (len > 0)
|
|
|
|
@@ -517,9 +518,9 @@ aarch64_handle_unaligned_watchpoint (enu
|
|
|
|
" "
|
|
|
|
"aligned_addr: %s, aligned_len: %d\n"
|
|
|
|
" "
|
|
|
|
- "next_addr: %s, next_len: %d\n",
|
|
|
|
+ "next_addr: %s, next_len: %s\n",
|
|
|
|
is_insert, core_addr_to_string_nz (aligned_addr),
|
|
|
|
- aligned_len, core_addr_to_string_nz (addr), len);
|
|
|
|
+ aligned_len, core_addr_to_string_nz (addr), plongest (len));
|
|
|
|
|
|
|
|
if (ret != 0)
|
|
|
|
return ret;
|
|
|
|
@@ -530,7 +531,7 @@ aarch64_handle_unaligned_watchpoint (enu
|
|
|
|
|
|
|
|
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))
|
|
|
|
@@ -581,14 +582,14 @@ aarch64_linux_set_debug_regs (const stru
|
|
|
|
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"
|
|
|
|
Index: gdb-7.10.50.20151027/gdb/nat/aarch64-linux-hw-point.h
|
|
|
|
===================================================================
|
|
|
|
--- gdb-7.10.50.20151027.orig/gdb/nat/aarch64-linux-hw-point.h 2015-10-27 02:48:31.000000000 +0100
|
|
|
|
+++ gdb-7.10.50.20151027/gdb/nat/aarch64-linux-hw-point.h 2015-11-08 10:36:47.656170839 +0100
|
|
|
|
@@ -168,7 +168,7 @@ int aarch64_handle_breakpoint (enum targ
|
|
|
|
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);
|
|
|
|
|
|
|
|
void aarch64_linux_set_debug_regs (const struct aarch64_debug_reg_state *state,
|
|
|
|
@@ -176,7 +176,7 @@ void aarch64_linux_set_debug_regs (const
|
|
|
|
|
|
|
|
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);
|
|
|
|
|