Merged update from upstream sources

This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/gdb.git#d824e7f658857c466b24beb3740fbdf29a27900f
This commit is contained in:
DistroBaker 2021-04-04 23:35:32 +00:00
parent e0c5ec26e5
commit 924c7cd4ea
56 changed files with 744 additions and 410 deletions

View File

@ -413,3 +413,14 @@ Patch101: gdb-rhbz1909902-frame_id_p-assert-1.patch
# Backport patch #2 which fixes a frame_id_p assertion failure (RH BZ 1909902). # Backport patch #2 which fixes a frame_id_p assertion failure (RH BZ 1909902).
Patch102: gdb-rhbz1909902-frame_id_p-assert-2.patch Patch102: gdb-rhbz1909902-frame_id_p-assert-2.patch
# Backport change which fixes gdbserver testing hang on f34 and rawhide.
Patch103: gdb-rhbz1941080-fix-gdbserver-hang.patch
# Backport "Disable bracketed paste mode in GDB tests"
# (Tom Tromey)
Patch104: testing-custom-inputrc.patch
# Backport "Handle DW_TAG_type_unit in process_symtab_unit"
# (Tom de Vries)
Patch105: process_psymtab_comp_unit-type-unit.patch

View File

@ -100,3 +100,6 @@
%patch100 -p1 %patch100 -p1
%patch101 -p1 %patch101 -p1
%patch102 -p1 %patch102 -p1
%patch103 -p1
%patch104 -p1
%patch105 -p1

View File

@ -100,3 +100,6 @@ gdb-rhbz1930528-fix-gnulib-build-error.patch
gdb-rhbz1932645-aarch64-ptrace-header-order.patch gdb-rhbz1932645-aarch64-ptrace-header-order.patch
gdb-rhbz1909902-frame_id_p-assert-1.patch gdb-rhbz1909902-frame_id_p-assert-1.patch
gdb-rhbz1909902-frame_id_p-assert-2.patch gdb-rhbz1909902-frame_id_p-assert-2.patch
gdb-rhbz1941080-fix-gdbserver-hang.patch
testing-custom-inputrc.patch
process_psymtab_comp_unit-type-unit.patch

View File

@ -40,7 +40,7 @@ diff --git a/gdb/testsuite/gdb.base/attach-see-vdso.exp b/gdb/testsuite/gdb.base
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.base/attach-see-vdso.exp +++ b/gdb/testsuite/gdb.base/attach-see-vdso.exp
@@ -0,0 +1,72 @@ @@ -0,0 +1,77 @@
+# Copyright 2007 +# Copyright 2007
+ +
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -64,6 +64,11 @@ new file mode 100644
+ return 0 + return 0
+} +}
+ +
+if {[use_gdb_stub]} {
+ untested "skipping test because of use_gdb_stub"
+ return -1
+}
+
+set testfile "attach-see-vdso" +set testfile "attach-see-vdso"
+set srcfile ${testfile}.c +set srcfile ${testfile}.c
+set binfile [standard_output_file ${testfile}] +set binfile [standard_output_file ${testfile}]

View File

@ -81,7 +81,7 @@ new file mode 100644
+# +#
+# You should have received a copy of the GNU General Public License +# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software +# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ +
+# Please email any bugs, comments, and/or additions to this file to: +# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu +# bug-gdb@prep.ai.mit.edu

View File

@ -46,7 +46,7 @@ diff --git a/gdb/testsuite/gdb.base/attach-32.exp b/gdb/testsuite/gdb.base/attac
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.base/attach-32.exp +++ b/gdb/testsuite/gdb.base/attach-32.exp
@@ -0,0 +1,245 @@ @@ -0,0 +1,246 @@
+# Copyright 2005 Free Software Foundation, Inc. +# Copyright 2005 Free Software Foundation, Inc.
+ +
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -78,8 +78,9 @@ new file mode 100644
+} +}
+ +
+# are we on a target board +# are we on a target board
+if [is_remote target] then { +if {[use_gdb_stub]} {
+ return 0 + untested "skipping test because of use_gdb_stub"
+ return -1
+} +}
+ +
+set testfile "attach-32" +set testfile "attach-32"

View File

@ -17,7 +17,7 @@ diff --git a/gdb/testsuite/gdb.cp/b146835.cc b/gdb/testsuite/gdb.cp/b146835.cc
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.cp/b146835.cc +++ b/gdb/testsuite/gdb.cp/b146835.cc
@@ -0,0 +1,32 @@ @@ -0,0 +1,31 @@
+#include "b146835.h" +#include "b146835.h"
+#include <iostream> +#include <iostream>
+ +
@ -49,7 +49,6 @@ new file mode 100644
+ F f; + F f;
+ f.foo(); + f.foo();
+} +}
+
diff --git a/gdb/testsuite/gdb.cp/b146835.exp b/gdb/testsuite/gdb.cp/b146835.exp diff --git a/gdb/testsuite/gdb.cp/b146835.exp b/gdb/testsuite/gdb.cp/b146835.exp
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null

View File

@ -16,7 +16,7 @@ diff --git a/gdb/testsuite/gdb.base/move-dir.c b/gdb/testsuite/gdb.base/move-dir
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.base/move-dir.c +++ b/gdb/testsuite/gdb.base/move-dir.c
@@ -0,0 +1,10 @@ @@ -0,0 +1,9 @@
+#include <stdio.h> +#include <stdio.h>
+#include <stdlib.h> +#include <stdlib.h>
+#include "move-dir.h" +#include "move-dir.h"
@ -26,7 +26,6 @@ new file mode 100644
+ printf ("%s\n", hw);; + printf ("%s\n", hw);;
+ other(); + other();
+} +}
+
diff --git a/gdb/testsuite/gdb.base/move-dir.exp b/gdb/testsuite/gdb.base/move-dir.exp diff --git a/gdb/testsuite/gdb.base/move-dir.exp b/gdb/testsuite/gdb.base/move-dir.exp
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
@ -93,11 +92,10 @@ diff --git a/gdb/testsuite/gdb.base/move-dir.h b/gdb/testsuite/gdb.base/move-dir
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.base/move-dir.h +++ b/gdb/testsuite/gdb.base/move-dir.h
@@ -0,0 +1,7 @@ @@ -0,0 +1,6 @@
+#include <stdlib.h> +#include <stdlib.h>
+ +
+void other() { +void other() {
+ const char* ostring = "other"; + const char* ostring = "other";
+ printf ("%s\n", ostring);; + printf ("%s\n", ostring);;
+} +}
+

View File

