- Don't check for stgit unless needed w/generate-git-repo-from-patches.sh.
- Fix all patches wrt git diff --check. - Update some tests (Tom de Vries) - Fix ERRORs w/unsupported tests on native-gdbserver targets. - Backport "Disable bracketed paste mode in GDB tests" (Tom Tromey) - Backport "Handle DW_TAG_type_unit in process_symtab_unit" (Tom de Vries)
This commit is contained in:
parent
db92bd60db
commit
2f55d67d0a
@ -416,3 +416,11 @@ 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
|
||||
|
||||
|
@ -101,3 +101,5 @@
|
||||
%patch101 -p1
|
||||
%patch102 -p1
|
||||
%patch103 -p1
|
||||
%patch104 -p1
|
||||
%patch105 -p1
|
||||
|
@ -101,3 +101,5 @@ gdb-rhbz1932645-aarch64-ptrace-header-order.patch
|
||||
gdb-rhbz1909902-frame_id_p-assert-1.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
|
||||
|
@ -40,7 +40,7 @@ diff --git a/gdb/testsuite/gdb.base/attach-see-vdso.exp b/gdb/testsuite/gdb.base
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.base/attach-see-vdso.exp
|
||||
@@ -0,0 +1,72 @@
|
||||
@@ -0,0 +1,77 @@
|
||||
+# Copyright 2007
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
@ -64,6 +64,11 @@ new file mode 100644
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+if {[use_gdb_stub]} {
|
||||
+ untested "skipping test because of use_gdb_stub"
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+set testfile "attach-see-vdso"
|
||||
+set srcfile ${testfile}.c
|
||||
+set binfile [standard_output_file ${testfile}]
|
||||
|
@ -81,7 +81,7 @@ new file mode 100644
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# 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:
|
||||
+# bug-gdb@prep.ai.mit.edu
|
||||
|
@ -46,7 +46,7 @@ diff --git a/gdb/testsuite/gdb.base/attach-32.exp b/gdb/testsuite/gdb.base/attac
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.base/attach-32.exp
|
||||
@@ -0,0 +1,245 @@
|
||||
@@ -0,0 +1,246 @@
|
||||
+# Copyright 2005 Free Software Foundation, Inc.
|
||||
+
|
||||
+# 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
|
||||
+if [is_remote target] then {
|
||||
+ return 0
|
||||
+if {[use_gdb_stub]} {
|
||||
+ untested "skipping test because of use_gdb_stub"
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+set testfile "attach-32"
|
||||
|
@ -17,7 +17,7 @@ diff --git a/gdb/testsuite/gdb.cp/b146835.cc b/gdb/testsuite/gdb.cp/b146835.cc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.cp/b146835.cc
|
||||
@@ -0,0 +1,32 @@
|
||||
@@ -0,0 +1,31 @@
|
||||
+#include "b146835.h"
|
||||
+#include <iostream>
|
||||
+
|
||||
@ -49,7 +49,6 @@ new file mode 100644
|
||||
+ F f;
|
||||
+ f.foo();
|
||||
+}
|
||||
+
|
||||
diff --git a/gdb/testsuite/gdb.cp/b146835.exp b/gdb/testsuite/gdb.cp/b146835.exp
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
|
@ -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
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.base/move-dir.c
|
||||
@@ -0,0 +1,10 @@
|
||||
@@ -0,0 +1,9 @@
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include "move-dir.h"
|
||||
@ -26,7 +26,6 @@ new file mode 100644
|
||||
+ printf ("%s\n", hw);;
|
||||
+ other();
|
||||
+}
|
||||
+
|
||||
diff --git a/gdb/testsuite/gdb.base/move-dir.exp b/gdb/testsuite/gdb.base/move-dir.exp
|
||||
new file mode 100644
|
||||
--- /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
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.base/move-dir.h
|
||||
@@ -0,0 +1,7 @@
|
||||
@@ -0,0 +1,6 @@
|
||||
+#include <stdlib.h>
|
||||
+
|
||||
+void other() {
|
||||
+ const char* ostring = "other";
|
||||
+ printf ("%s\n", ostring);;
|
||||
+}
|
||||
+
|
||||
|
@ -186,13 +186,13 @@ new file mode 100644
|
||||
+ -re "Load new symbol table from.*y or n.*$" {
|
||||
+ send_gdb "y\n"
|
||||
+ gdb_expect {
|
||||
+ -re "Reading symbols from $escapedbinfile\.\.\.*done.*$gdb_prompt $"\
|
||||
+ -re "Reading symbols from $escapedbinfile\.\.\.*$gdb_prompt $"\
|
||||
+ {pass "(re)set file, before attach1"}
|
||||
+ -re "$gdb_prompt $" {fail "(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"}
|
||||
+ -re "$gdb_prompt $" {fail "set file, before attach1"}
|
||||
+ timeout {fail "(timeout) set file, before attach1"}
|
||||
@ -958,7 +958,7 @@ new file mode 100644
|
||||
+
|
||||
+send_gdb "catch\n"
|
||||
+gdb_expect {
|
||||
+ -re "Catch requires an event name.*$gdb_prompt $"\
|
||||
+ -re "List of catch subcommands:.*$gdb_prompt $"\
|
||||
+ {pass "catch requires an event name"}
|
||||
+ -re "$gdb_prompt $"\
|
||||
+ {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
|
||||
--- /dev/null
|
||||
+++ 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
|
||||
+# 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 } {
|
||||
+ # 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"
|
||||
+ return 0
|
||||
+}
|
||||
@ -1757,13 +1756,13 @@ new file mode 100644
|
||||
+
|
||||
+gdb_exit
|
||||
+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 timeout [expr "$timeout + 60"]
|
||||
+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 {
|
||||
+ -re "Couldn't find .* registers in core file.*$gdb_prompt $" {
|
||||
+ fail "args: -core=corefile (couldn't find regs)"
|
||||
@ -1790,11 +1789,11 @@ new file mode 100644
|
||||
+close;
|
||||
+
|
||||
+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 {
|
||||
+ -re "Core was generated by .*coremaker.*\r\n\#0 .*\(\).*\r\n$gdb_prompt $" {
|
||||
+ 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
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.pie/coremaker.c
|
||||
@@ -0,0 +1,142 @@
|
||||
@@ -0,0 +1,141 @@
|
||||
+/* Copyright 1992, 1993, 1994, 1995, 1996, 1999
|
||||
+ Free Software Foundation, Inc.
|
||||
+
|
||||
@ -2024,4 +2023,3 @@ new file mode 100644
|
||||
+ func1 ();
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
|
@ -54,7 +54,7 @@ diff --git a/gdb/testsuite/gdb.threads/watchthreads-threaded.c b/gdb/testsuite/g
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ 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.
|
||||
+
|
||||
+ Copyright 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
@ -120,7 +120,6 @@ new file mode 100644
|
||||
+
|
||||
+ pthread_exit(NULL);
|
||||
+}
|
||||
+
|
||||
diff --git a/gdb/testsuite/gdb.threads/watchthreads-threaded.exp b/gdb/testsuite/gdb.threads/watchthreads-threaded.exp
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
@ -213,9 +212,9 @@ new file mode 100644
|
||||
+ { 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 $"
|
||||
+ { 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 }
|
||||
+ -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 }
|
||||
+ }
|
||||
+ # If we fail above, don't bother continuing loop
|
||||
|
@ -45,7 +45,7 @@ diff --git a/gdb/testsuite/gdb.base/step-over-trampoline.exp b/gdb/testsuite/gdb
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.base/step-over-trampoline.exp
|
||||
@@ -0,0 +1,54 @@
|
||||
@@ -0,0 +1,59 @@
|
||||
+# Copyright 2006 Free Software Foundation, Inc.
|
||||
+
|
||||
+# 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
|
||||
+# 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 {
|
||||
+ strace $tracelevel
|
||||
+}
|
||||
|
@ -10,7 +10,7 @@ diff --git a/gdb/testsuite/gdb.base/tracefork-zombie.exp b/gdb/testsuite/gdb.bas
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.base/tracefork-zombie.exp
|
||||
@@ -0,0 +1,75 @@
|
||||
@@ -0,0 +1,76 @@
|
||||
+# Copyright 2007 Free Software Foundation, Inc.
|
||||
+
|
||||
+# 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. */
|
||||
+
|
||||
+# are we on a target board
|
||||
+if [is_remote target] then {
|
||||
+ return 0
|
||||
+if {[use_gdb_stub]} {
|
||||
+ untested "skipping test because of use_gdb_stub"
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+# Start the program running and then wait for a bit, to be sure
|
||||
|
@ -52,7 +52,7 @@ diff --git a/gdb/testsuite/gdb.base/gcore-excessive-memory.exp b/gdb/testsuite/g
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.base/gcore-excessive-memory.exp
|
||||
@@ -0,0 +1,94 @@
|
||||
@@ -0,0 +1,99 @@
|
||||
+# Copyright 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
+# 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
|
||||
+# 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 srcfile ${testfile}.c
|
||||
+set shfile [standard_output_file ${testfile}-gdb.sh]
|
||||
|
@ -44,7 +44,7 @@ diff --git a/gdb/testsuite/gdb.base/unwind-leak.exp b/gdb/testsuite/gdb.base/unw
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.base/unwind-leak.exp
|
||||
@@ -0,0 +1,83 @@
|
||||
@@ -0,0 +1,88 @@
|
||||
+# Copyright 2007 Free Software Foundation, Inc.
|
||||
+
|
||||
+# 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
|
||||
+# 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 srcfile ${testfile}.c
|
||||
+set shfile [standard_output_file ${testfile}-gdb.sh]
|
||||
|
@ -12,7 +12,7 @@ diff --git a/gdb/testsuite/gdb.base/readline-overflow.exp b/gdb/testsuite/gdb.ba
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.base/readline-overflow.exp
|
||||
@@ -0,0 +1,104 @@
|
||||
@@ -0,0 +1,96 @@
|
||||
+# Copyright 2006 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
@ -46,20 +46,12 @@ new file mode 100644
|
||||
+
|
||||
+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
|
||||
+ # make sure that an appropriate terminal is selected. The same
|
||||
+ # bug doesn't show up if we use ^P / ^N instead.
|
||||
+ 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 env(GDBHISTFILE) "${srcdir}/${subdir}/gdb_history"
|
||||
|
@ -68,7 +68,7 @@ diff --git a/gdb/testsuite/gdb.base/datalib.exp b/gdb/testsuite/gdb.base/datalib
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.base/datalib.exp
|
||||
@@ -0,0 +1,51 @@
|
||||
@@ -0,0 +1,56 @@
|
||||
+# Copyright 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
+# 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
|
||||
+# 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 srcfilemain ${testfile}-main.c
|
||||
+set srcfilelib ${testfile}-lib.c
|
||||
|
@ -33,7 +33,7 @@ diff --git a/gdb/testsuite/gdb.threads/tls-sepdebug-main.c b/gdb/testsuite/gdb.t
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ 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.
|
||||
+
|
||||
+ 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:
|
||||
+ bug-gdb@prep.ai.mit.edu */
|
||||
+
|
||||
+#include <pthread.h>
|
||||
+
|
||||
+extern __thread int var;
|
||||
+
|
||||
+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
|
||||
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
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.threads/tls-sepdebug.exp
|
||||
@@ -0,0 +1,87 @@
|
||||
@@ -0,0 +1,94 @@
|
||||
+# Copyright 2006 Free Software Foundation, Inc.
|
||||
+
|
||||
+# 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
|
||||
+# 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 {
|
||||
+ strace $tracelevel
|
||||
+}
|
||||
|
@ -133,7 +133,7 @@ diff --git a/gdb/aclocal.m4 b/gdb/aclocal.m4
|
||||
+See the pkg-config man page for more details.])
|
||||
+
|
||||
+if test $pkg_failed = yes; then
|
||||
+ AC_MSG_RESULT([no])
|
||||
+ AC_MSG_RESULT([no])
|
||||
+ _PKG_SHORT_ERRORS_SUPPORTED
|
||||
+ if test $_pkg_short_errors_supported = yes; then
|
||||
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
|
||||
@ -154,7 +154,7 @@ diff --git a/gdb/aclocal.m4 b/gdb/aclocal.m4
|
||||
+_PKG_TEXT])[]dnl
|
||||
+ ])
|
||||
+elif test $pkg_failed = untried; then
|
||||
+ AC_MSG_RESULT([no])
|
||||
+ AC_MSG_RESULT([no])
|
||||
+ m4_default([$4], [AC_MSG_FAILURE(
|
||||
+[The pkg-config script could not be found or is too old. Make sure it
|
||||
+is in your PATH or set the PKG_CONFIG environment variable to the full
|
||||
@ -336,7 +336,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
|
||||
+
|
||||
+ /* Already failed the initialization before? */
|
||||
+ if (init_tried)
|
||||
+ return 0;
|
||||
+ return 0;
|
||||
+ init_tried = 1;
|
||||
+
|
||||
+#ifdef DLOPEN_LIBRPM
|
||||
@ -1148,7 +1148,7 @@ diff --git a/gdb/configure b/gdb/configure
|
||||
+
|
||||
+
|
||||
+if test $pkg_failed = yes; then
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
+$as_echo "no" >&6; }
|
||||
+
|
||||
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
||||
@ -1166,7 +1166,7 @@ diff --git a/gdb/configure b/gdb/configure
|
||||
+
|
||||
+ HAVE_LIBRPM=false
|
||||
+elif test $pkg_failed = untried; then
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
+$as_echo "no" >&6; }
|
||||
+ HAVE_LIBRPM=false
|
||||
+else
|
||||
|
@ -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
|
||||
+ with the same build-id (such as hard links). Some of the real
|
||||
+ files may not be installed. */
|
||||
+
|
||||
+ string_appendf (link, ".%u", seqno);
|
||||
+ }
|
||||
|
||||
- /* We expect to be silent on the non-existing files. */
|
||||
- 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 (separate_debug_file_debug)
|
||||
- printf_unfiltered (_(" no, unable to open.\n"));
|
||||
+ ret_link = link;
|
||||
+
|
||||
+ struct stat statbuf_trash;
|
||||
+
|
||||
+ /* `access' automatically dereferences LINK. */
|
||||
@ -574,11 +574,11 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
|
||||
+
|
||||
+ continue;
|
||||
+ }
|
||||
|
||||
- return {};
|
||||
+
|
||||
+ /* We expect to be silent on the non-existing files. */
|
||||
+ gdb_bfd_ref_ptr debug_bfd = gdb_bfd_open (filename.get (), gnutarget, -1);
|
||||
+
|
||||
|
||||
- return {};
|
||||
+ if (debug_bfd == NULL)
|
||||
+ {
|
||||
+ 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 .*"
|
||||
+ 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
|
||||
--- a/gdb/testsuite/gdb.base/new-ui-pending-input.exp
|
||||
+++ b/gdb/testsuite/gdb.base/new-ui-pending-input.exp
|
||||
|
@ -175,7 +175,7 @@ diff --git a/gdb/testsuite/gdb.threads/threaded-exec.exp b/gdb/testsuite/gdb.thr
|
||||
+gdb_load ${binfile_nothreads}
|
||||
|
||||
-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" {
|
||||
-re "\r\n\\\[Inferior .* exited normally\\\]\r\n$gdb_prompt $" {
|
||||
|
@ -1531,7 +1531,7 @@ diff --git a/gdb/testsuite/gdb.cp/gdb9593.cc b/gdb/testsuite/gdb.cp/gdb9593.cc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.cp/gdb9593.cc
|
||||
@@ -0,0 +1,180 @@
|
||||
@@ -0,0 +1,179 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
+ 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
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.cp/gdb9593.exp
|
||||
@@ -0,0 +1,182 @@
|
||||
@@ -0,0 +1,189 @@
|
||||
+# Copyright 2008, 2009 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
@ -1860,9 +1859,16 @@ new file mode 100644
|
||||
+ ".*function1 ().*" \
|
||||
+ "step into finish, for until"
|
||||
+
|
||||
+gdb_test "until" \
|
||||
+ ".*function1 ().*" \
|
||||
+ "until with no argument 1"
|
||||
+gdb_test_multiple "until" "until with no argument 1" {
|
||||
+ -re -wrap ".*function1 ().*" {
|
||||
+ 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]
|
||||
+
|
||||
@ -2272,7 +2278,7 @@ diff --git a/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp b/gdb/testsuite/gdb.dwarf
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp
|
||||
@@ -0,0 +1,79 @@
|
||||
@@ -0,0 +1,84 @@
|
||||
+# Copyright 2006 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
@ -2302,6 +2308,11 @@ new file mode 100644
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+if {[use_gdb_stub]} {
|
||||
+ untested "skipping test because of use_gdb_stub"
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+set testfile "dw2-stripped"
|
||||
+set srcfile ${testfile}.c
|
||||
+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
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.opt/fortran-string.exp
|
||||
@@ -0,0 +1,39 @@
|
||||
@@ -0,0 +1,46 @@
|
||||
+# Copyright 2009 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
@ -3466,14 +3477,21 @@ new file mode 100644
|
||||
+ continue
|
||||
+}
|
||||
+
|
||||
+gdb_test "frame" ".*s='foo'.*"
|
||||
+gdb_test "ptype s" "type = character\\*3"
|
||||
+gdb_test "info args" ".*s = 'foo'.*"
|
||||
+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'"
|
||||
diff --git a/gdb/testsuite/gdb.opt/fortran-string.f90 b/gdb/testsuite/gdb.opt/fortran-string.f90
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.opt/fortran-string.f90
|
||||
@@ -0,0 +1,28 @@
|
||||
@@ -0,0 +1,29 @@
|
||||
+! Copyright 2009 Free Software Foundation, Inc.
|
||||
+!
|
||||
+! This program is free software; you can redistribute it and/or modify
|
||||
@ -3497,6 +3515,7 @@ new file mode 100644
|
||||
+ subroutine f(s)
|
||||
+ character*(*) s
|
||||
+ s = s
|
||||
+ print *, s
|
||||
+ end
|
||||
+
|
||||
+ 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
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.pascal/arrays.exp
|
||||
@@ -0,0 +1,104 @@
|
||||
@@ -0,0 +1,107 @@
|
||||
+# Copyright 2008, 2009 Free Software Foundation, Inc.
|
||||
+#
|
||||
+# 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} {
|
||||
+ 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"
|
||||
+
|
||||
+if { $fpc_generates_dwarf_for_dynamic_arrays == 0} {
|
||||
+ 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"
|
||||
+
|
||||
@ -3610,7 +3633,6 @@ new file mode 100644
|
||||
+ setup_xfail "*-*-*"
|
||||
+}
|
||||
+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
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
|
@ -43,3 +43,30 @@ diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c
|
||||
}
|
||||
|
||||
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
|
||||
|
@ -38,4 +38,4 @@ new file mode 100644
|
||||
+# Skip all tests if Python scripting is not enabled.
|
||||
+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"
|
||||
|
@ -159,7 +159,7 @@ diff --git a/gdb/python/lib/gdb/backtrace.py b/gdb/python/lib/gdb/backtrace.py
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/python/lib/gdb/backtrace.py
|
||||
@@ -0,0 +1,42 @@
|
||||
@@ -0,0 +1,41 @@
|
||||
+# Filtering backtrace.
|
||||
+
|
||||
+# Copyright (C) 2008, 2011 Free Software Foundation, Inc.
|
||||
@ -201,12 +201,11 @@ new file mode 100644
|
||||
+ if old_frame_filter is None:
|
||||
+ return iter
|
||||
+ return old_frame_filter (iter)
|
||||
+
|
||||
diff --git a/gdb/python/lib/gdb/command/backtrace.py b/gdb/python/lib/gdb/command/backtrace.py
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/python/lib/gdb/command/backtrace.py
|
||||
@@ -0,0 +1,106 @@
|
||||
@@ -0,0 +1,112 @@
|
||||
+# New backtrace command.
|
||||
+
|
||||
+# Copyright (C) 2008, 2009, 2011 Free Software Foundation, Inc.
|
||||
@ -290,13 +289,19 @@ new file mode 100644
|
||||
+ # FIXME: provide option to start at selected frame
|
||||
+ # However, should still number as if starting from newest
|
||||
+ newest_frame = gdb.newest_frame()
|
||||
+ iter = itertools.imap (FrameWrapper,
|
||||
+ FrameIterator (newest_frame))
|
||||
+ if sys.version_info.major >= 3:
|
||||
+ iter = map (FrameWrapper, FrameIterator (newest_frame))
|
||||
+ else:
|
||||
+ iter = itertools.imap (FrameWrapper,
|
||||
+ FrameIterator (newest_frame))
|
||||
+ if filter:
|
||||
+ iter = gdb.backtrace.create_frame_filter (iter)
|
||||
+
|
||||
+ # Now wrap in an iterator that numbers the frames.
|
||||
+ iter = itertools.izip (itertools.count (0), iter)
|
||||
+ if sys.version_info.major >= 3:
|
||||
+ iter = zip (itertools.count (0), iter)
|
||||
+ else:
|
||||
+ iter = itertools.izip (itertools.count (0), iter)
|
||||
+
|
||||
+ # Reverse if the user wanted that.
|
||||
+ if self.reverse.value:
|
||||
@ -313,3 +318,17 @@ new file mode 100644
|
||||
+ pair[1].describe (sys.stdout, full)
|
||||
+
|
||||
+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\..*"
|
||||
|
@ -10,7 +10,7 @@ diff --git a/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp b/gdb/testsu
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ 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.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
@ -56,6 +56,10 @@ new file mode 100644
|
||||
+ untested "$test (no DWARF)"
|
||||
+ return 0
|
||||
+ }
|
||||
+ -re "type = <unknown return type> \\(\\)\r\n$gdb_prompt $" {
|
||||
+ untested "$test (no DWARF)"
|
||||
+ return 0
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+set addr ""
|
||||
@ -124,5 +128,5 @@ new file mode 100644
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+gdb_test {print strstr("abc","b")} { = 0x[0-9a-f]+ "bc"}
|
||||
+gdb_test {print strstr("def","e")} { = 0x[0-9a-f]+ "ef"}
|
||||
+gdb_test {print (char *)strstr("abc","b")} { = 0x[0-9a-f]+ "bc"}
|
||||
+gdb_test {print (char *)strstr("def","e")} { = 0x[0-9a-f]+ "ef"}
|
||||
|
@ -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
|
||||
--- a/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_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"
|
||||
+ gdb_test_multiple "file $binfile" "$test" {
|
||||
+ -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)"
|
||||
+ }
|
||||
+ -re "Reading symbols from $escapedbinfile\.\.\.*done.*$gdb_prompt $" {
|
||||
+ -re "Reading symbols from $escapedbinfile\.\.\.*$gdb_prompt $" {
|
||||
+ pass "$test"
|
||||
+ }
|
||||
+ }
|
||||
@ -192,15 +192,23 @@ diff --git a/gdb/testsuite/gdb.threads/attach-stopped.exp b/gdb/testsuite/gdb.th
|
||||
+ sleep 2
|
||||
+
|
||||
+ if [catch {open /proc/${testpid}/status r} fileid] {
|
||||
+ set line2 "NOTFOUND"
|
||||
+ set line "NOTFOUND"
|
||||
+ } else {
|
||||
+ gets $fileid line1;
|
||||
+ gets $fileid line2;
|
||||
+ while { 1 } {
|
||||
+ if { [gets $fileid line] < 0 } {
|
||||
+ set line "EOF"
|
||||
+ break
|
||||
+ }
|
||||
+ if {[string match "State:*" $line]} {
|
||||
+ break
|
||||
+ }
|
||||
+ }
|
||||
+ close $fileid;
|
||||
+ }
|
||||
+
|
||||
+ set test "$threadtype: attach1, exit leaves process stopped"
|
||||
+ if {[string match "*(stopped)*" $line2]} {
|
||||
+ verbose -log "line: $line"
|
||||
+ if {[string match "*(stopped)*" $line]} {
|
||||
+ pass $test
|
||||
+ } else {
|
||||
+ fail $test
|
||||
|
@ -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
|
||||
--- /dev/null
|
||||
+++ 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.
|
||||
+
|
||||
+ Copyright 2010 Free Software Foundation, Inc.
|
||||
@ -42,12 +42,11 @@ new file mode 100644
|
||||
+ p->foo ();
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
diff --git a/gdb/testsuite/gdb.cp/pr11734-2.cc b/gdb/testsuite/gdb.cp/pr11734-2.cc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ 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.
|
||||
+
|
||||
+ Copyright 2010 Free Software Foundation, Inc.
|
||||
@ -74,12 +73,11 @@ new file mode 100644
|
||||
+pr11734::foo(void)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
diff --git a/gdb/testsuite/gdb.cp/pr11734-3.cc b/gdb/testsuite/gdb.cp/pr11734-3.cc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ 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.
|
||||
+
|
||||
+ Copyright 2010 Free Software Foundation, Inc.
|
||||
@ -106,12 +104,11 @@ new file mode 100644
|
||||
+pr11734::foo (int a)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
diff --git a/gdb/testsuite/gdb.cp/pr11734-4.cc b/gdb/testsuite/gdb.cp/pr11734-4.cc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ 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.
|
||||
+
|
||||
+ Copyright 2010 Free Software Foundation, Inc.
|
||||
@ -138,7 +135,6 @@ new file mode 100644
|
||||
+pr11734::foo (char *a)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
diff --git a/gdb/testsuite/gdb.cp/pr11734.exp b/gdb/testsuite/gdb.cp/pr11734.exp
|
||||
new file mode 100644
|
||||
--- /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
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.cp/pr11734.h
|
||||
@@ -0,0 +1,28 @@
|
||||
@@ -0,0 +1,27 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
+ Copyright 2010 Free Software Foundation, Inc.
|
||||
@ -231,4 +227,3 @@ new file mode 100644
|
||||
+ void foo (int);
|
||||
+ void foo (char *);
|
||||
+};
|
||||
+
|
||||
|
@ -81,7 +81,7 @@ diff --git a/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.c b/gdb/tes
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.c
|
||||
@@ -0,0 +1,124 @@
|
||||
@@ -0,0 +1,125 @@
|
||||
+/* Testcase for recursive dlopen calls.
|
||||
+
|
||||
+ Copyright (C) 2014 Free Software Foundation, Inc.
|
||||
@ -178,6 +178,7 @@ new file mode 100644
|
||||
+ /* Called recursively. */
|
||||
+ result = malloc (size);
|
||||
+ /* Restore new hooks. */
|
||||
+ old_malloc_hook = __malloc_hook;
|
||||
+ __malloc_hook = custom_malloc_hook;
|
||||
+ 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
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.exp
|
||||
@@ -0,0 +1,137 @@
|
||||
@@ -0,0 +1,157 @@
|
||||
+# Copyright 2014 Free Software Foundation, Inc.
|
||||
+#
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
@ -226,8 +227,12 @@ new file mode 100644
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+if { [skip_shlib_tests] } {
|
||||
+ return 0
|
||||
+if {[skip_shlib_tests]} {
|
||||
+ untested "skipping shlib tests"
|
||||
+ return 0
|
||||
+} elseif {[use_gdb_stub]} {
|
||||
+ untested "skipping tests because of stub"
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+# Library foo
|
||||
@ -262,6 +267,21 @@ new file mode 100644
|
||||
+ 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 } {
|
||||
+ global hex binfile_lib2 binfile_lib1 gdb_prompt
|
||||
+ 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_run_cmd
|
||||
+ gdb_test "" "Wait for first prompt"
|
||||
+ foreach l $solib_event_order {
|
||||
+ incr pass
|
||||
+ with_test_prefix "pass #$pass" {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -136,7 +136,7 @@ new file mode 100644
|
||||
+set testfile amd64-ivy-bridge
|
||||
+set test compilation
|
||||
+if [prepare_for_testing ${testfile}.exp ${testfile}.x ${testfile}.S [list debug "additional_flags=-m64 -nostdlib"]] {
|
||||
+ fail $test
|
||||
+ unsupported $test
|
||||
+ return -1
|
||||
+}
|
||||
+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
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.arch/i386-ivy-bridge.S
|
||||
@@ -0,0 +1,67 @@
|
||||
@@ -0,0 +1,66 @@
|
||||
+/* Copyright 2011 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
@ -355,7 +355,6 @@ new file mode 100644
|
||||
+ rdgsbase ebx
|
||||
+ wrfsbase ebx
|
||||
+ wrgsbase ebx
|
||||
+
|
||||
diff --git a/gdb/testsuite/gdb.arch/i386-ivy-bridge.exp b/gdb/testsuite/gdb.arch/i386-ivy-bridge.exp
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
|
@ -34,6 +34,8 @@ test "$1" = "-h" && usage
|
||||
|
||||
uncommit=0
|
||||
if [ "$1" = "-u" ]; then
|
||||
command -v stg > /dev/null 2>&1 \
|
||||
|| die "Cannot find stg. Is stgit installed?"
|
||||
uncommit=1
|
||||
shift
|
||||
fi
|
||||
@ -46,7 +48,6 @@ fi
|
||||
|
||||
test -f _git_upstream_commit || die "Cannot find _git_upstream_commit 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`
|
||||
|
||||
|
65
process_psymtab_comp_unit-type-unit.patch
Normal file
65
process_psymtab_comp_unit-type-unit.patch
Normal 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 ();
|
||||
}
|
52
testing-custom-inputrc.patch
Normal file
52
testing-custom-inputrc.patch
Normal 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.
|
Loading…
Reference in New Issue
Block a user