Rebase to FSF GDB 7.11.90.20160807 (pre-7.12 branch snapshot).

This commit is contained in:
Jan Kratochvil 2016-08-07 23:29:04 +02:00
parent 5c5eb100c4
commit 9faadbe569
8 changed files with 193 additions and 180 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
/gdb-libstdc++-v3-python-r225521.tar.xz
/gdb-7.11.50.20160721.tar.xz
/gdb-7.11.90.20160807.tar.xz

View File

@ -2,7 +2,7 @@ http://sourceware.org/gdb/wiki/ProjectArcher
http://sourceware.org/gdb/wiki/ArcherBranchManagement
GIT snapshot:
commit 5e8c6e345d63e61d3c31e67a55db25a6824787b2
commit cfee64ee869a6a6e4ab0b64af149d4cf59517d80
tromey/python
@ -16,7 +16,7 @@ index 0000000..173b8ea
+This branch originally held the Python code for gdb. It still exists
+because a small amount of code here has not yet been merged upstream.
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 16d5f27..7346d46 100644
index 5af6103..9c69cb0 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -1553,6 +1553,12 @@ stamp-h: $(srcdir)/config.in config.status
@ -33,7 +33,7 @@ index 16d5f27..7346d46 100644
$(SHELL) config.status --recheck
diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
index 0beca55..f499b53 100644
index 3f23516..b5d6390 100644
--- a/gdb/data-directory/Makefile.in
+++ b/gdb/data-directory/Makefile.in
@@ -66,7 +66,10 @@ PYTHON_FILE_LIST = \
@ -57,7 +57,7 @@ index 0beca55..f499b53 100644
gdb/printer/bound_registers.py
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index a068622..64abaa7 100644
index f5dde61..1d92bd6 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -1225,6 +1225,16 @@ for remote debugging.
@ -78,7 +78,7 @@ index a068622..64abaa7 100644
@item -tui
@cindex @code{--tui}
diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi
index 6623d8e..a71f5e1 100644
index a17e37d..c56068b 100644
--- a/gdb/doc/python.texi
+++ b/gdb/doc/python.texi
@@ -88,8 +88,6 @@ containing @code{end}. For example:
@ -443,7 +443,7 @@ index 0000000..8742680
+
+InScope ()
diff --git a/gdb/python/python.c b/gdb/python/python.c
index 3a272a9..e7e61cf 100644
index 621e201..703a1a0 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -95,6 +95,8 @@ const struct extension_language_defn extension_language_python =
@ -455,7 +455,7 @@ index 3a272a9..e7e61cf 100644
#include "target.h"
#include "gdbthread.h"
#include "interps.h"
@@ -1254,6 +1256,90 @@ gdbpy_print_stack (void)
@@ -1263,6 +1265,92 @@ gdbpy_print_stack (void)
/* Return the current Progspace.
There always is one. */
@ -513,7 +513,9 @@ index 3a272a9..e7e61cf 100644
+ for (i = 1; i < argc; i++)
+ {
+ size_t len = mbstowcs (NULL, argv[i], 0);
+ size_t len2;
+ /* Python-related GDB sources are built with -DNDEBUG
+ https://sourceware.org/bugzilla/show_bug.cgi?id=20445 */
+ size_t len2 ATTRIBUTE_UNUSED;
+
+ if (len == (size_t) -1)
+ {
@ -546,7 +548,7 @@ index 3a272a9..e7e61cf 100644
static PyObject *
gdbpy_get_current_progspace (PyObject *unused1, PyObject *unused2)
@@ -1972,6 +2058,8 @@ PyMethodDef python_GdbMethods[] =
@@ -1981,6 +2069,8 @@ PyMethodDef python_GdbMethods[] =
Evaluate command, a string, as a gdb CLI command. Optionally returns\n\
a Python String containing the output of the command if to_string is\n\
set to True." },
@ -567,10 +569,10 @@ index b810187..a3620ab 100644
+
#endif /* GDB_PYTHON_H */
diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest.exp
index af0026c..6c9bbb2 100644
index 2fdd9e3..391900d 100644
--- a/gdb/testsuite/gdb.gdb/selftest.exp
+++ b/gdb/testsuite/gdb.gdb/selftest.exp
@@ -92,6 +92,10 @@ proc do_steps_and_nexts {} {
@@ -87,6 +87,10 @@ proc do_steps_and_nexts {} {
set description "step over cmdarg_vec initialization"
set command "step"
}

View File

@ -37,13 +37,13 @@ gdb/gdbserver/
(linux_create_inferior, linux_tracefork_child): Call it instead of
direct ptrace.
Index: gdb-7.10.50.20160106/gdb/nat/linux-ptrace.c
Index: gdb-7.11.90.20160807/gdb/nat/linux-ptrace.c
===================================================================
--- gdb-7.10.50.20160106.orig/gdb/nat/linux-ptrace.c 2016-01-08 19:15:57.580707944 +0100
+++ gdb-7.10.50.20160106/gdb/nat/linux-ptrace.c 2016-01-08 19:16:02.654736246 +0100
@@ -24,6 +24,10 @@
#include "gdb_wait.h"
--- gdb-7.11.90.20160807.orig/gdb/nat/linux-ptrace.c 2016-08-07 21:19:29.947833017 +0200
+++ gdb-7.11.90.20160807/gdb/nat/linux-ptrace.c 2016-08-07 21:19:37.650904142 +0200
@@ -25,6 +25,10 @@
#include "gdb_ptrace.h"
#include "gregset.h"
+#ifdef HAVE_SELINUX_SELINUX_H
+# include <selinux/selinux.h>
@ -52,7 +52,7 @@ Index: gdb-7.10.50.20160106/gdb/nat/linux-ptrace.c
/* Stores the ptrace options supported by the running kernel.
A value of -1 means we did not check for features yet. A value
of 0 means there are no supported features. */
@@ -48,6 +52,8 @@
@@ -49,6 +53,8 @@
buffer_xml_printf (buffer, _("process %d is a zombie "
"- the process has already terminated"),
(int) pid);
@ -61,7 +61,7 @@ Index: gdb-7.10.50.20160106/gdb/nat/linux-ptrace.c
}
/* See linux-ptrace.h. */
@@ -594,6 +600,22 @@
@@ -592,6 +598,22 @@
linux_ptrace_test_ret_to_nx ();
}
@ -84,11 +84,11 @@ Index: gdb-7.10.50.20160106/gdb/nat/linux-ptrace.c
/* Extract extended ptrace event from wait status. */
int
Index: gdb-7.10.50.20160106/gdb/nat/linux-ptrace.h
Index: gdb-7.11.90.20160807/gdb/nat/linux-ptrace.h
===================================================================
--- gdb-7.10.50.20160106.orig/gdb/nat/linux-ptrace.h 2016-01-08 19:15:57.581707950 +0100
+++ gdb-7.10.50.20160106/gdb/nat/linux-ptrace.h 2016-01-08 19:16:02.655736251 +0100
@@ -164,6 +164,7 @@
--- gdb-7.11.90.20160807.orig/gdb/nat/linux-ptrace.h 2016-08-07 21:19:29.947833017 +0200
+++ gdb-7.11.90.20160807/gdb/nat/linux-ptrace.h 2016-08-07 21:19:37.650904142 +0200
@@ -185,6 +185,7 @@
extern char *linux_ptrace_attach_fail_reason_string (ptid_t ptid, int err);
extern void linux_ptrace_init_warnings (void);
@ -96,11 +96,11 @@ Index: gdb-7.10.50.20160106/gdb/nat/linux-ptrace.h
extern void linux_check_ptrace_features (void);
extern void linux_enable_event_reporting (pid_t pid, int attached);
extern void linux_disable_event_reporting (pid_t pid);
Index: gdb-7.10.50.20160106/gdb/configure.ac
Index: gdb-7.11.90.20160807/gdb/configure.ac
===================================================================
--- gdb-7.10.50.20160106.orig/gdb/configure.ac 2016-01-08 19:15:57.582707955 +0100
+++ gdb-7.10.50.20160106/gdb/configure.ac 2016-01-08 19:16:02.656736257 +0100
@@ -2077,6 +2077,10 @@
--- gdb-7.11.90.20160807.orig/gdb/configure.ac 2016-08-07 21:19:29.947833017 +0200
+++ gdb-7.11.90.20160807/gdb/configure.ac 2016-08-07 21:19:37.650904142 +0200
@@ -2108,6 +2108,10 @@
esac
AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
@ -111,11 +111,11 @@ Index: gdb-7.10.50.20160106/gdb/configure.ac
dnl Handle optional features that can be enabled.
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
Index: gdb-7.10.50.20160106/gdb/gdbserver/configure.ac
Index: gdb-7.11.90.20160807/gdb/gdbserver/configure.ac
===================================================================
--- gdb-7.10.50.20160106.orig/gdb/gdbserver/configure.ac 2016-01-08 19:15:57.582707955 +0100
+++ gdb-7.10.50.20160106/gdb/gdbserver/configure.ac 2016-01-08 19:16:02.656736257 +0100
@@ -524,6 +524,10 @@
--- gdb-7.11.90.20160807.orig/gdb/gdbserver/configure.ac 2016-08-07 21:19:29.948833027 +0200
+++ gdb-7.11.90.20160807/gdb/gdbserver/configure.ac 2016-08-07 21:19:37.651904151 +0200
@@ -458,6 +458,10 @@
fi
fi
@ -126,11 +126,11 @@ Index: gdb-7.10.50.20160106/gdb/gdbserver/configure.ac
AC_SUBST(GDBSERVER_DEPFILES)
AC_SUBST(GDBSERVER_LIBS)
AC_SUBST(srv_xmlbuiltin)
Index: gdb-7.10.50.20160106/gdb/gdbserver/linux-low.c
Index: gdb-7.11.90.20160807/gdb/gdbserver/linux-low.c
===================================================================
--- gdb-7.10.50.20160106.orig/gdb/gdbserver/linux-low.c 2016-01-08 19:15:57.585707972 +0100
+++ gdb-7.10.50.20160106/gdb/gdbserver/linux-low.c 2016-01-08 19:16:02.658736268 +0100
@@ -853,6 +853,29 @@
--- gdb-7.11.90.20160807.orig/gdb/gdbserver/linux-low.c 2016-08-07 21:19:29.949833036 +0200
+++ gdb-7.11.90.20160807/gdb/gdbserver/linux-low.c 2016-08-07 21:19:37.652904161 +0200
@@ -933,6 +933,29 @@
return lwp;
}
@ -160,7 +160,7 @@ Index: gdb-7.10.50.20160106/gdb/gdbserver/linux-low.c
/* Start an inferior process and returns its pid.
ALLARGS is a vector of program-name and args. */
@@ -876,7 +899,7 @@
@@ -956,7 +979,7 @@
if (pid == 0)
{
close_most_fds ();
@ -169,10 +169,10 @@ Index: gdb-7.10.50.20160106/gdb/gdbserver/linux-low.c
setpgid (0, 0);
Index: gdb-7.10.50.20160106/gdb/inf-ptrace.c
Index: gdb-7.11.90.20160807/gdb/inf-ptrace.c
===================================================================
--- gdb-7.10.50.20160106.orig/gdb/inf-ptrace.c 2016-01-08 19:15:57.586707977 +0100
+++ gdb-7.10.50.20160106/gdb/inf-ptrace.c 2016-01-08 19:16:02.659736274 +0100
--- gdb-7.11.90.20160807.orig/gdb/inf-ptrace.c 2016-08-07 21:19:29.949833036 +0200
+++ gdb-7.11.90.20160807/gdb/inf-ptrace.c 2016-08-07 21:19:37.653904170 +0200
@@ -79,7 +79,15 @@
inf_ptrace_me (void)
{
@ -189,11 +189,11 @@ Index: gdb-7.10.50.20160106/gdb/inf-ptrace.c
}
/* Start a new inferior Unix child process. EXEC_FILE is the file to
Index: gdb-7.10.50.20160106/gdb/linux-nat.c
Index: gdb-7.11.90.20160807/gdb/linux-nat.c
===================================================================
--- gdb-7.10.50.20160106.orig/gdb/linux-nat.c 2016-01-08 19:15:57.587707983 +0100
+++ gdb-7.10.50.20160106/gdb/linux-nat.c 2016-01-08 19:16:02.660736279 +0100
@@ -1016,6 +1016,7 @@
--- gdb-7.11.90.20160807.orig/gdb/linux-nat.c 2016-08-07 21:19:29.950833045 +0200
+++ gdb-7.11.90.20160807/gdb/linux-nat.c 2016-08-07 21:19:37.654904179 +0200
@@ -1102,6 +1102,7 @@
{
struct cleanup *restore_personality
= maybe_disable_address_space_randomization (disable_randomization);
@ -201,7 +201,7 @@ Index: gdb-7.10.50.20160106/gdb/linux-nat.c
/* The fork_child mechanism is synchronous and calls target_wait, so
we have to mask the async mode. */
@@ -1023,7 +1024,28 @@
@@ -1109,7 +1110,28 @@
/* Make sure we report all signals during startup. */
linux_nat_pass_signals (ops, 0, NULL);
@ -231,11 +231,11 @@ Index: gdb-7.10.50.20160106/gdb/linux-nat.c
do_cleanups (restore_personality);
}
Index: gdb-7.10.50.20160106/gdb/config.in
Index: gdb-7.11.90.20160807/gdb/config.in
===================================================================
--- gdb-7.10.50.20160106.orig/gdb/config.in 2016-01-08 19:15:57.588707989 +0100
+++ gdb-7.10.50.20160106/gdb/config.in 2016-01-08 19:16:02.660736279 +0100
@@ -264,6 +264,9 @@
--- gdb-7.11.90.20160807.orig/gdb/config.in 2016-08-07 21:19:29.950833045 +0200
+++ gdb-7.11.90.20160807/gdb/config.in 2016-08-07 21:19:37.654904179 +0200
@@ -267,6 +267,9 @@
/* Define if librpm library is being used. */
#undef HAVE_LIBRPM
@ -245,7 +245,7 @@ Index: gdb-7.10.50.20160106/gdb/config.in
/* Define to 1 if you have the <libunwind-ia64.h> header file. */
#undef HAVE_LIBUNWIND_IA64_H
@@ -396,6 +399,9 @@
@@ -399,6 +402,9 @@
/* Define to 1 if you have the `scm_new_smob' function. */
#undef HAVE_SCM_NEW_SMOB
@ -255,11 +255,11 @@ Index: gdb-7.10.50.20160106/gdb/config.in
/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE
Index: gdb-7.10.50.20160106/gdb/configure
Index: gdb-7.11.90.20160807/gdb/configure
===================================================================
--- gdb-7.10.50.20160106.orig/gdb/configure 2016-01-08 19:15:57.593708017 +0100
+++ gdb-7.10.50.20160106/gdb/configure 2016-01-08 19:16:02.665736307 +0100
@@ -14653,6 +14653,64 @@
--- gdb-7.11.90.20160807.orig/gdb/configure 2016-08-07 21:19:29.953833073 +0200
+++ gdb-7.11.90.20160807/gdb/configure 2016-08-07 21:19:37.658904216 +0200
@@ -14642,6 +14642,64 @@
_ACEOF
@ -324,11 +324,11 @@ Index: gdb-7.10.50.20160106/gdb/configure
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
# except that the argument to --with-sysroot is optional.
Index: gdb-7.10.50.20160106/gdb/gdbserver/config.in
Index: gdb-7.11.90.20160807/gdb/gdbserver/config.in
===================================================================
--- gdb-7.10.50.20160106.orig/gdb/gdbserver/config.in 2016-01-08 19:15:57.595708028 +0100
+++ gdb-7.10.50.20160106/gdb/gdbserver/config.in 2016-01-08 19:16:02.665736307 +0100
@@ -117,6 +117,9 @@
--- gdb-7.11.90.20160807.orig/gdb/gdbserver/config.in 2016-08-07 21:19:29.954833082 +0200
+++ gdb-7.11.90.20160807/gdb/gdbserver/config.in 2016-08-07 21:19:37.658904216 +0200
@@ -120,6 +120,9 @@
/* Define to 1 if you have the `mcheck' library (-lmcheck). */
#undef HAVE_LIBMCHECK
@ -338,7 +338,7 @@ Index: gdb-7.10.50.20160106/gdb/gdbserver/config.in
/* Define if the target supports branch tracing. */
#undef HAVE_LINUX_BTRACE
@@ -193,6 +196,9 @@
@@ -196,6 +199,9 @@
/* Define to 1 if you have the `pwrite' function. */
#undef HAVE_PWRITE
@ -348,11 +348,11 @@ Index: gdb-7.10.50.20160106/gdb/gdbserver/config.in
/* Define to 1 if you have the `setns' function. */
#undef HAVE_SETNS
Index: gdb-7.10.50.20160106/gdb/gdbserver/configure
Index: gdb-7.11.90.20160807/gdb/gdbserver/configure
===================================================================
--- gdb-7.10.50.20160106.orig/gdb/gdbserver/configure 2016-01-08 19:15:57.597708039 +0100
+++ gdb-7.10.50.20160106/gdb/gdbserver/configure 2016-01-08 19:16:02.667736318 +0100
@@ -7311,6 +7311,64 @@
--- gdb-7.11.90.20160807.orig/gdb/gdbserver/configure 2016-08-07 21:19:29.955833091 +0200
+++ gdb-7.11.90.20160807/gdb/gdbserver/configure 2016-08-07 21:19:37.660904235 +0200
@@ -7530,6 +7530,64 @@
fi
fi