@ -186,13 +186,13 @@ new file mode 100644
+ -re "Load new symbol table from.*y or n.*$" { + -re "Load new symbol table from.*y or n.*$" {
+ send_gdb "y\n" + send_gdb "y\n"
+ gdb_expect { + gdb_expect {
+ -re "Reading symbols from $escapedbinfile\.\.\.*done.*$gdb_prompt $"\ + -re "Reading symbols from $escapedbinfile\.\.\.*$gdb_prompt $"\
+ {pass "(re)set file, before attach1"} + {pass "(re)set file, before attach1"}
+ -re "$gdb_prompt $" {fail "(re)set file, before attach1"} + -re "$gdb_prompt $" {fail "(re)set file, before attach1"}
+ timeout {fail "(timeout) (re)set file, before attach1"} + timeout {fail "(timeout) (re)set file, before attach1"}
+ } + }
+ } + }
+ -re "Reading symbols from $escapedbinfile\.\.\.*done.*$gdb_prompt $"\ + -re "Reading symbols from $escapedbinfile\.\.\.*$gdb_prompt $"\
+ {pass "set file, before attach1"} + {pass "set file, before attach1"}
+ -re "$gdb_prompt $" {fail "set file, before attach1"} + -re "$gdb_prompt $" {fail "set file, before attach1"}
+ timeout {fail "(timeout) set file, before attach1"} + timeout {fail "(timeout) set file, before attach1"}
@ -958,7 +958,7 @@ new file mode 100644
+ +
+send_gdb "catch\n" +send_gdb "catch\n"
+gdb_expect { +gdb_expect {
+ -re "Catch requires an event name.*$gdb_prompt $"\ + -re "List of catch subcommands:.*$gdb_prompt $"\
+ {pass "catch requires an event name"} + {pass "catch requires an event name"}
+ -re "$gdb_prompt $"\ + -re "$gdb_prompt $"\
+ {fail "catch requires an event name"} + {fail "catch requires an event name"}
@ -1644,7 +1644,7 @@ diff --git a/gdb/testsuite/gdb.pie/corefile.exp b/gdb/testsuite/gdb.pie/corefile
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.pie/corefile.exp +++ b/gdb/testsuite/gdb.pie/corefile.exp
@@ -0,0 +1,233 @@ @@ -0,0 +1,232 @@
+# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 +# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+# Free Software Foundation, Inc. +# Free Software Foundation, Inc.
+ +
@ -1730,11 +1730,10 @@ new file mode 100644
+ } + }
+} +}
+ +
+# Try to clean up after ourselves.
+remote_file build delete [file join $coredir coremmap.data]
+remote_exec build "rmdir $coredir"
+
+if { $found == 0 } { +if { $found == 0 } {
+ # Try to clean up after ourselves.
+ remote_file build delete [file join $coredir coremmap.data]
+ remote_exec build "rmdir $coredir"
+ warning "can't generate a core file - core tests suppressed - check ulimit -c" + warning "can't generate a core file - core tests suppressed - check ulimit -c"
+ return 0 + return 0
+} +}
@ -1757,13 +1756,13 @@ new file mode 100644
+ +
+gdb_exit +gdb_exit
+if $verbose>1 then { +if $verbose>1 then {
+ send_user "Spawning $GDB -nw $GDBFLAGS -core=[standard_output_file corefile]\n" + send_user "Spawning $GDB -nw $INTERNAL_GDBFLAGS $GDBFLAGS -core=[standard_output_file corefile]\n"
+} +}
+ +
+set oldtimeout $timeout +set oldtimeout $timeout
+set timeout [expr "$timeout + 60"] +set timeout [expr "$timeout + 60"]
+verbose "Timeout is now $timeout seconds" 2 +verbose "Timeout is now $timeout seconds" 2
+eval "spawn $GDB -nw $GDBFLAGS -core=[standard_output_file corefile]" +eval "spawn $GDB -nw $INTERNAL_GDBFLAGS $GDBFLAGS -core=[standard_output_file corefile]"
+expect { +expect {
+ -re "Couldn't find .* registers in core file.*$gdb_prompt $" { + -re "Couldn't find .* registers in core file.*$gdb_prompt $" {
+ fail "args: -core=corefile (couldn't find regs)" + fail "args: -core=corefile (couldn't find regs)"
@ -1790,11 +1789,11 @@ new file mode 100644
+close; +close;
+ +
+if $verbose>1 then { +if $verbose>1 then {
+ send_user "Spawning $GDB -nw $GDBFLAGS $binfile -core=[standard_output_file corefile]\n" + send_user "Spawning $GDB -nw $INTERNAL_GDBFLAGS $GDBFLAGS $binfile -core=[standard_output_file corefile]\n"
+} +}
+ +
+ +
+eval "spawn $GDB -nw $GDBFLAGS $binfile -core=[standard_output_file corefile]"; +eval "spawn $GDB -nw $INTERNAL_GDBFLAGS $GDBFLAGS $binfile -core=[standard_output_file corefile]";
+expect { +expect {
+ -re "Core was generated by .*coremaker.*\r\n\#0 .*\(\).*\r\n$gdb_prompt $" { + -re "Core was generated by .*coremaker.*\r\n\#0 .*\(\).*\r\n$gdb_prompt $" {
+ pass "args: execfile -core=corefile" + pass "args: execfile -core=corefile"
@ -1882,7 +1881,7 @@ diff --git a/gdb/testsuite/gdb.pie/coremaker.c b/gdb/testsuite/gdb.pie/coremaker
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.pie/coremaker.c +++ b/gdb/testsuite/gdb.pie/coremaker.c
@@ -0,0 +1,142 @@ @@ -0,0 +1,141 @@
+/* Copyright 1992, 1993, 1994, 1995, 1996, 1999 +/* Copyright 1992, 1993, 1994, 1995, 1996, 1999
+ Free Software Foundation, Inc. + Free Software Foundation, Inc.
+ +
@ -2024,4 +2023,3 @@ new file mode 100644
+ func1 (); + func1 ();
+ return 0; + return 0;
+} +}
+

View File

@ -54,7 +54,7 @@ diff --git a/gdb/testsuite/gdb.threads/watchthreads-threaded.c b/gdb/testsuite/g
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.threads/watchthreads-threaded.c +++ b/gdb/testsuite/gdb.threads/watchthreads-threaded.c
@@ -0,0 +1,66 @@ @@ -0,0 +1,65 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
+ Copyright 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@ -120,7 +120,6 @@ new file mode 100644
+ +
+ pthread_exit(NULL); + pthread_exit(NULL);
+} +}
+
diff --git a/gdb/testsuite/gdb.threads/watchthreads-threaded.exp b/gdb/testsuite/gdb.threads/watchthreads-threaded.exp diff --git a/gdb/testsuite/gdb.threads/watchthreads-threaded.exp b/gdb/testsuite/gdb.threads/watchthreads-threaded.exp
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
@ -213,9 +212,9 @@ new file mode 100644
+ { set args_2 1; set test_flag 1 } + { set args_2 1; set test_flag 1 }
+ -re "Hardware watchpoint 4: args\\\[3\\\].*Old value = 0.*New value = 1.*main \\\(\\\) at .*watchthreads-threaded.c:$init_line.*$gdb_prompt $" + -re "Hardware watchpoint 4: args\\\[3\\\].*Old value = 0.*New value = 1.*main \\\(\\\) at .*watchthreads-threaded.c:$init_line.*$gdb_prompt $"
+ { set args_3 1; set test_flag 1 } + { set args_3 1; set test_flag 1 }
+ -re "Hardware watchpoint 3: args\\\[2\\\].*Old value = $args_2.*New value = [expr $args_2+1].*in thread_function \\\(arg=0x2\\\) at .*watchthreads-threaded.c:$inc_line.*$gdb_prompt $" + -re "Hardware watchpoint 3: args\\\[2\\\].*Old value = $args_2.*New value = [expr $args_2+1].*thread_function \\\(arg=0x2\\\) at .*watchthreads-threaded.c:$inc_line.*$gdb_prompt $"
+ { set args_2 [expr $args_2+1]; set test_flag 1 } + { set args_2 [expr $args_2+1]; set test_flag 1 }
+ -re "Hardware watchpoint 4: args\\\[3\\\].*Old value = $args_3.*New value = [expr $args_3+1].*in thread_function \\\(arg=0x3\\\) at .*watchthreads-threaded.c:$inc_line.*$gdb_prompt $" + -re "Hardware watchpoint 4: args\\\[3\\\].*Old value = $args_3.*New value = [expr $args_3+1].*thread_function \\\(arg=0x3\\\) at .*watchthreads-threaded.c:$inc_line.*$gdb_prompt $"
+ { set args_3 [expr $args_3+1]; set test_flag 1 } + { set args_3 [expr $args_3+1]; set test_flag 1 }
+ } + }
+ # If we fail above, don't bother continuing loop + # If we fail above, don't bother continuing loop

View File

@ -45,7 +45,7 @@ diff --git a/gdb/testsuite/gdb.base/step-over-trampoline.exp b/gdb/testsuite/gdb
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.base/step-over-trampoline.exp +++ b/gdb/testsuite/gdb.base/step-over-trampoline.exp
@@ -0,0 +1,54 @@ @@ -0,0 +1,59 @@
+# Copyright 2006 Free Software Foundation, Inc. +# Copyright 2006 Free Software Foundation, Inc.
+ +
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -62,6 +62,11 @@ new file mode 100644
+# along with this program; if not, write to the Free Software +# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ +
+if {[use_gdb_stub]} {
+ untested "skipping test because of use_gdb_stub"
+ return -1
+}
+
+if $tracelevel then { +if $tracelevel then {
+ strace $tracelevel + strace $tracelevel
+} +}

View File

@ -10,7 +10,7 @@ diff --git a/gdb/testsuite/gdb.base/tracefork-zombie.exp b/gdb/testsuite/gdb.bas
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.base/tracefork-zombie.exp +++ b/gdb/testsuite/gdb.base/tracefork-zombie.exp
@@ -0,0 +1,75 @@ @@ -0,0 +1,76 @@
+# Copyright 2007 Free Software Foundation, Inc. +# Copyright 2007 Free Software Foundation, Inc.
+ +
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -28,8 +28,9 @@ new file mode 100644
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ +
+# are we on a target board +# are we on a target board
+if [is_remote target] then { +if {[use_gdb_stub]} {
+ return 0 + untested "skipping test because of use_gdb_stub"
+ return -1
+} +}
+ +
+# Start the program running and then wait for a bit, to be sure +# Start the program running and then wait for a bit, to be sure

View File

@ -52,7 +52,7 @@ diff --git a/gdb/testsuite/gdb.base/gcore-excessive-memory.exp b/gdb/testsuite/g
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.base/gcore-excessive-memory.exp +++ b/gdb/testsuite/gdb.base/gcore-excessive-memory.exp
@@ -0,0 +1,94 @@ @@ -0,0 +1,99 @@
+# Copyright 2008 Free Software Foundation, Inc. +# Copyright 2008 Free Software Foundation, Inc.
+ +
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -69,6 +69,11 @@ new file mode 100644
+# along with this program; if not, write to the Free Software +# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ +
+if {[use_gdb_stub]} {
+ untested "skipping test because of use_gdb_stub"
+ return -1
+}
+
+set testfile gcore-excessive-memory +set testfile gcore-excessive-memory
+set srcfile ${testfile}.c +set srcfile ${testfile}.c
+set shfile [standard_output_file ${testfile}-gdb.sh] +set shfile [standard_output_file ${testfile}-gdb.sh]

View File

@ -44,7 +44,7 @@ diff --git a/gdb/testsuite/gdb.base/unwind-leak.exp b/gdb/testsuite/gdb.base/unw
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.base/unwind-leak.exp +++ b/gdb/testsuite/gdb.base/unwind-leak.exp
@@ -0,0 +1,83 @@ @@ -0,0 +1,88 @@
+# Copyright 2007 Free Software Foundation, Inc. +# Copyright 2007 Free Software Foundation, Inc.
+ +
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -61,6 +61,11 @@ new file mode 100644
+# along with this program; if not, write to the Free Software +# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ +
+if {[use_gdb_stub]} {
+ untested "skipping test because of use_gdb_stub"
+ return -1
+}
+
+set testfile unwind-leak +set testfile unwind-leak
+set srcfile ${testfile}.c +set srcfile ${testfile}.c
+set shfile [standard_output_file ${testfile}-gdb.sh] +set shfile [standard_output_file ${testfile}-gdb.sh]

View File

@ -12,7 +12,7 @@ diff --git a/gdb/testsuite/gdb.base/readline-overflow.exp b/gdb/testsuite/gdb.ba
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.base/readline-overflow.exp +++ b/gdb/testsuite/gdb.base/readline-overflow.exp
@@ -0,0 +1,104 @@ @@ -0,0 +1,96 @@
+# Copyright 2006 Free Software Foundation, Inc. +# Copyright 2006 Free Software Foundation, Inc.
+ +
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -46,20 +46,12 @@ new file mode 100644
+ +
+global env +global env
+ +
+save_vars { env(INPUTRC) env(GDBHISTFILE) env(HISTSIZE) TERM timeout } { +save_vars { env(GDBHISTFILE) env(HISTSIZE) TERM timeout } {
+ # The arrow key test relies on the standard VT100 bindings, so + # The arrow key test relies on the standard VT100 bindings, so
+ # make sure that an appropriate terminal is selected. The same + # make sure that an appropriate terminal is selected. The same
+ # bug doesn't show up if we use ^P / ^N instead. + # bug doesn't show up if we use ^P / ^N instead.
+ setenv TERM vt100 + setenv TERM vt100
+ +
+ # Don't let a .inputrc file or an existing setting of INPUTRC mess up
+ # the test results. Even if /dev/null doesn't exist on the particular
+ # platform, the readline library will use the default setting just by
+ # failing to open the file. OTOH, opening /dev/null successfully will
+ # also result in the default settings being used since nothing will be
+ # read from this file.
+ set env(INPUTRC) "/dev/null"
+
+ set timeout 600 + set timeout 600
+ +
+ set env(GDBHISTFILE) "${srcdir}/${subdir}/gdb_history" + set env(GDBHISTFILE) "${srcdir}/${subdir}/gdb_history"

View File

@ -68,7 +68,7 @@ diff --git a/gdb/testsuite/gdb.base/datalib.exp b/gdb/testsuite/gdb.base/datalib
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.base/datalib.exp +++ b/gdb/testsuite/gdb.base/datalib.exp
@@ -0,0 +1,51 @@ @@ -0,0 +1,56 @@
+# Copyright 2008 Free Software Foundation, Inc. +# Copyright 2008 Free Software Foundation, Inc.
+ +
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -85,6 +85,11 @@ new file mode 100644
+# along with this program; if not, write to the Free Software +# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ +
+if {[use_gdb_stub]} {
+ untested "skipping test because of use_gdb_stub"
+ return -1
+}
+
+set testfile datalib +set testfile datalib
+set srcfilemain ${testfile}-main.c +set srcfilemain ${testfile}-main.c
+set srcfilelib ${testfile}-lib.c +set srcfilelib ${testfile}-lib.c

View File

@ -33,7 +33,7 @@ diff --git a/gdb/testsuite/gdb.threads/tls-sepdebug-main.c b/gdb/testsuite/gdb.t
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.threads/tls-sepdebug-main.c +++ b/gdb/testsuite/gdb.threads/tls-sepdebug-main.c
@@ -0,0 +1,25 @@ @@ -0,0 +1,31 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
+ Copyright 2006 Free Software Foundation, Inc. + Copyright 2006 Free Software Foundation, Inc.
@ -55,9 +55,15 @@ new file mode 100644
+ Please email any bugs, comments, and/or additions to this file to: + Please email any bugs, comments, and/or additions to this file to:
+ bug-gdb@prep.ai.mit.edu */ + bug-gdb@prep.ai.mit.edu */
+ +
+#include <pthread.h>
+
+extern __thread int var;
+
+int main() +int main()
+{ +{
+ return 0; + /* Ensure we link against pthreads even with --as-needed. */
+ pthread_testcancel();
+ return var;
+} +}
diff --git a/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c b/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c diff --git a/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c b/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c
new file mode 100644 new file mode 100644
@ -90,7 +96,7 @@ diff --git a/gdb/testsuite/gdb.threads/tls-sepdebug.exp b/gdb/testsuite/gdb.thre
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.threads/tls-sepdebug.exp +++ b/gdb/testsuite/gdb.threads/tls-sepdebug.exp
@@ -0,0 +1,87 @@ @@ -0,0 +1,94 @@
+# Copyright 2006 Free Software Foundation, Inc. +# Copyright 2006 Free Software Foundation, Inc.
+ +
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -107,6 +113,13 @@ new file mode 100644
+# along with this program; if not, write to the Free Software +# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ +
+# This test uses gdb_exit and gdb_start, which are not supported
+# on non-extended-remote sessions.
+if {[use_gdb_stub]} {
+ untested "skipping test because of stub"
+ return 0
+}
+
+if $tracelevel then { +if $tracelevel then {
+ strace $tracelevel + strace $tracelevel
+} +}

View File

@ -540,18 +540,18 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
+ /* There can be multiple build-id symlinks pointing to real files + /* There can be multiple build-id symlinks pointing to real files
+ with the same build-id (such as hard links). Some of the real + with the same build-id (such as hard links). Some of the real
+ files may not be installed. */ + files may not be installed. */
+
+ string_appendf (link, ".%u", seqno);
+ }
- /* We expect to be silent on the non-existing files. */ - /* We expect to be silent on the non-existing files. */
- gdb_bfd_ref_ptr debug_bfd = gdb_bfd_open (filename.get (), gnutarget); - gdb_bfd_ref_ptr debug_bfd = gdb_bfd_open (filename.get (), gnutarget);
+ string_appendf (link, ".%u", seqno); + ret_link = link;
+ }
- if (debug_bfd == NULL) - if (debug_bfd == NULL)
- { - {
- if (separate_debug_file_debug) - if (separate_debug_file_debug)
- printf_unfiltered (_(" no, unable to open.\n")); - printf_unfiltered (_(" no, unable to open.\n"));
+ ret_link = link;
+
+ struct stat statbuf_trash; + struct stat statbuf_trash;
+ +
+ /* `access' automatically dereferences LINK. */ + /* `access' automatically dereferences LINK. */
@ -574,11 +574,11 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
+ +
+ continue; + continue;
+ } + }
+
- return {};
+ /* We expect to be silent on the non-existing files. */ + /* We expect to be silent on the non-existing files. */
+ gdb_bfd_ref_ptr debug_bfd = gdb_bfd_open (filename.get (), gnutarget, -1); + gdb_bfd_ref_ptr debug_bfd = gdb_bfd_open (filename.get (), gnutarget, -1);
+
- return {};
+ if (debug_bfd == NULL) + if (debug_bfd == NULL)
+ { + {
+ if (separate_debug_file_debug) + if (separate_debug_file_debug)
@ -1361,6 +1361,19 @@ diff --git a/gdb/testsuite/gdb.base/corefile.exp b/gdb/testsuite/gdb.base/corefi
+ gdb_test "info files" "Local exec file:\r\n\[ \t\]*`[string_to_regexp $debugdir/$buildid]', file type .*" + gdb_test "info files" "Local exec file:\r\n\[ \t\]*`[string_to_regexp $debugdir/$buildid]', file type .*"
+ pass $wholetest + pass $wholetest
+} +}
diff --git a/gdb/testsuite/gdb.base/gdbinit-history.exp b/gdb/testsuite/gdb.base/gdbinit-history.exp
--- a/gdb/testsuite/gdb.base/gdbinit-history.exp
+++ b/gdb/testsuite/gdb.base/gdbinit-history.exp
@@ -181,7 +181,8 @@ proc test_empty_history_filename { } {
global env
global gdb_prompt
- set common_history [list "set height 0" "set width 0"]
+ set common_history [list "set height 0" "set width 0" \
+ "set build-id-verbose 0"]
set test_dir [standard_output_file history_test]
remote_exec host "mkdir -p $test_dir"
diff --git a/gdb/testsuite/gdb.base/new-ui-pending-input.exp b/gdb/testsuite/gdb.base/new-ui-pending-input.exp diff --git a/gdb/testsuite/gdb.base/new-ui-pending-input.exp b/gdb/testsuite/gdb.base/new-ui-pending-input.exp
--- a/gdb/testsuite/gdb.base/new-ui-pending-input.exp --- a/gdb/testsuite/gdb.base/new-ui-pending-input.exp
+++ b/gdb/testsuite/gdb.base/new-ui-pending-input.exp +++ b/gdb/testsuite/gdb.base/new-ui-pending-input.exp

View File

@ -175,7 +175,7 @@ diff --git a/gdb/testsuite/gdb.threads/threaded-exec.exp b/gdb/testsuite/gdb.thr
+gdb_load ${binfile_nothreads} +gdb_load ${binfile_nothreads}
-gdb_run_cmd -gdb_run_cmd
+gdb_run_cmd ${binfile_nothreads} ${binfile_threads} 0 +gdb_run_cmd [list ${binfile_nothreads} ${binfile_threads} 0]
gdb_test_multiple {} "Program exited" { gdb_test_multiple {} "Program exited" {
-re "\r\n\\\[Inferior .* exited normally\\\]\r\n$gdb_prompt $" { -re "\r\n\\\[Inferior .* exited normally\\\]\r\n$gdb_prompt $" {

View File

@ -1531,7 +1531,7 @@ diff --git a/gdb/testsuite/gdb.cp/gdb9593.cc b/gdb/testsuite/gdb.cp/gdb9593.cc
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.cp/gdb9593.cc +++ b/gdb/testsuite/gdb.cp/gdb9593.cc
@@ -0,0 +1,180 @@ @@ -0,0 +1,179 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
+ Copyright 2008, 2009 Free Software Foundation, Inc. + Copyright 2008, 2009 Free Software Foundation, Inc.
@ -1711,12 +1711,11 @@ new file mode 100644
+ { + {
+ } + }
+} +}
+
diff --git a/gdb/testsuite/gdb.cp/gdb9593.exp b/gdb/testsuite/gdb.cp/gdb9593.exp diff --git a/gdb/testsuite/gdb.cp/gdb9593.exp b/gdb/testsuite/gdb.cp/gdb9593.exp
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.cp/gdb9593.exp +++ b/gdb/testsuite/gdb.cp/gdb9593.exp
@@ -0,0 +1,182 @@ @@ -0,0 +1,189 @@
+# Copyright 2008, 2009 Free Software Foundation, Inc. +# Copyright 2008, 2009 Free Software Foundation, Inc.
+ +
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -1860,9 +1859,16 @@ new file mode 100644
+ ".*function1 ().*" \ + ".*function1 ().*" \
+ "step into finish, for until" + "step into finish, for until"
+ +
+gdb_test "until" \ +gdb_test_multiple "until" "until with no argument 1" {
+ ".*function1 ().*" \ + -re -wrap ".*function1 ().*" {
+ "until with no argument 1" + pass $gdb_test_name
+ }
+ -re -wrap ".*$hex\t80\t \}" {
+ # PR gcc/97774 - "Incorrect line info for try/catch"
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97774
+ xfail $gdb_test_name
+ }
+}
+ +
+set line [gdb_get_line_number "marker for until" $testfile.cc] +set line [gdb_get_line_number "marker for until" $testfile.cc]
+ +
@ -2272,7 +2278,7 @@ diff --git a/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp b/gdb/testsuite/gdb.dwarf
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp +++ b/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp
@@ -0,0 +1,79 @@ @@ -0,0 +1,84 @@
+# Copyright 2006 Free Software Foundation, Inc. +# Copyright 2006 Free Software Foundation, Inc.
+ +
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -2302,6 +2308,11 @@ new file mode 100644
+ return 0 + return 0
+} +}
+ +
+if {[use_gdb_stub]} {
+ untested "skipping test because of use_gdb_stub"
+ return -1
+}
+
+set testfile "dw2-stripped" +set testfile "dw2-stripped"
+set srcfile ${testfile}.c +set srcfile ${testfile}.c
+set binfile [standard_output_file ${testfile}.x] +set binfile [standard_output_file ${testfile}.x]
@ -3429,7 +3440,7 @@ diff --git a/gdb/testsuite/gdb.opt/fortran-string.exp b/gdb/testsuite/gdb.opt/fo
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.opt/fortran-string.exp +++ b/gdb/testsuite/gdb.opt/fortran-string.exp
@@ -0,0 +1,39 @@ @@ -0,0 +1,46 @@
+# Copyright 2009 Free Software Foundation, Inc. +# Copyright 2009 Free Software Foundation, Inc.
+ +
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -3466,14 +3477,21 @@ new file mode 100644
+ continue + continue
+} +}
+ +
+gdb_test "frame" ".*s='foo'.*" +gdb_test "info args" ".*s = 'foo'.*"
+gdb_test "ptype s" "type = character\\*3" +gdb_test_multiple "ptype s" "" {
+ -re -wrap "type = character \\(3\\)" {
+ pass $gdb_test_name
+ }
+ -re -wrap "type = character\\*3" {
+ pass $gdb_test_name
+ }
+}
+gdb_test "p s" "\\$\[0-9\]* = 'foo'" +gdb_test "p s" "\\$\[0-9\]* = 'foo'"
diff --git a/gdb/testsuite/gdb.opt/fortran-string.f90 b/gdb/testsuite/gdb.opt/fortran-string.f90 diff --git a/gdb/testsuite/gdb.opt/fortran-string.f90 b/gdb/testsuite/gdb.opt/fortran-string.f90
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.opt/fortran-string.f90 +++ b/gdb/testsuite/gdb.opt/fortran-string.f90
@@ -0,0 +1,28 @@ @@ -0,0 +1,29 @@
+! Copyright 2009 Free Software Foundation, Inc. +! Copyright 2009 Free Software Foundation, Inc.
+! +!
+! This program is free software; you can redistribute it and/or modify +! This program is free software; you can redistribute it and/or modify
@ -3497,6 +3515,7 @@ new file mode 100644
+ subroutine f(s) + subroutine f(s)
+ character*(*) s + character*(*) s
+ s = s + s = s
+ print *, s
+ end + end
+ +
+ program main + program main
@ -3506,7 +3525,7 @@ diff --git a/gdb/testsuite/gdb.pascal/arrays.exp b/gdb/testsuite/gdb.pascal/arra
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.pascal/arrays.exp +++ b/gdb/testsuite/gdb.pascal/arrays.exp
@@ -0,0 +1,104 @@ @@ -0,0 +1,107 @@
+# Copyright 2008, 2009 Free Software Foundation, Inc. +# Copyright 2008, 2009 Free Software Foundation, Inc.
+# +#
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -3598,11 +3617,15 @@ new file mode 100644
+ +
+if { $fpc_generates_dwarf_for_dynamic_arrays == 0} { +if { $fpc_generates_dwarf_for_dynamic_arrays == 0} {
+ setup_xfail "*-*-*" + setup_xfail "*-*-*"
+} else {
+ setup_kfail "*-*-*" pascal/26106
+} +}
+gdb_test "print DynArrStr" ".* = \\{'dstr0', 'dstr1', 'dstr2', 'dstr3', 'dstr4', 'dstr5', 'dstr6', 'dstr7', 'dstr8', 'dstr9', 'dstr10', 'dstr11', 'dstr12'\\}" "Print dynamic array of string" +gdb_test "print DynArrStr" ".* = \\{'dstr0', 'dstr1', 'dstr2', 'dstr3', 'dstr4', 'dstr5', 'dstr6', 'dstr7', 'dstr8', 'dstr9', 'dstr10', 'dstr11', 'dstr12'\\}" "Print dynamic array of string"
+ +
+if { $fpc_generates_dwarf_for_dynamic_arrays == 0} { +if { $fpc_generates_dwarf_for_dynamic_arrays == 0} {
+ setup_xfail "*-*-*" + setup_xfail "*-*-*"
+} else {
+ setup_kfail "*-*-*" pascal/26855
+} +}
+gdb_test "print StatArrStr" ".* = \\{'str0', 'str1', 'str2', 'str3', 'str4', 'str5', 'str6', 'str7', 'str8', 'str9', 'str10', 'str11', 'str12'\\}" "Print static array of string" +gdb_test "print StatArrStr" ".* = \\{'str0', 'str1', 'str2', 'str3', 'str4', 'str5', 'str6', 'str7', 'str8', 'str9', 'str10', 'str11', 'str12'\\}" "Print static array of string"
+ +
@ -3610,7 +3633,6 @@ new file mode 100644
+ setup_xfail "*-*-*" + setup_xfail "*-*-*"
+} +}
+gdb_test "print DynArrChar" ".* = 'abcdefghijklm'" "Print dynamic array of char" +gdb_test "print DynArrChar" ".* = 'abcdefghijklm'" "Print dynamic array of char"
+
diff --git a/gdb/testsuite/gdb.pascal/arrays.pas b/gdb/testsuite/gdb.pascal/arrays.pas diff --git a/gdb/testsuite/gdb.pascal/arrays.pas b/gdb/testsuite/gdb.pascal/arrays.pas
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null

View File

@ -43,3 +43,30 @@ diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c
} }
return success; return success;
diff --git a/gdb/testsuite/gdb.python/py-framefilter.exp b/gdb/testsuite/gdb.python/py-framefilter.exp
--- a/gdb/testsuite/gdb.python/py-framefilter.exp
+++ b/gdb/testsuite/gdb.python/py-framefilter.exp
@@ -277,9 +277,20 @@ gdb_test_multiple "bt 1" $test {
# Now verify that we can see a quit.
gdb_test_no_output "python name_error = KeyboardInterrupt" \
"Change ErrorFilter to throw KeyboardInterrupt"
-gdb_test "bt 1" "Quit" "bt 1 with KeyboardInterrupt"
-
-
+set re1 [multi_line \
+ "Python Exception <class 'KeyboardInterrupt'> whoops: " \
+ "\\(More stack frames follow\.\.\.\\)"]
+set re2 [multi_line \
+ "Python Exception <type 'exceptions.KeyboardInterrupt'> whoops: " \
+ "\\(More stack frames follow\.\.\.\\)"]
+gdb_test_multiple "bt 1" "" {
+ -re -wrap $re1 {
+ pass $gdb_test_name
+ }
+ -re -wrap $re2 {
+ pass $gdb_test_name
+ }
+}
# Test with no debuginfo
# We cannot use prepare_for_testing as we have to set the safe-patch

View File

@ -38,4 +38,4 @@ new file mode 100644
+# Skip all tests if Python scripting is not enabled. +# Skip all tests if Python scripting is not enabled.
+if { [skip_python_tests] } { continue } +if { [skip_python_tests] } { continue }
+ +
+gdb_test "python print gdb.solib_name(-1)" "None" "gdb.solib_name exists" +gdb_test "python print (gdb.solib_name(-1))" "None" "gdb.solib_name exists"

View File

@ -159,7 +159,7 @@ diff --git a/gdb/python/lib/gdb/backtrace.py b/gdb/python/lib/gdb/backtrace.py
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/python/lib/gdb/backtrace.py +++ b/gdb/python/lib/gdb/backtrace.py
@@ -0,0 +1,42 @@ @@ -0,0 +1,41 @@
+# Filtering backtrace. +# Filtering backtrace.
+ +
+# Copyright (C) 2008, 2011 Free Software Foundation, Inc. +# Copyright (C) 2008, 2011 Free Software Foundation, Inc.
@ -201,12 +201,11 @@ new file mode 100644
+ if old_frame_filter is None: + if old_frame_filter is None:
+ return iter + return iter
+ return old_frame_filter (iter) + return old_frame_filter (iter)
+
diff --git a/gdb/python/lib/gdb/command/backtrace.py b/gdb/python/lib/gdb/command/backtrace.py diff --git a/gdb/python/lib/gdb/command/backtrace.py b/gdb/python/lib/gdb/command/backtrace.py
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/python/lib/gdb/command/backtrace.py +++ b/gdb/python/lib/gdb/command/backtrace.py
@@ -0,0 +1,106 @@ @@ -0,0 +1,112 @@
+# New backtrace command. +# New backtrace command.
+ +
+# Copyright (C) 2008, 2009, 2011 Free Software Foundation, Inc. +# Copyright (C) 2008, 2009, 2011 Free Software Foundation, Inc.
@ -290,12 +289,18 @@ new file mode 100644
+ # FIXME: provide option to start at selected frame + # FIXME: provide option to start at selected frame
+ # However, should still number as if starting from newest + # However, should still number as if starting from newest
+ newest_frame = gdb.newest_frame() + newest_frame = gdb.newest_frame()
+ if sys.version_info.major >= 3:
+ iter = map (FrameWrapper, FrameIterator (newest_frame))
+ else:
+ iter = itertools.imap (FrameWrapper, + iter = itertools.imap (FrameWrapper,
+ FrameIterator (newest_frame)) + FrameIterator (newest_frame))
+ if filter: + if filter:
+ iter = gdb.backtrace.create_frame_filter (iter) + iter = gdb.backtrace.create_frame_filter (iter)
+ +
+ # Now wrap in an iterator that numbers the frames. + # Now wrap in an iterator that numbers the frames.
+ if sys.version_info.major >= 3:
+ iter = zip (itertools.count (0), iter)
+ else:
+ iter = itertools.izip (itertools.count (0), iter) + iter = itertools.izip (itertools.count (0), iter)
+ +
+ # Reverse if the user wanted that. + # Reverse if the user wanted that.
@ -313,3 +318,17 @@ new file mode 100644
+ pair[1].describe (sys.stdout, full) + pair[1].describe (sys.stdout, full)
+ +
+FilteringBacktrace() +FilteringBacktrace()
diff --git a/gdb/testsuite/gdb.base/help.exp b/gdb/testsuite/gdb.base/help.exp
--- a/gdb/testsuite/gdb.base/help.exp
+++ b/gdb/testsuite/gdb.base/help.exp
@@ -129,7 +129,9 @@ gdb_test "apropos apropos" "apropos -- Search for commands matching a REGEXP.*"
# Test apropos for commands having aliases.
gdb_test "apropos Print backtrace of all stack frames, or innermost COUNT frames\." \
- "backtrace, where, bt -- Print backtrace of all stack frames, or innermost COUNT frames\."
+ [multi_line \
+ "backtrace, where, bt -- Print backtrace of all stack frames, or innermost COUNT frames\." \
+ "new-backtrace -- Print backtrace of all stack frames, or innermost COUNT frames\."]
# Test help for commands having aliases.
gdb_test "help bt" "backtrace, where, bt\[\r\n\]+Print backtrace of all stack frames, or innermost COUNT frames\..*"

View File

@ -10,7 +10,7 @@ diff --git a/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp b/gdb/testsu
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp +++ b/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
@@ -0,0 +1,115 @@ @@ -0,0 +1,119 @@
+# Copyright (C) 2012 Free Software Foundation, Inc. +# Copyright (C) 2012 Free Software Foundation, Inc.
+ +
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -56,6 +56,10 @@ new file mode 100644
+ untested "$test (no DWARF)" + untested "$test (no DWARF)"
+ return 0 + return 0
+ } + }
+ -re "type = <unknown return type> \\(\\)\r\n$gdb_prompt $" {
+ untested "$test (no DWARF)"
+ return 0
+ }
+} +}
+ +
+set addr "" +set addr ""
@ -124,5 +128,5 @@ new file mode 100644
+ } + }
+} +}
+ +
+gdb_test {print strstr("abc","b")} { = 0x[0-9a-f]+ "bc"} +gdb_test {print (char *)strstr("abc","b")} { = 0x[0-9a-f]+ "bc"}
+gdb_test {print strstr("def","e")} { = 0x[0-9a-f]+ "ef"} +gdb_test {print (char *)strstr("def","e")} { = 0x[0-9a-f]+ "ef"}

