diff --git a/.gitignore b/.gitignore index 37791c6..2c4600f 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/gdb-archer.patch b/gdb-archer.patch index 904c606..8d9265f 100644 --- a/gdb-archer.patch +++ b/gdb-archer.patch @@ -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" } diff --git a/gdb-attach-fail-reasons-5of5.patch b/gdb-attach-fail-reasons-5of5.patch index 48d7ab4..fb7db25 100644 --- a/gdb-attach-fail-reasons-5of5.patch +++ b/gdb-attach-fail-reasons-5of5.patch @@ -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 @@ -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 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 diff --git a/gdb-bz541866-rwatch-before-run.patch b/gdb-bz541866-rwatch-before-run.patch index 8b7b3d0..ba0622a 100644 --- a/gdb-bz541866-rwatch-before-run.patch +++ b/gdb-bz541866-rwatch-before-run.patch @@ -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, diff --git a/gdb-fortran-stride-intel-1of6.patch b/gdb-fortran-stride-intel-1of6.patch index 5b84857..2101cdd 100644 --- a/gdb-fortran-stride-intel-1of6.patch +++ b/gdb-fortran-stride-intel-1of6.patch @@ -45,11 +45,11 @@ Signed-off-by: Christoph Weinmann 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 - diff --git a/gdb-vla-intel-5of7.patch b/gdb-vla-intel-5of7.patch index ca49b3c..68cfc57 100644 --- a/gdb-vla-intel-5of7.patch +++ b/gdb-vla-intel-5of7.patch @@ -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 " "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 - diff --git a/gdb.spec b/gdb.spec index 03f60e2..15506bf 100644 --- a/gdb.spec +++ b/gdb.spec @@ -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 - 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 - 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). diff --git a/sources b/sources index 5999589..b30dc7c 100644 --- a/sources +++ b/sources @@ -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