Rebase to FSF GDB 7.10.50.20160131 (trunk snapshot).

This commit is contained in:
Jan Kratochvil 2016-01-31 19:50:48 +01:00
parent 2e597932c2
commit 92913c305e
6 changed files with 17 additions and 312 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
/gdb-libstdc++-v3-python-r225521.tar.xz
/gdb-7.10.50.20160121.tar.xz
/gdb-7.10.50.20160131.tar.xz

View File

@ -1,125 +0,0 @@
http://sourceware.org/ml/gdb-patches/2016-01/msg00580.html
Subject: [testsuite patch]#3 Fix PR threads/19422 regression + Guile regression [Re: [PATCH+doc] Fix PR threads/19422 - show which thread caused stop]
--r5Pyd7+fXNt84Ff3
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
[ now moved the new test a bit lower ]
# "signal SIGINT" could also switch the current thread.
On Fri, 22 Jan 2016 18:31:00 +0100, Jan Kratochvil wrote:
[ now with the patch]
On Fri, 22 Jan 2016 18:30:20 +0100, Jan Kratochvil wrote:
On Thu, 14 Jan 2016 15:08:40 +0100, Pedro Alves wrote:
> gdb/ChangeLog:
> 2016-01-14 Pedro Alves <palves@redhat.com>
>
> * NEWS: Mention that GDB now displays the ID and name of the
> thread that hit a breakpoint or received a signal.
> * break-catch-sig.c (signal_catchpoint_print_it): Use
> maybe_print_thread_hit_breakpoint.
> * break-catch-syscall.c (print_it_catch_syscall): Likewise.
> * break-catch-throw.c (print_it_exception_catchpoint): Likewise.
> * breakpoint.c (maybe_print_thread_hit_breakpoint): New function.
> (print_it_catch_fork, print_it_catch_vfork, print_it_catch_solib)
> (print_it_catch_exec, print_it_ranged_breakpoint)
> (print_it_watchpoint, print_it_masked_watchpoint, bkpt_print_it):
> Use maybe_print_thread_hit_breakpoint.
> * breakpoint.h (maybe_print_thread_hit_breakpoint): Declare.
> * gdbthread.h (show_thread_that_caused_stop): Declare.
> * infrun.c (print_signal_received_reason): Print which thread
> received signal.
> * thread.c (show_thread_that_caused_stop): New function.
There was already before a regression if --with-guile (which is default if
Guile is found) was used:
backtrace^M
#0 0x00007ffff6078da0 in __sigprocmask (how=2, set=0x7fffffffcc40, oset=0x0) at ../sysdeps/unix/sysv/linux/x86_64/sigprocmask.c:39^M
#1 0x0000000000966ce9 in _rl_handle_signal (sig=2) at signals.c:228^M
#2 0x0000000000966c05 in rl_signal_handler (sig=2) at signals.c:149^M
#3 <signal handler called>^M
#4 0x00007ffff613afc0 in __poll_nocancel () at ../sysdeps/unix/syscall-template.S:84^M
#5 0x00000000007d9a88 in gdb_wait_for_event (block=1) at event-loop.c:746^M
#6 0x00000000007d8e87 in gdb_do_one_event () at event-loop.c:323^M
#7 0x00000000007d8ed8 in start_event_loop () at event-loop.c:347^M
#8 0x00000000007da9dc in cli_command_loop (data=0x0) at event-top.c:186^M
#9 0x00000000007d0b4c in current_interp_command_loop () at interps.c:317^M
#10 0x00000000007d1f56 in captured_command_loop (data=0x0) at main.c:318^M
#11 0x00000000007cd6c9 in catch_errors (func=0x7d1f3b <captured_command_loop>, func_args=0x0, errstring=0x1167f75 "", mask=RETURN_MASK_ALL) at exceptions.c:240^M
#12 0x00000000007d3514 in captured_main (data=0x7fffffffd600) at main.c:1157^M
#13 0x00000000007cd6c9 in catch_errors (func=0x7d23d5 <captured_main>, func_args=0x7fffffffd600, errstring=0x1167f75 "", mask=RETURN_MASK_ALL) at exceptions.c:240^M
#14 0x00000000007d353d in gdb_main (args=0x7fffffffd600) at main.c:1165^M
#15 0x000000000049ae8c in main (argc=5, argv=0x7fffffffd708) at gdb.c:32^M
(gdb) PASS: gdb.gdb/selftest.exp: backtrace through signal handler
->
backtrace^M
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185^M
#1 0x00007ffff6db32b7 in GC_wait_marker () at pthread_support.c:2036^M
#2 0x00007ffff6da92ba in GC_help_marker (my_mark_no=my_mark_no@entry=4) at mark.c:1168^M
#3 0x00007ffff6db15ef in GC_mark_thread (id=<optimized out>) at pthread_support.c:389^M
#4 0x00007ffff6b8360a in start_thread (arg=0x7ffff337e700) at pthread_create.c:334^M
#5 0x00007ffff5847a4d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109^M
(gdb) FAIL: gdb.gdb/selftest.exp: backtrace through signal handler
Additionally this patchset added a new regression:
Program received signal SIGINT, Interrupt.^M
0x00007ffff613afc0 in __poll_nocancel () at ../sysdeps/unix/syscall-template.S:84^M
84 T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)^M
(gdb) PASS: gdb.gdb/selftest.exp: send ^C to child process
->
Thread 1 "xgdb" received signal SIGINT, Interrupt.^M
0x00007ffff583bfdd in poll () at ../sysdeps/unix/syscall-template.S:84^M
84 T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)^M
(gdb) FAIL: gdb.gdb/selftest.exp: send ^C to child process
OK to check-in the fix for both of these problems?
Tested on x86_64-fedora23-linux-gnu.
Thanks,
Jan
--r5Pyd7+fXNt84Ff3
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename=1
gdb/testsuite/ChangeLog
2016-01-22 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix testsuite compatibility with Guile.
* gdb.gdb/selftest.exp (send ^C to child process): Accept also Thread.
(thread 1): New test for backtrace through signal handler.
diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest.exp
index 4d55cb5..da7a80b 100644
--- a/gdb/testsuite/gdb.gdb/selftest.exp
+++ b/gdb/testsuite/gdb.gdb/selftest.exp
@@ -436,8 +436,9 @@ proc test_with_self { executable } {
if ![target_info exists gdb,nointerrupts] {
set description "send ^C to child process"
send_gdb "\003"
+ # "Thread 1" is displayed iff Guile support is linked in.
gdb_expect {
- -re "Program received signal SIGINT.*$gdb_prompt $" {
+ -re "(Thread 1 \"xgdb\"|Program) received signal SIGINT.*$gdb_prompt $" {
pass "$description"
}
-re ".*$gdb_prompt $" {
@@ -477,6 +478,9 @@ proc test_with_self { executable } {
}
}
+ # Switch back to the GDB thread if Guile support is linked in.
+ # "signal SIGINT" could also switch the current thread.
+ gdb_test "thread 1" {\[Switching to thread 1 .*\].*}
# get a stack trace
#

View File

@ -4,11 +4,11 @@ https://sourceware.org/ml/gdb-patches/2015-07/msg00422.html
Message-Id: <1436927724-4059-1-git-send-email-patrick@parcs.ath.cx>
https://bugzilla.redhat.com/show_bug.cgi?id=1301175
diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest.exp
index 9f25a48..5deae7d 100644
--- a/gdb/testsuite/gdb.gdb/selftest.exp
+++ b/gdb/testsuite/gdb.gdb/selftest.exp
@@ -444,9 +444,26 @@ proc test_with_self { executable } {
Index: gdb-7.10.50.20160131/gdb/testsuite/gdb.gdb/selftest.exp
===================================================================
--- gdb-7.10.50.20160131.orig/gdb/testsuite/gdb.gdb/selftest.exp 2016-01-31 19:44:47.156963419 +0100
+++ gdb-7.10.50.20160131/gdb/testsuite/gdb.gdb/selftest.exp 2016-01-31 19:45:11.245135173 +0100
@@ -458,9 +458,25 @@
}
set description "send SIGINT signal to child process"
@ -34,7 +34,6 @@ index 9f25a48..5deae7d 100644
+ fail "$description (timeout)"
+ }
+ }
+
# get a stack trace
#
# Switch back to the GDB thread if Guile support is linked in.
# "signal SIGINT" could also switch the current thread.

View File

@ -1,168 +0,0 @@
[PATCH] Fix GCC6 -Wmisleading-indentation issues.
https://sourceware.org/ml/gdb-patches/2016-01/msg00632.html
commit a579cd9aa8c57c8a54833f26452a1afef38e5d20
Author: Mark Wielaard <mjw@redhat.com>
Date: Mon Jan 25 20:29:54 2016 +0100
Fix GCC6 -Wmisleading-indentation issues.
GCC6 will warn about misleading indentation issues like:
gdb/ada-lang.c: In function ada_evaluate_subexp:
ada-lang.c:11423:9: error: statement is indented as if it were guarded by...
arg1 = unwrap_value (arg1);
^~~~
gdb/ada-lang.c:11421:7: note: ...this else clause, but it is not
else
^~~~
In this case it would be a bug except for the fact the if clause already
returned early. So this misindented statement really only got executed
for the else case. But it could easily mislead a reader, so adding a
proper else block is the correct solution.
In case of c-typeprint.c (c_type_print_base) the if statement is indeed
misleadingly indented, but not a bug. Just indent correctly. The inflow.c
(terminal_ours_1) misindented block comes from the removal of an if clause
in commit d9d2d8b which looks correct. Just introduce an else to fixup the
indentation of the block. The linux-record.c misleadingly indented return
statements are just that. Misleading to the reader, but not actual bugs.
Just unindent them so they don't look like they fall under the wrong if
clause.
### a/gdb/ChangeLog
### b/gdb/ChangeLog
## -1,3 +1,14 @@
+2016-01-25 Mark Wielaard <mjw@redhat.com>
+
+ * ada-lang.c (ada_evaluate_subexp): Add proper else block.
+ * c-typeprint.c (c_type_print_base): Fix misleading indentation of
+ if statement.
+ * inflow.c (child_terminal_ours_1): Fix misleading indentation of
+ statement block by introducing an else.
+ * linux-record.c (record_linux_sockaddr): Fix misleading indentation
+ of return statements.
+ (record_linux_msghdr): Likewise.
+
2016-01-25 Pedro Alves <palves@redhat.com>
PR threads/19461
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -11419,9 +11419,11 @@ ada_evaluate_subexp (struct type *expect_type, struct expression *exp,
return value_zero (ada_aligned_type (type), lval_memory);
}
else
- arg1 = ada_value_struct_elt (arg1, &exp->elts[pc + 2].string, 0);
- arg1 = unwrap_value (arg1);
- return ada_to_fixed_value (arg1);
+ {
+ arg1 = ada_value_struct_elt (arg1, &exp->elts[pc + 2].string, 0);
+ arg1 = unwrap_value (arg1);
+ return ada_to_fixed_value (arg1);
+ }
case OP_TYPE:
/* The value is not supposed to be used. This is here to make it
--- a/gdb/c-typeprint.c
+++ b/gdb/c-typeprint.c
@@ -1305,27 +1305,27 @@ c_type_print_base (struct type *type, struct ui_file *stream,
if (TYPE_NFIELDS (type) != 0 || TYPE_NFN_FIELDS (type) != 0)
fprintf_filtered (stream, "\n");
- for (i = 0; i < TYPE_TYPEDEF_FIELD_COUNT (type); i++)
- {
- struct type *target = TYPE_TYPEDEF_FIELD_TYPE (type, i);
-
- /* Dereference the typedef declaration itself. */
- gdb_assert (TYPE_CODE (target) == TYPE_CODE_TYPEDEF);
- target = TYPE_TARGET_TYPE (target);
-
- print_spaces_filtered (level + 4, stream);
- fprintf_filtered (stream, "typedef ");
-
- /* We want to print typedefs with substitutions
- from the template parameters or globally-known
- typedefs but not local typedefs. */
- c_print_type (target,
- TYPE_TYPEDEF_FIELD_NAME (type, i),
- stream, show - 1, level + 4,
- &semi_local_flags);
- fprintf_filtered (stream, ";\n");
- }
- }
+ for (i = 0; i < TYPE_TYPEDEF_FIELD_COUNT (type); i++)
+ {
+ struct type *target = TYPE_TYPEDEF_FIELD_TYPE (type, i);
+
+ /* Dereference the typedef declaration itself. */
+ gdb_assert (TYPE_CODE (target) == TYPE_CODE_TYPEDEF);
+ target = TYPE_TARGET_TYPE (target);
+
+ print_spaces_filtered (level + 4, stream);
+ fprintf_filtered (stream, "typedef ");
+
+ /* We want to print typedefs with substitutions
+ from the template parameters or globally-known
+ typedefs but not local typedefs. */
+ c_print_type (target,
+ TYPE_TYPEDEF_FIELD_NAME (type, i),
+ stream, show - 1, level + 4,
+ &semi_local_flags);
+ fprintf_filtered (stream, ";\n");
+ }
+ }
fprintfi_filtered (level, stream, "}");
}
--- a/gdb/inflow.c
+++ b/gdb/inflow.c
@@ -412,7 +412,7 @@ child_terminal_ours_1 (int output_only)
if (tinfo->run_terminal != NULL || gdb_has_a_terminal () == 0)
return;
-
+ else
{
#ifdef SIGTTOU
/* Ignore this signal since it will happen when we try to set the
--- a/gdb/linux-record.c
+++ b/gdb/linux-record.c
@@ -112,7 +112,7 @@ record_linux_sockaddr (struct regcache *regcache,
"memory at addr = 0x%s len = %d.\n",
phex_nz (len, tdep->size_pointer),
tdep->size_int);
- return -1;
+ return -1;
}
addrlen = (int) extract_unsigned_integer (a, tdep->size_int, byte_order);
if (addrlen <= 0 || addrlen > tdep->size_sockaddr)
@@ -150,7 +150,7 @@ record_linux_msghdr (struct regcache *regcache,
"len = %d.\n",
phex_nz (addr, tdep->size_pointer),
tdep->size_msghdr);
- return -1;
+ return -1;
}
/* msg_name msg_namelen */
@@ -188,7 +188,7 @@ record_linux_msghdr (struct regcache *regcache,
"len = %d.\n",
phex_nz (addr,tdep->size_pointer),
tdep->size_iovec);
- return -1;
+ return -1;
}
tmpaddr = (CORE_ADDR) extract_unsigned_integer (iov,
tdep->size_pointer,
@@ -983,7 +983,7 @@ Do you want to stop the program?"),
"memory at addr = 0x%s len = %d.\n",
OUTPUT_REG (tmpulongest, tdep->arg2),
tdep->size_ulong);
- return -1;
+ return -1;
}
tmpulongest = extract_unsigned_integer (a, tdep->size_ulong,
byte_order);