View File

@ -150,7 +150,7 @@ diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
diff --git a/gdb/testsuite/gdb.threads/attach-stopped.exp b/gdb/testsuite/gdb.threads/attach-stopped.exp diff --git a/gdb/testsuite/gdb.threads/attach-stopped.exp b/gdb/testsuite/gdb.threads/attach-stopped.exp
--- a/gdb/testsuite/gdb.threads/attach-stopped.exp --- a/gdb/testsuite/gdb.threads/attach-stopped.exp
+++ b/gdb/testsuite/gdb.threads/attach-stopped.exp +++ b/gdb/testsuite/gdb.threads/attach-stopped.exp
@@ -56,7 +56,65 @@ proc corefunc { threadtype } { @@ -56,7 +56,73 @@ proc corefunc { threadtype } {
gdb_reinitialize_dir $srcdir/$subdir gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile} gdb_load ${binfile}
@ -162,10 +162,10 @@ diff --git a/gdb/testsuite/gdb.threads/attach-stopped.exp b/gdb/testsuite/gdb.th
+ set test "$threadtype: set file, before attach1 to stopped process" + set test "$threadtype: set file, before attach1 to stopped process"
+ gdb_test_multiple "file $binfile" "$test" { + gdb_test_multiple "file $binfile" "$test" {
+ -re "Load new symbol table from.*y or n. $" { + -re "Load new symbol table from.*y or n. $" {
+ gdb_test "y" "Reading symbols from $escapedbinfile\.\.\.*done." \ + gdb_test "y" "Reading symbols from $escapedbinfile\.\.\.*" \
+ "$test (re-read)" + "$test (re-read)"
+ } + }
+ -re "Reading symbols from $escapedbinfile\.\.\.*done.*$gdb_prompt $" { + -re "Reading symbols from $escapedbinfile\.\.\.*$gdb_prompt $" {
+ pass "$test" + pass "$test"
+ } + }
+ } + }
@ -192,15 +192,23 @@ diff --git a/gdb/testsuite/gdb.threads/attach-stopped.exp b/gdb/testsuite/gdb.th
+ sleep 2 + sleep 2
+ +
+ if [catch {open /proc/${testpid}/status r} fileid] { + if [catch {open /proc/${testpid}/status r} fileid] {
+ set line2 "NOTFOUND" + set line "NOTFOUND"
+ } else { + } else {
+ gets $fileid line1; + while { 1 } {
+ gets $fileid line2; + if { [gets $fileid line] < 0 } {
+ set line "EOF"
+ break
+ }
+ if {[string match "State:*" $line]} {
+ break
+ }
+ }
+ close $fileid; + close $fileid;
+ } + }
+ +
+ set test "$threadtype: attach1, exit leaves process stopped" + set test "$threadtype: attach1, exit leaves process stopped"
+ if {[string match "*(stopped)*" $line2]} { + verbose -log "line: $line"
+ if {[string match "*(stopped)*" $line]} {
+ pass $test + pass $test
+ } else { + } else {
+ fail $test + fail $test

View File

@ -12,7 +12,7 @@ diff --git a/gdb/testsuite/gdb.cp/pr11734-1.cc b/gdb/testsuite/gdb.cp/pr11734-1.
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.cp/pr11734-1.cc +++ b/gdb/testsuite/gdb.cp/pr11734-1.cc
@@ -0,0 +1,30 @@ @@ -0,0 +1,29 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
+ Copyright 2010 Free Software Foundation, Inc. + Copyright 2010 Free Software Foundation, Inc.
@ -42,12 +42,11 @@ new file mode 100644
+ p->foo (); + p->foo ();
+ return 0; + return 0;
+} +}
+
diff --git a/gdb/testsuite/gdb.cp/pr11734-2.cc b/gdb/testsuite/gdb.cp/pr11734-2.cc diff --git a/gdb/testsuite/gdb.cp/pr11734-2.cc b/gdb/testsuite/gdb.cp/pr11734-2.cc
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.cp/pr11734-2.cc +++ b/gdb/testsuite/gdb.cp/pr11734-2.cc
@@ -0,0 +1,27 @@ @@ -0,0 +1,26 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
+ Copyright 2010 Free Software Foundation, Inc. + Copyright 2010 Free Software Foundation, Inc.
@ -74,12 +73,11 @@ new file mode 100644
+pr11734::foo(void) +pr11734::foo(void)
+{ +{
+} +}
+
diff --git a/gdb/testsuite/gdb.cp/pr11734-3.cc b/gdb/testsuite/gdb.cp/pr11734-3.cc diff --git a/gdb/testsuite/gdb.cp/pr11734-3.cc b/gdb/testsuite/gdb.cp/pr11734-3.cc
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.cp/pr11734-3.cc +++ b/gdb/testsuite/gdb.cp/pr11734-3.cc
@@ -0,0 +1,27 @@ @@ -0,0 +1,26 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
+ Copyright 2010 Free Software Foundation, Inc. + Copyright 2010 Free Software Foundation, Inc.
@ -106,12 +104,11 @@ new file mode 100644
+pr11734::foo (int a) +pr11734::foo (int a)
+{ +{
+} +}
+
diff --git a/gdb/testsuite/gdb.cp/pr11734-4.cc b/gdb/testsuite/gdb.cp/pr11734-4.cc diff --git a/gdb/testsuite/gdb.cp/pr11734-4.cc b/gdb/testsuite/gdb.cp/pr11734-4.cc
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.cp/pr11734-4.cc +++ b/gdb/testsuite/gdb.cp/pr11734-4.cc
@@ -0,0 +1,27 @@ @@ -0,0 +1,26 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
+ Copyright 2010 Free Software Foundation, Inc. + Copyright 2010 Free Software Foundation, Inc.
@ -138,7 +135,6 @@ new file mode 100644
+pr11734::foo (char *a) +pr11734::foo (char *a)
+{ +{
+} +}
+
diff --git a/gdb/testsuite/gdb.cp/pr11734.exp b/gdb/testsuite/gdb.cp/pr11734.exp diff --git a/gdb/testsuite/gdb.cp/pr11734.exp b/gdb/testsuite/gdb.cp/pr11734.exp
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
@ -203,7 +199,7 @@ diff --git a/gdb/testsuite/gdb.cp/pr11734.h b/gdb/testsuite/gdb.cp/pr11734.h
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.cp/pr11734.h +++ b/gdb/testsuite/gdb.cp/pr11734.h
@@ -0,0 +1,28 @@ @@ -0,0 +1,27 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
+ Copyright 2010 Free Software Foundation, Inc. + Copyright 2010 Free Software Foundation, Inc.
@ -231,4 +227,3 @@ new file mode 100644
+ void foo (int); + void foo (int);
+ void foo (char *); + void foo (char *);
+}; +};
+