View File

@ -1,7 +1,7 @@
Index: gdb-7.11.50.20160630/gdb/config/i386/linux64.mh
Index: gdb-7.11.90.20160807/gdb/config/i386/linux64.mh
===================================================================
--- gdb-7.11.50.20160630.orig/gdb/config/i386/linux64.mh 2016-07-02 22:59:18.213248752 +0200
+++ gdb-7.11.50.20160630/gdb/config/i386/linux64.mh 2016-07-02 22:59:25.716313911 +0200
--- gdb-7.11.90.20160807.orig/gdb/config/i386/linux64.mh 2016-08-07 22:27:13.889285274 +0200
+++ gdb-7.11.90.20160807/gdb/config/i386/linux64.mh 2016-08-07 22:29:20.451311124 +0200
@@ -7,7 +7,7 @@
linux-procfs.o linux-ptrace.o linux-btrace.o \
linux-waitpid.o linux-personality.o x86-linux.o \
@ -11,10 +11,10 @@ Index: gdb-7.11.50.20160630/gdb/config/i386/linux64.mh
NAT_CDEPS = $(srcdir)/proc-service.list
# The dynamically loaded libthread_db needs access to symbols in the
Index: gdb-7.11.50.20160630/gdb/config/i386/linux.mh
Index: gdb-7.11.90.20160807/gdb/config/i386/linux.mh
===================================================================
--- gdb-7.11.50.20160630.orig/gdb/config/i386/linux.mh 2016-07-02 22:59:18.213248752 +0200
+++ gdb-7.11.50.20160630/gdb/config/i386/linux.mh 2016-07-02 22:59:25.716313911 +0200
--- gdb-7.11.90.20160807.orig/gdb/config/i386/linux.mh 2016-08-07 22:27:13.889285274 +0200
+++ gdb-7.11.90.20160807/gdb/config/i386/linux.mh 2016-08-07 22:29:20.451311124 +0200
@@ -1,6 +1,6 @@
# Host: Intel 386 running GNU/Linux.
@ -23,10 +23,10 @@ Index: gdb-7.11.50.20160630/gdb/config/i386/linux.mh
NATDEPFILES= inf-ptrace.o fork-child.o \
x86-nat.o x86-dregs.o i386-linux-nat.o x86-linux-nat.o \
proc-service.o linux-thread-db.o \
Index: gdb-7.11.50.20160630/gdb/config/i386/nm-linux.h
Index: gdb-7.11.90.20160807/gdb/config/i386/nm-linux.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.11.50.20160630/gdb/config/i386/nm-linux.h 2016-07-02 22:59:25.716313911 +0200
+++ gdb-7.11.90.20160807/gdb/config/i386/nm-linux.h 2016-08-07 22:29:20.451311124 +0200
@@ -0,0 +1,28 @@
+/* Native support for GNU/Linux i386.
+
@ -56,10 +56,10 @@ Index: gdb-7.11.50.20160630/gdb/config/i386/nm-linux.h
+#define target_can_use_hardware_watchpoint(type, cnt, ot) 1
+
+#endif /* NM_LINUX64_H */
Index: gdb-7.11.50.20160630/gdb/config/i386/nm-linux64.h
Index: gdb-7.11.90.20160807/gdb/config/i386/nm-linux64.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.11.50.20160630/gdb/config/i386/nm-linux64.h 2016-07-02 22:59:25.716313911 +0200
+++ gdb-7.11.90.20160807/gdb/config/i386/nm-linux64.h 2016-08-07 22:29:20.451311124 +0200
@@ -0,0 +1,28 @@
+/* Native support for GNU/Linux amd64.
+
@ -89,11 +89,11 @@ Index: gdb-7.11.50.20160630/gdb/config/i386/nm-linux64.h
+#define target_can_use_hardware_watchpoint(type, cnt, ot) 1
+
+#endif /* NM_LINUX64_H */
Index: gdb-7.11.50.20160630/gdb/target.h
Index: gdb-7.11.90.20160807/gdb/target.h
===================================================================
--- gdb-7.11.50.20160630.orig/gdb/target.h 2016-07-02 22:59:18.214248761 +0200
+++ gdb-7.11.50.20160630/gdb/target.h 2016-07-02 22:59:25.717313919 +0200
@@ -1928,9 +1928,11 @@
--- gdb-7.11.90.20160807.orig/gdb/target.h 2016-08-07 22:27:13.889285274 +0200
+++ gdb-7.11.90.20160807/gdb/target.h 2016-08-07 22:29:20.452311132 +0200
@@ -1939,9 +1939,11 @@
one. OTHERTYPE is the number of watchpoints of other types than
this one used so far. */
@ -105,10 +105,10 @@ Index: gdb-7.11.50.20160630/gdb/target.h
/* Returns the number of debug registers needed to watch the given
memory region, or zero if not supported. */
Index: gdb-7.11.50.20160630/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
Index: gdb-7.11.90.20160807/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.11.50.20160630/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp 2016-07-02 22:59:25.717313919 +0200
+++ gdb-7.11.90.20160807/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp 2016-08-07 22:29:20.452311132 +0200
@@ -0,0 +1,40 @@
+# Copyright 2009, 2010 Free Software Foundation, Inc.
+
@ -150,3 +150,16 @@ Index: gdb-7.11.50.20160630/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
+gdb_test "" "main .* at .*" "start"
+
+gdb_test "continue" "Continuing.\r\n\r\nHardware read watchpoint \[0-9\]+: watchee\r\n\r\nValue = 0\r\n.*"
Index: gdb-7.11.90.20160807/gdb/breakpoint.c
===================================================================
--- gdb-7.11.90.20160807.orig/gdb/breakpoint.c 2016-08-07 22:33:38.835405458 +0200
+++ gdb-7.11.90.20160807/gdb/breakpoint.c 2016-08-07 22:34:45.023941950 +0200
@@ -14953,7 +14953,7 @@
if (bpt->type == bp_hardware_breakpoint)
{
- int i;
+ int i ATTRIBUTE_UNUSED;
i = hw_breakpoint_used_count ();
target_resources_ok =
target_can_use_hardware_watchpoint (bp_hardware_breakpoint,

View File

@ -45,11 +45,11 @@ Signed-off-by: Christoph Weinmann <christoph.t.weinmann@intel.com>
gdb/value.h | 2 +
4 files changed, 380 insertions(+), 97 deletions(-)
diff --git a/gdb/eval.c b/gdb/eval.c
index de1c663..35815a4 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -399,29 +399,254 @@ init_array_element (struct value *array, struct value *element,
Index: gdb-7.11.90.20160807/gdb/eval.c
===================================================================
--- gdb-7.11.90.20160807.orig/gdb/eval.c 2016-08-07 22:06:45.266836619 +0200
+++ gdb-7.11.90.20160807/gdb/eval.c 2016-08-07 22:08:21.708688259 +0200
@@ -399,29 +399,254 @@
return index;
}
@ -74,11 +74,6 @@ index de1c663..35815a4 100644
- = (enum range_type) longest_to_int (exp->elts[pc].longconst);
-
- *pos += 3;
-
- if (range_type == LOW_BOUND_DEFAULT || range_type == BOTH_BOUND_DEFAULT)
- low_bound = TYPE_LOW_BOUND (range);
- else
- low_bound = value_as_long (evaluate_subexp (NULL_TYPE, exp, pos, noside));
+ struct value *new_array = array;
+ struct type *array_type = check_typedef (value_type (new_array));
+ struct type *elt_type;
@ -133,17 +128,21 @@ index de1c663..35815a4 100644
+ {
+ struct subscript_store *index = &subscript_array[i];
- if (range_type == HIGH_BOUND_DEFAULT || range_type == BOTH_BOUND_DEFAULT)
- high_bound = TYPE_HIGH_BOUND (range);
- if (range_type == LOW_BOUND_DEFAULT || range_type == BOTH_BOUND_DEFAULT)
- low_bound = TYPE_LOW_BOUND (range);
- else
- high_bound = value_as_long (evaluate_subexp (NULL_TYPE, exp, pos, noside));
- low_bound = value_as_long (evaluate_subexp (NULL_TYPE, exp, pos, noside));
+ /* The user input is a range, with or without lower and upper bound.
+ E.g.: "p arry(2:5)", "p arry( :5)", "p arry( : )", etc. */
+ if (exp->elts[*pos].opcode == OP_RANGE)
+ {
+ int pc = (*pos) + 1;
+ subscript_range *range;
+
- if (range_type == HIGH_BOUND_DEFAULT || range_type == BOTH_BOUND_DEFAULT)
- high_bound = TYPE_HIGH_BOUND (range);
- else
- high_bound = value_as_long (evaluate_subexp (NULL_TYPE, exp, pos, noside));
+ index->kind = SUBSCRIPT_RANGE;
+ range = &index->U.range;
+
@ -279,8 +278,7 @@ index de1c663..35815a4 100644
+ struct value *v = NULL;
+
+ elt_type = TYPE_TARGET_TYPE (value_type (new_array));
- return value_slice (array, low_bound, high_bound - low_bound + 1);
+
+ /* Every SUBSCRIPT_RANGE in the user input signifies an actual range in
+ the output array. So we traverse the SUBSCRIPT_ARRAY again, looking
+ for a range entry. When we find one, we use the range info to create
@ -307,7 +305,8 @@ index de1c663..35815a4 100644
+
+ TYPE_CODE (interim_array_type)
+ = TYPE_CODE (value_type (new_array));
+
- return value_slice (array, low_bound, high_bound - low_bound + 1);
+ v = allocate_value (interim_array_type);
+
+ elt_type = value_type (v);
@ -322,7 +321,7 @@ index de1c663..35815a4 100644
}
@@ -1810,14 +2035,11 @@ evaluate_subexp_standard (struct type *expect_type,
@@ -1810,14 +2035,11 @@
switch (code)
{
case TYPE_CODE_ARRAY:
@ -339,7 +338,7 @@ index de1c663..35815a4 100644
else
{
arg2 = evaluate_subexp_with_coercion (exp, pos, noside);
@@ -2222,49 +2444,6 @@ evaluate_subexp_standard (struct type *expect_type,
@@ -2223,49 +2445,6 @@
}
return (arg1);
@ -389,7 +388,7 @@ index de1c663..35815a4 100644
case BINOP_LOGICAL_AND:
arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
if (noside == EVAL_SKIP)
@@ -3122,6 +3301,9 @@ calc_f77_array_dims (struct type *array_type)
@@ -3123,6 +3302,9 @@
int ndimen = 1;
struct type *tmp_type;
@ -399,11 +398,11 @@ index de1c663..35815a4 100644
if ((TYPE_CODE (array_type) != TYPE_CODE_ARRAY))
error (_("Can't get dimensions for a non-array type"));
diff --git a/gdb/f-exp.y b/gdb/f-exp.y
index e3148a3..dc131c1 100644
--- a/gdb/f-exp.y
+++ b/gdb/f-exp.y
@@ -253,6 +253,8 @@ arglist : subrange
Index: gdb-7.11.90.20160807/gdb/f-exp.y
===================================================================
--- gdb-7.11.90.20160807.orig/gdb/f-exp.y 2016-08-07 22:06:45.266836619 +0200
+++ gdb-7.11.90.20160807/gdb/f-exp.y 2016-08-07 22:08:21.709688268 +0200
@@ -253,6 +253,8 @@
arglist : arglist ',' exp %prec ABOVE_COMMA
{ arglist_len++; }
@ -412,11 +411,11 @@ index e3148a3..dc131c1 100644
;
/* There are four sorts of subrange types in F90. */
diff --git a/gdb/valops.c b/gdb/valops.c
index 71fb1b3..817a4cf 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -3766,56 +3766,153 @@ value_of_this_silent (const struct language_defn *lang)
Index: gdb-7.11.90.20160807/gdb/valops.c
===================================================================
--- gdb-7.11.90.20160807.orig/gdb/valops.c 2016-08-07 22:06:45.266836619 +0200
+++ gdb-7.11.90.20160807/gdb/valops.c 2016-08-07 22:13:22.083340750 +0200
@@ -3775,56 +3775,154 @@
struct value *
value_slice (struct value *array, int lowbound, int length)
{
@ -448,7 +447,8 @@ index 71fb1b3..817a4cf 100644
+ struct type *array_type = check_typedef (value_type (array));
+ struct type *elt_type = check_typedef (TYPE_TARGET_TYPE (array_type));
+ unsigned int elt_size, elt_offs;
+ LONGEST elt_stride, ary_high_bound, ary_low_bound;
+ /* ATTRIBUTE_UNUSED: VLA bug: https://sourceware.org/ml/gdb-patches/2016-08/msg00099.html */
+ LONGEST elt_stride ATTRIBUTE_UNUSED, ary_high_bound, ary_low_bound;
+ struct value *v;
+ int slice_range_size, i = 0, row_count = 1, elem_count = 1;
@ -462,6 +462,10 @@ index 71fb1b3..817a4cf 100644
- range_type = TYPE_INDEX_TYPE (array_type);
- if (get_discrete_bounds (range_type, &lowerbound, &upperbound) < 0)
- error (_("slice from bad array or bitstring"));
-
- if (lowbound < lowerbound || length < 0
- || lowbound + length - 1 > upperbound)
- error (_("slice out of range"));
+ ary_low_bound = TYPE_LOW_BOUND (TYPE_INDEX_TYPE (array_type));
+ ary_high_bound = TYPE_HIGH_BOUND (TYPE_INDEX_TYPE (array_type));
+
@ -487,10 +491,7 @@ index 71fb1b3..817a4cf 100644
+ && (!TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (array_type)
+ && elt_offs >= TYPE_LENGTH (array_type)))
+ error (_("no such vector element"));
- if (lowbound < lowerbound || length < 0
- || lowbound + length - 1 > upperbound)
- error (_("slice out of range"));
+
+ /* CALL_COUNT is 1 when we are dealing either with the highest dimension
+ of the array, or a one dimensional array. Set RANGE_TYPE accordingly.
+ In both cases we calculate how many rows/elements will be in the output
@ -528,6 +529,11 @@ index 71fb1b3..817a4cf 100644
- struct type *element_type = TYPE_TARGET_TYPE (array_type);
- LONGEST offset
- = (lowbound - lowerbound) * TYPE_LENGTH (check_typedef (element_type));
-
- slice_type = create_array_type ((struct type *) NULL,
- element_type,
- slice_range_type);
- TYPE_CODE (slice_type) = TYPE_CODE (array_type);
+ struct type *element_type;
+
+ /* When CALL_COUNT equals 1 we can use the legacy code for subarrays. */
@ -535,10 +541,8 @@ index 71fb1b3..817a4cf 100644
+ {
+ element_type = TYPE_TARGET_TYPE (array_type);
- slice_type = create_array_type ((struct type *) NULL,
- element_type,
- slice_range_type);
- TYPE_CODE (slice_type) = TYPE_CODE (array_type);
- if (VALUE_LVAL (array) == lval_memory && value_lazy (array))
- slice = allocate_value_lazy (slice_type);
+ slice_type = create_array_type (NULL, element_type, slice_range_type);
+
+ TYPE_CODE (slice_type) = TYPE_CODE (array_type);
@ -554,9 +558,7 @@ index 71fb1b3..817a4cf 100644
+ value_embedded_offset (array) + elt_offs,
+ elt_size * longest_to_int (length));
+ }
- if (VALUE_LVAL (array) == lval_memory && value_lazy (array))
- slice = allocate_value_lazy (slice_type);
+
+ }
+ /* When CALL_COUNT is larger than 1 we are working on a range of ranges.
+ So we copy the relevant elements into the new array we return. */
@ -601,11 +603,11 @@ index 71fb1b3..817a4cf 100644
}
/* Create a value for a FORTRAN complex number. Currently most of the
diff --git a/gdb/value.h b/gdb/value.h
index f8ec854..95588af 100644
--- a/gdb/value.h
+++ b/gdb/value.h
@@ -1056,6 +1056,8 @@ extern struct value *varying_to_slice (struct value *);
Index: gdb-7.11.90.20160807/gdb/value.h
===================================================================
--- gdb-7.11.90.20160807.orig/gdb/value.h 2016-08-07 22:06:45.266836619 +0200
+++ gdb-7.11.90.20160807/gdb/value.h 2016-08-07 22:08:21.710688276 +0200
@@ -1064,6 +1064,8 @@
extern struct value *value_slice (struct value *, int, int);
@ -614,6 +616,3 @@ index f8ec854..95588af 100644
extern struct value *value_literal_complex (struct value *, struct value *,
struct type *);
--
2.5.5

View File

@ -31,24 +31,24 @@ Change-Id: I998d4da4a5ba4899b8cb2115576f44efa741e698
7 files changed, 182 insertions(+), 8 deletions(-)
create mode 100644 gdb/testsuite/gdb.fortran/pointers.exp
diff --git a/gdb/NEWS b/gdb/NEWS
index 3823f20..37e4ca7 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -3,6 +3,8 @@
*** Changes since GDB 7.11
Index: gdb-7.11.90.20160807/gdb/NEWS
===================================================================
--- gdb-7.11.90.20160807.orig/gdb/NEWS 2016-08-07 21:18:44.032409065 +0200
+++ gdb-7.11.90.20160807/gdb/NEWS 2016-08-07 21:19:17.178715116 +0200
@@ -1,6 +1,8 @@
What has changed in GDB?
(Organized release by release)
+* Fortran: Support pointers to dynamic types.
+
* GDB now supports a negative repeat count in the 'x' command to examine
memory backward from the given address. For example:
*** Changes in GDB 7.12
diff --git a/gdb/c-valprint.c b/gdb/c-valprint.c
index 2cb418d..120163f 100644
--- a/gdb/c-valprint.c
+++ b/gdb/c-valprint.c
@@ -645,6 +645,28 @@ c_value_print (struct value *val, struct ui_file *stream,
* GDB and GDBserver now build with a C++ compiler by default.
Index: gdb-7.11.90.20160807/gdb/c-valprint.c
===================================================================
--- gdb-7.11.90.20160807.orig/gdb/c-valprint.c 2016-08-07 21:18:44.032409065 +0200
+++ gdb-7.11.90.20160807/gdb/c-valprint.c 2016-08-07 21:18:51.087474207 +0200
@@ -645,6 +645,28 @@
else
{
/* normal case */
@ -77,11 +77,11 @@ index 2cb418d..120163f 100644
fprintf_filtered (stream, "(");
type_print (value_type (val), "", stream, -1);
fprintf_filtered (stream, ") ");
diff --git a/gdb/testsuite/gdb.cp/vla-cxx.exp b/gdb/testsuite/gdb.cp/vla-cxx.exp
index babdfb7..543d9eb 100644
--- a/gdb/testsuite/gdb.cp/vla-cxx.exp
+++ b/gdb/testsuite/gdb.cp/vla-cxx.exp
@@ -26,6 +26,8 @@ if ![runto_main] {
Index: gdb-7.11.90.20160807/gdb/testsuite/gdb.cp/vla-cxx.exp
===================================================================
--- gdb-7.11.90.20160807.orig/gdb/testsuite/gdb.cp/vla-cxx.exp 2016-08-07 21:18:44.033409074 +0200
+++ gdb-7.11.90.20160807/gdb/testsuite/gdb.cp/vla-cxx.exp 2016-08-07 21:18:51.088474216 +0200
@@ -26,6 +26,8 @@
gdb_breakpoint [gdb_get_line_number "Before pointer assignment"]
gdb_continue_to_breakpoint "Before pointer assignment"
gdb_test "ptype ptr" "int \\(\\*\\)\\\[variable length\\\]" "ptype ptr, Before pointer assignment"
@ -90,17 +90,16 @@ index babdfb7..543d9eb 100644
gdb_breakpoint [gdb_get_line_number "vlas_filled"]
gdb_continue_to_breakpoint "vlas_filled"
@@ -38,3 +40,5 @@ gdb_test "print vlaref" " = \\(int \\(&\\)\\\[3\\\]\\) @$hex: \\{5, 7, 9\\}"
@@ -38,3 +40,5 @@
gdb_test "print vlaref2" " = \\(.*\\) @$hex: \\{5, 7, 9\\}"
gdb_test "print c" " = \\{e = \\{c = @$hex\\}\\}"
gdb_test "ptype ptr" "int \\(\\*\\)\\\[3\\\]"
+gdb_test "print ptr" "\\(int \\(\\*\\)\\\[3\\\]\\) $hex"
+gdb_test "print *ptr" " = \\{5, 7, 9\\}"
diff --git a/gdb/testsuite/gdb.fortran/pointers.exp b/gdb/testsuite/gdb.fortran/pointers.exp
new file mode 100644
index 0000000..c19d7e0
--- /dev/null
+++ b/gdb/testsuite/gdb.fortran/pointers.exp
Index: gdb-7.11.90.20160807/gdb/testsuite/gdb.fortran/pointers.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.11.90.20160807/gdb/testsuite/gdb.fortran/pointers.exp 2016-08-07 21:18:51.088474216 +0200
@@ -0,0 +1,123 @@
+# Copyright 2016 Free Software Foundation, Inc.
+
@ -225,11 +224,11 @@ index 0000000..c19d7e0
+gdb_test "print *((integer*) &inta + 2)" "= 3" "print temporary pointer, array"
+gdb_test "print *((integer*) &intvla + 3)" "= 4" "print temporary pointer, allocated vla"
+gdb_test "print \$pc" "= \\(PTR TO -> \\( void \\(\\)\\(\\)\\)\\) $hex <pointers\\+\\d+>" "Print program counter"
diff --git a/gdb/testsuite/gdb.fortran/pointers.f90 b/gdb/testsuite/gdb.fortran/pointers.f90
index 9ebbaa9..000193c 100644
--- a/gdb/testsuite/gdb.fortran/pointers.f90
+++ b/gdb/testsuite/gdb.fortran/pointers.f90
@@ -20,14 +20,20 @@ program pointers
Index: gdb-7.11.90.20160807/gdb/testsuite/gdb.fortran/pointers.f90
===================================================================
--- gdb-7.11.90.20160807.orig/gdb/testsuite/gdb.fortran/pointers.f90 2016-08-07 21:18:44.033409074 +0200
+++ gdb-7.11.90.20160807/gdb/testsuite/gdb.fortran/pointers.f90 2016-08-07 21:18:51.088474216 +0200
@@ -20,14 +20,20 @@
integer, allocatable :: ivla2 (:, :)
end type two
@ -250,7 +249,7 @@ index 9ebbaa9..000193c 100644
logical, pointer :: logp
complex, pointer :: comp
@@ -35,6 +41,7 @@ program pointers
@@ -35,6 +41,7 @@
character (len=3), pointer:: charap
integer, pointer :: intp
integer, pointer, dimension (:,:) :: intap
@ -258,7 +257,7 @@ index 9ebbaa9..000193c 100644
real, pointer :: realp
type(two), pointer :: twop
@@ -44,8 +51,12 @@ program pointers
@@ -44,8 +51,12 @@
nullify (charap)
nullify (intp)
nullify (intap)
@ -271,7 +270,7 @@ index 9ebbaa9..000193c 100644
logp => logv ! Before pointer assignment
comp => comv
@@ -53,8 +64,10 @@ program pointers
@@ -53,8 +64,10 @@
charap => chara
intp => intv
intap => inta
@ -282,7 +281,7 @@ index 9ebbaa9..000193c 100644
logv = associated(logp) ! Before value assignment
comv = cmplx(1,2)
@@ -63,6 +76,10 @@ program pointers
@@ -63,6 +76,10 @@
intv = 10
inta(:,:) = 1
inta(3,1) = 3
@ -293,11 +292,11 @@ index 9ebbaa9..000193c 100644
realv = 3.14
allocate (twov%ivla1(3))
diff --git a/gdb/valops.c b/gdb/valops.c
index 40392e8..6f38560 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -1562,6 +1562,19 @@ value_ind (struct value *arg1)
Index: gdb-7.11.90.20160807/gdb/valops.c
===================================================================
--- gdb-7.11.90.20160807.orig/gdb/valops.c 2016-08-07 21:18:44.035409093 +0200
+++ gdb-7.11.90.20160807/gdb/valops.c 2016-08-07 21:18:51.089474225 +0200
@@ -1562,6 +1562,19 @@
if (TYPE_CODE (base_type) == TYPE_CODE_PTR)
{
struct type *enc_type;
@ -317,7 +316,7 @@ index 40392e8..6f38560 100644
/* We may be pointing to something embedded in a larger object.
Get the real type of the enclosing object. */
@@ -1577,8 +1590,7 @@ value_ind (struct value *arg1)
@@ -1577,8 +1590,7 @@
else
/* Retrieve the enclosing object pointed to. */
arg2 = value_at_lazy (enc_type,
@ -327,11 +326,11 @@ index 40392e8..6f38560 100644
enc_type = value_type (arg2);
return readjust_indirect_value_type (arg2, enc_type, base_type, arg1);
diff --git a/gdb/valprint.c b/gdb/valprint.c
index 6896da2..f592278 100644
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
@@ -1141,12 +1141,6 @@ value_check_printable (struct value *val, struct ui_file *stream,
Index: gdb-7.11.90.20160807/gdb/valprint.c
===================================================================
--- gdb-7.11.90.20160807.orig/gdb/valprint.c 2016-08-07 04:00:01.000000000 +0200
+++ gdb-7.11.90.20160807/gdb/valprint.c 2016-08-07 21:18:51.090474235 +0200
@@ -1141,12 +1141,6 @@
return 0;
}
@ -344,6 +343,3 @@ index 6896da2..f592278 100644
if (type_not_allocated (value_type (val)))
{
val_print_not_allocated (stream);
--
2.7.4

View File

@ -19,15 +19,15 @@ Summary: A GNU source-level debugger for C, C++, Fortran, Go and other languages
Name: %{?scl_prefix}gdb
# Freeze it when GDB gets branched
%global snapsrc 20160721
%global snapsrc 20160801
# See timestamp of source gnulib installed into gdb/gnulib/ .
%global snapgnulib 20150822
%global tarname gdb-%{version}
Version: 7.11.50.%{snapsrc}
Version: 7.11.90.20160807
# The release always contains a leading reserved number, start it at 1.
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
Release: 4%{?dist}
Release: 5%{?dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain and GFDL
Group: Development/Debuggers
@ -1424,6 +1424,9 @@ then
fi
%changelog
* Sun Aug 7 2016 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.11.90.20160807-5.fc25
- Rebase to FSF GDB 7.11.90.20160807 (pre-7.12 branch snapshot).
* Sun Jul 31 2016 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.11.50.20160721-4.fc25
- Testcase for: Load strictly build-id-checked core files only if no executable
is specified (Jan Kratochvil, RH BZ 1339862).

View File

@ -1,2 +1,2 @@
7ad32d3894aaf90d00a4343a735c3e1c gdb-libstdc++-v3-python-r225521.tar.xz
b246ea3deafbe4902334f7cc1d9841f7 gdb-7.11.50.20160721.tar.xz
2e52dd8b63eb0a459febbee01221fb10 gdb-7.11.90.20160807.tar.xz