View File

@ -19,7 +19,7 @@ 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 20160121
%global snapsrc 20160131
# See timestamp of source gnulib installed into gdb/gnulib/ .
%global snapgnulib 20150822
%global tarname gdb-%{version}
@ -27,7 +27,7 @@ Version: 7.10.50.%{snapsrc}
# 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: 49%{?dist}
Release: 50%{?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
@ -245,7 +245,7 @@ Patch231: gdb-6.3-bz202689-exec-from-pthread-test.patch
# Backported fixups post the source tarball.
#Xdrop: Just backports.
Patch232: gdb-upstream.patch
#Patch232: gdb-upstream.patch
# Testcase for PPC Power6/DFP instructions disassembly (BZ 230000).
#=fedoratest+ppc
@ -552,9 +552,6 @@ Patch1056: gdb-fedora-libncursesw.patch
# Test clflushopt instruction decode (for RH BZ 1262471).
Patch1073: gdb-opcodes-clflushopt-test.patch
# Fix testsuite regression with Guile.
Patch1074: gdb-testsuite-guile.patch
# [testsuite] Fix false selftest.exp FAIL from system readline-6.3+ (Patrick Palka).
Patch1075: gdb-testsuite-readline63-sigint.patch
@ -755,7 +752,7 @@ find -name "*.info*"|xargs rm -f
# Match the Fedora's version info.
%patch2 -p1
%patch232 -p1
#patch232 -p1
%patch349 -p1
%patch1058 -p1
%patch1059 -p1
@ -874,7 +871,6 @@ find -name "*.info*"|xargs rm -f
%patch337 -p1
%patch331 -p1
%patch1075 -p1
%patch1074 -p1
%patch1076 -p1
%if 0%{?rhel:1} && 0%{?rhel} <= 7
@ -1393,6 +1389,9 @@ then
fi
%changelog
* Sun Jan 31 2016 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.10.50.20160131-50.fc24
- Rebase to FSF GDB 7.10.50.20160131 (trunk snapshot).
* Sun Jan 31 2016 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.10.50.20160121-49.fc24
- Fix another false gcc6 compilation warning (Mark Wielaard).

View File

@ -1,2 +1,2 @@
7ad32d3894aaf90d00a4343a735c3e1c gdb-libstdc++-v3-python-r225521.tar.xz
aa8ae54df5543678a7ce6420342a4914 gdb-7.10.50.20160121.tar.xz
f82c87837ba288102ea43330b4a1fd3a gdb-7.10.50.20160131.tar.xz