View File

@ -81,7 +81,7 @@ diff --git a/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.c b/gdb/tes
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.c +++ b/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.c
@@ -0,0 +1,124 @@ @@ -0,0 +1,125 @@
+/* Testcase for recursive dlopen calls. +/* Testcase for recursive dlopen calls.
+ +
+ Copyright (C) 2014 Free Software Foundation, Inc. + Copyright (C) 2014 Free Software Foundation, Inc.
@ -178,6 +178,7 @@ new file mode 100644
+ /* Called recursively. */ + /* Called recursively. */
+ result = malloc (size); + result = malloc (size);
+ /* Restore new hooks. */ + /* Restore new hooks. */
+ old_malloc_hook = __malloc_hook;
+ __malloc_hook = custom_malloc_hook; + __malloc_hook = custom_malloc_hook;
+ return result; + return result;
+} +}
@ -210,7 +211,7 @@ diff --git a/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.exp b/gdb/t
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.exp +++ b/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.exp
@@ -0,0 +1,137 @@ @@ -0,0 +1,157 @@
+# Copyright 2014 Free Software Foundation, Inc. +# Copyright 2014 Free Software Foundation, Inc.
+# +#
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -226,7 +227,11 @@ new file mode 100644
+# You should have received a copy of the GNU General Public License +# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <http://www.gnu.org/licenses/>.
+ +
+if { [skip_shlib_tests] } { +if {[skip_shlib_tests]} {
+ untested "skipping shlib tests"
+ return 0
+} elseif {[use_gdb_stub]} {
+ untested "skipping tests because of stub"
+ return 0 + return 0
+} +}
+ +
@ -262,6 +267,21 @@ new file mode 100644
+ return -1 + return -1
+} +}
+ +
+set supported 0
+gdb_test_multiple "run" "initial trial run" {
+ -re -wrap "exited normally.*" {
+ set supported 1
+ pass $gdb_test_name
+ }
+ -re -wrap "exited with code.*" {
+ untested "failed at $gdb_test_name"
+ }
+}
+
+if { $supported == 0 } {
+ return -1
+}
+
+proc do_test { has_libfoo has_libbar } { +proc do_test { has_libfoo has_libbar } {
+ global hex binfile_lib2 binfile_lib1 gdb_prompt + global hex binfile_lib2 binfile_lib1 gdb_prompt
+ set libbar_match "[string_to_regexp $binfile_lib2]" + set libbar_match "[string_to_regexp $binfile_lib2]"
@ -314,6 +334,7 @@ new file mode 100644
+ gdb_test_no_output "set stop-on-solib-events 1" "setting stop-on-solib-events" + gdb_test_no_output "set stop-on-solib-events 1" "setting stop-on-solib-events"
+ +
+ gdb_run_cmd + gdb_run_cmd
+ gdb_test "" "Wait for first prompt"
+ foreach l $solib_event_order { + foreach l $solib_event_order {
+ incr pass + incr pass
+ with_test_prefix "pass #$pass" { + with_test_prefix "pass #$pass" {

View File

@ -0,0 +1,58 @@
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
From: Kevin Buettner <kevinb@redhat.com>
Date: Fri, 19 Mar 2021 11:07:11 -0700
Subject: gdb-rhbz1941080-fix-gdbserver-hang.patch
;; Backport change which fixes gdbserver testing hang on f34 and rawhide.
Fix potential hang during gdbserver testing
We're currently seeing testing of native-extended-gdbserver hang while
testing the x86_64 architecture on both Fedora 34 and Fedora Rawhide.
The test responsible for the hang is gdb.threads/fork-plus-threads.exp.
While there is clearly a problem/bug with this test on F34 and
Rawhide, it's also the case that testing should not hang. This commit
prevents the hang by waiting with the "-nowait" flag in
close_gdbserver.
The -nowait flag is also used in the kill_wait_spawned_process proc in
gdb/testsuite/lib/gdb.exp, so there is precedent for doing this.
There are also 15 other uses of "wait -i" scattered throughout the
test suite. While it's tempting to change these to also use the
-nowait flag, I think it might be safer to defer doing so until we
actually see a problem.
I've tested this patch on Fedora 32, 33, 34, and Rawhide. Results are
comparable on Fedora 32 and 33. On Fedora 34 and Rawhide, with this
commit in place, testing completes when the target_board is
native-extended-gdbserver. On those OSes, when not using this commit,
testing usually hangs due to a problem with
gdb.threads/fork-plus-threads.exp. I've also tested on all of the
mentioned OSes with target_board=native-gdbserver; for that testing,
I achieved comparable results over a number of runs. (Unfortunately
results are rarely identical due to racy tests.)
gdb/testsuite/ChangeLog:
* lib/gdbserver-support.exp (gdbserver_exit): Use the
"-nowait" flag when waiting for gdbserver to exit.
diff --git a/gdb/testsuite/lib/gdbserver-support.exp b/gdb/testsuite/lib/gdbserver-support.exp
--- a/gdb/testsuite/lib/gdbserver-support.exp
+++ b/gdb/testsuite/lib/gdbserver-support.exp
@@ -418,7 +418,12 @@ proc close_gdbserver {} {
verbose "Quitting GDBserver"
catch "close -i $server_spawn_id"
- catch "wait -i $server_spawn_id"
+
+ # If gdbserver misbehaves, and ignores the close, waiting for it
+ # without the -nowait flag will cause testing to hang. Passing
+ # -nowait makes expect tell Tcl to wait for the process in the
+ # background.
+ catch "wait -nowait -i $server_spawn_id"
unset server_spawn_id
}

View File

@ -136,7 +136,7 @@ new file mode 100644
+set testfile amd64-ivy-bridge +set testfile amd64-ivy-bridge
+set test compilation +set test compilation
+if [prepare_for_testing ${testfile}.exp ${testfile}.x ${testfile}.S [list debug "additional_flags=-m64 -nostdlib"]] { +if [prepare_for_testing ${testfile}.exp ${testfile}.x ${testfile}.S [list debug "additional_flags=-m64 -nostdlib"]] {
+ fail $test + unsupported $test
+ return -1 + return -1
+} +}
+pass $test +pass $test
@ -288,7 +288,7 @@ diff --git a/gdb/testsuite/gdb.arch/i386-ivy-bridge.S b/gdb/testsuite/gdb.arch/i
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.arch/i386-ivy-bridge.S +++ b/gdb/testsuite/gdb.arch/i386-ivy-bridge.S
@@ -0,0 +1,67 @@ @@ -0,0 +1,66 @@
+/* Copyright 2011 Free Software Foundation, Inc. +/* Copyright 2011 Free Software Foundation, Inc.
+ +
+ This program is free software; you can redistribute it and/or modify + This program is free software; you can redistribute it and/or modify
@ -355,7 +355,6 @@ new file mode 100644
+ rdgsbase ebx + rdgsbase ebx
+ wrfsbase ebx + wrfsbase ebx
+ wrgsbase ebx + wrgsbase ebx
+
diff --git a/gdb/testsuite/gdb.arch/i386-ivy-bridge.exp b/gdb/testsuite/gdb.arch/i386-ivy-bridge.exp diff --git a/gdb/testsuite/gdb.arch/i386-ivy-bridge.exp b/gdb/testsuite/gdb.arch/i386-ivy-bridge.exp
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null

View File

@ -37,7 +37,7 @@ Version: 10.1
# The release always contains a leading reserved number, start it at 1. # 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. # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
Release: 10%{?dist} Release: 13%{?dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and LGPLv3+ and BSD and Public Domain and GFDL License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and LGPLv3+ and BSD and Public Domain and GFDL
# Do not provide URL for snapshots as the file lasts there only for 2 days. # Do not provide URL for snapshots as the file lasts there only for 2 days.
@ -588,8 +588,11 @@ COMMON_GDB_CONFIGURE_FLAGS="\
--with-lzma \ --with-lzma \
%else %else
--without-lzma \ --without-lzma \
%endif \ %endif
--with-debuginfod --with-debuginfod \
%if 0%{?rhel:1}
--disable-libctf
%endif
" "
# Identify the build directory with the version of gdb as well as the # Identify the build directory with the version of gdb as well as the
@ -620,10 +623,6 @@ GDB_MINIMAL_CONFIGURE_FLAGS="\
export CFLAGS="$RPM_OPT_FLAGS %{?_with_asan:-fsanitize=address}" export CFLAGS="$RPM_OPT_FLAGS %{?_with_asan:-fsanitize=address}"
export LDFLAGS="%{?__global_ldflags} %{?_with_asan:-fsanitize=address}" export LDFLAGS="%{?__global_ldflags} %{?_with_asan:-fsanitize=address}"
# Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1912913
# Take this out when fixed in gcc/g++.
CFLAGS="$CFLAGS -Wno-stringop-overread"
export CXXFLAGS="$CFLAGS" export CXXFLAGS="$CFLAGS"
# --htmldir and --pdfdir are not used as they are used from %{gdb_build}. # --htmldir and --pdfdir are not used as they are used from %{gdb_build}.
@ -655,10 +654,6 @@ cd %{gdb_build}$fprofile
export CFLAGS="$RPM_OPT_FLAGS %{?_with_asan:-fsanitize=address}" export CFLAGS="$RPM_OPT_FLAGS %{?_with_asan:-fsanitize=address}"
export LDFLAGS="%{?__global_ldflags} %{?_with_asan:-fsanitize=address}" export LDFLAGS="%{?__global_ldflags} %{?_with_asan:-fsanitize=address}"
# Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1912913
# Take this out when fixed in gcc/g++.
CFLAGS="$CFLAGS -Wno-stringop-overread"
%if 0%{!?rhel:1} || 0%{?rhel} > 7 %if 0%{!?rhel:1} || 0%{?rhel} > 7
CFLAGS="$CFLAGS -DDNF_DEBUGINFO_INSTALL" CFLAGS="$CFLAGS -DDNF_DEBUGINFO_INSTALL"
%endif %endif
@ -1195,6 +1190,18 @@ fi
%endif %endif
%changelog %changelog
* Tue Mar 30 2021 Jonathan Wakely <jwakely@redhat.com>
- Rebuilt for removed libstdc++ symbol (#1937698)
* Tue Mar 23 2021 Kevin Buettner <kevinb@redhat.com>
- Remove spec file workaround for RHBZ 1912913.
* Fri Mar 19 2021 Kevin Buettner <kevinb@redhat.com> - 10.1-12
- Fix potential hang during gdbserver testing (RHBZ 1941080, Kevin Buettner).
* Thu Mar 18 2021 Keith Seitz <keiths@redhat.com> - 10.1-11
- Disable libctf on RHEL (RHBZ 1935517).
* Thu Mar 11 2021 Kevin Buettner <kevinb@redhat.com> - 10.1-10 * Thu Mar 11 2021 Kevin Buettner <kevinb@redhat.com> - 10.1-10
- Update libipt to version 2.0.4. - Update libipt to version 2.0.4.

View File

@ -34,6 +34,8 @@ test "$1" = "-h" && usage
uncommit=0 uncommit=0
if [ "$1" = "-u" ]; then if [ "$1" = "-u" ]; then
command -v stg > /dev/null 2>&1 \
|| die "Cannot find stg. Is stgit installed?"
uncommit=1 uncommit=1
shift shift
fi fi
@ -46,7 +48,6 @@ fi
test -f _git_upstream_commit || die "Cannot find _git_upstream_commit file." test -f _git_upstream_commit || die "Cannot find _git_upstream_commit file."
test -f _patch_order || die "Cannot find _patch_order file." test -f _patch_order || die "Cannot find _patch_order file."
command -v stg > /dev/null 2>&1 || die "Cannot find stg. Is stgit installed?"
last_ancestor_commit=`cat _git_upstream_commit` last_ancestor_commit=`cat _git_upstream_commit`

View File

@ -0,0 +1,65 @@
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
From: Keith Seitz <keiths@redhat.com>
Date: Tue, 23 Mar 2021 11:17:28 -0700
Subject: process_psymtab_comp_unit-type-unit.patch
;; Backport "Handle DW_TAG_type_unit in process_symtab_unit"
;; (Tom de Vries)
commit e77b0004dd114d6ddf3bb92b521b2854341f3f85
Author: Tom de Vries <tdevries@suse.de>
Date: Fri Feb 5 17:47:07 2021 +0100
[gdb/symtab] Handle DW_TAG_type_unit in process_psymtab_comp_unit
When running test-case gdb.cp/cpexprs-debug-types.exp with target board
unix/gdb:debug_flags=-gdwarf-5, I run into:
...
(gdb) file cpexprs-debug-types^M
Reading symbols from cpexprs-debug-types...^M
ERROR: Couldn't load cpexprs-debug-types into GDB (eof).
ERROR: Couldn't send delete breakpoints to GDB.
ERROR: GDB process no longer exists
GDB process exited with wait status 23054 exp9 0 0 CHILDKILLED SIGABRT SIGABRT
...
We're running into this abort in process_psymtab_comp_unit:
...
switch (reader.comp_unit_die->tag)
{
case DW_TAG_compile_unit:
this_cu->unit_type = DW_UT_compile;
break;
case DW_TAG_partial_unit:
this_cu->unit_type = DW_UT_partial;
break;
default:
abort ();
}
...
because reader.comp_unit_die->tag == DW_TAG_type_unit.
Fix this by adding a DW_TAG_type_unit case.
Tested on x86_64-linux.
gdb/ChangeLog:
2021-02-05 Tom de Vries <tdevries@suse.de>
PR symtab/27333
* dwarf2/read.c (process_psymtab_comp_unit): Handle DW_TAG_type_unit.
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -7715,6 +7715,9 @@ process_psymtab_comp_unit (dwarf2_per_cu_data *this_cu,
case DW_TAG_partial_unit:
this_cu->unit_type = DW_UT_partial;
break;
+ case DW_TAG_type_unit:
+ this_cu->unit_type = DW_UT_type;
+ break;
default:
abort ();
}

View File

@ -0,0 +1,52 @@
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
From: Keith Seitz <keiths@redhat.com>
Date: Tue, 23 Mar 2021 09:32:37 -0700
Subject: testing-custom-inputrc.patch
;; Backport "Disable bracketed paste mode in GDB tests"
;; (Tom Tromey)
commit 1af4c9c4209c3478224f18dfb79dc09567b96705
Author: Tom Tromey <tom@tromey.com>
Date: Sat Jan 23 08:52:45 2021 -0700
Disable bracketed paste mode in GDB tests
I have a patch to import GNU readline 8.1 into GDB. However, when
running the tests, there were a number of failures due to "bracketed
paste mode". This is a terminal feature that readline 8.1 enables by
default.
The simplest way to work around this was to always make a ".inputrc"
for GDB tests that will tell readline to disable brackted paste mode.
gdb/testsuite/ChangeLog
2021-01-23 Tom Tromey <tom@tromey.com>
* lib/gdb.exp (default_gdb_init): Set INPUTRC to a cached file.
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -5084,13 +5084,14 @@ proc default_gdb_init { test_file_name } {
setenv LC_CTYPE C
setenv LANG C
- # Don't let a .inputrc file or an existing setting of INPUTRC mess up
- # the test results. Even if /dev/null doesn't exist on the particular
- # platform, the readline library will use the default setting just by
- # failing to open the file. OTOH, opening /dev/null successfully will
- # also result in the default settings being used since nothing will be
- # read from this file.
- setenv INPUTRC "/dev/null"
+ # Don't let a .inputrc file or an existing setting of INPUTRC mess
+ # up the test results. Certain tests (style tests and TUI tests)
+ # want to set the terminal to a non-"dumb" value, and for those we
+ # want to disable bracketed paste mode. Versions of Readline
+ # before 8.0 will not understand this and will issue a warning.
+ # We tried using a $if to guard it, but Readline 8.1 had a bug in
+ # its version-comparison code that prevented this for working.
+ setenv INPUTRC [cached_file inputrc "set enable-bracketed-paste off"]
# This disables style output, which would interfere with many
# tests.