Accepting request 245040 from devel:gcc

- Enable running the testsuite and store results in a gdb-testresults
  package.
- Add gdb-rpmlintrc to filter errors about the buildroot mentioned
  in testresult logs.

- Use patchlist.pl to merge with gdb-7.8-16.fc22, a rebase to FSF GDB 4.8.
  The GDB 4.8 features are:
  * Guile scripting support.
  * Python scripting enhancements.
  * New commands:
      ** guile
      ** guile-repl
      ** info auto-load guile-scripts [REGEXP]
  * New options:
      ** maint ada set ignore-descriptive-types (on|off)
      ** maint set target-async (on|off)
      ** set|show auto-load guile-scripts (on|off)
      ** set|show auto-connect-native-target
      ** set|show guile print-stack (none|message|full)
      ** set|show mi-async (on|off)
      ** set|show print symbol-loading (off|brief|full)
      ** set|show record btrace replay-memory-access (read-only|read-write)
  * Remote Protocol:
      ** The qXfer:btrace:read packet supports a new annex 'delta'.
  * GDB/MI:
      ** A new option "-gdb-set mi-async" replaces "-gdb-set target-async".
  * New target configurations:
      ** PowerPC64 GNU/Linux little-endian
  * btrace enhancements:
      ** The btrace record target now supports the 'record goto' command.

OBS-URL: https://build.opensuse.org/request/show/245040
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gdb?expand=0&rev=100
This commit is contained in:
Ludwig Nussel 2014-08-20 15:51:37 +00:00 committed by Git OBS Bridge
commit 43fee6e038
48 changed files with 9740 additions and 11439 deletions

View File

@ -1,29 +1,29 @@
Index: gdb-7.6.90.20140127/gdb/testsuite/configure.ac Index: gdb-7.7.50.20140609/gdb/testsuite/configure.ac
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/configure.ac 2014-01-27 22:41:19.281501688 +0100 --- gdb-7.7.50.20140609.orig/gdb/testsuite/configure.ac 2014-06-13 20:05:33.058506817 +0200
+++ gdb-7.6.90.20140127/gdb/testsuite/configure.ac 2014-01-27 22:41:39.736517360 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/configure.ac 2014-06-13 20:05:59.991532595 +0200
@@ -96,6 +96,6 @@ AC_OUTPUT([Makefile \ @@ -97,6 +97,6 @@ AC_OUTPUT([Makefile \
gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile \ gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile \
gdb.hp/gdb.defects/Makefile gdb.linespec/Makefile \ gdb.hp/gdb.defects/Makefile gdb.guile/Makefile gdb.linespec/Makefile \
gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile \ gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile \
- gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile \ - gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile \
+ gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile \ + gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile \
gdb.perf/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.stabs/Makefile \ gdb.perf/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.stabs/Makefile \
gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile]) gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile])
Index: gdb-7.6.90.20140127/gdb/testsuite/configure Index: gdb-7.7.50.20140609/gdb/testsuite/configure
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/configure 2014-01-27 22:41:19.283501689 +0100 --- gdb-7.7.50.20140609.orig/gdb/testsuite/configure 2014-06-13 20:05:29.956503899 +0200
+++ gdb-7.6.90.20140127/gdb/testsuite/configure 2014-01-27 22:41:49.933525172 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/configure 2014-06-13 20:06:24.492555709 +0200
@@ -3448,7 +3448,7 @@ done @@ -3448,7 +3448,7 @@ done
-ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.btrace/Makefile gdb.cell/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.go/Makefile gdb.server/Makefile gdb.java/Makefile gdb.hp/Makefile gdb.hp/gdb.objdbg/Makefile gdb.hp/gdb.base-hp/Makefile gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile gdb.hp/gdb.defects/Makefile gdb.linespec/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.perf/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.stabs/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile" -ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.btrace/Makefile gdb.cell/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.dlang/Makefile gdb.fortran/Makefile gdb.gdb/Makefile gdb.go/Makefile gdb.server/Makefile gdb.java/Makefile gdb.hp/Makefile gdb.hp/gdb.objdbg/Makefile gdb.hp/gdb.base-hp/Makefile gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile gdb.hp/gdb.defects/Makefile gdb.guile/Makefile gdb.linespec/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.perf/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.stabs/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
+ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.btrace/Makefile gdb.cell/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.go/Makefile gdb.server/Makefile gdb.java/Makefile gdb.hp/Makefile gdb.hp/gdb.objdbg/Makefile gdb.hp/gdb.base-hp/Makefile gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile gdb.hp/gdb.defects/Makefile gdb.linespec/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile gdb.perf/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.stabs/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile" +ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.btrace/Makefile gdb.cell/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.dlang/Makefile gdb.fortran/Makefile gdb.gdb/Makefile gdb.go/Makefile gdb.server/Makefile gdb.java/Makefile gdb.hp/Makefile gdb.hp/gdb.objdbg/Makefile gdb.hp/gdb.base-hp/Makefile gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile gdb.hp/gdb.defects/Makefile gdb.guile/Makefile gdb.linespec/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile gdb.perf/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.stabs/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
cat >confcache <<\_ACEOF cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure # This file is a shell script that caches the results of configure
@@ -4176,6 +4176,7 @@ do @@ -4179,6 +4179,7 @@ do
"gdb.opencl/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.opencl/Makefile" ;; "gdb.opencl/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.opencl/Makefile" ;;
"gdb.opt/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.opt/Makefile" ;; "gdb.opt/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.opt/Makefile" ;;
"gdb.pascal/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.pascal/Makefile" ;; "gdb.pascal/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.pascal/Makefile" ;;
@ -31,10 +31,10 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/configure
"gdb.perf/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.perf/Makefile" ;; "gdb.perf/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.perf/Makefile" ;;
"gdb.python/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.python/Makefile" ;; "gdb.python/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.python/Makefile" ;;
"gdb.reverse/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.reverse/Makefile" ;; "gdb.reverse/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.reverse/Makefile" ;;
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/attach.c Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/attach.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/attach.c 2014-01-27 22:41:19.284501690 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/attach.c 2014-06-13 20:05:33.060506819 +0200
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
+/* This program is intended to be started outside of gdb, and then +/* This program is intended to be started outside of gdb, and then
+ attached to by gdb. Thus, it simply spins in a loop. The loop + attached to by gdb. Thus, it simply spins in a loop. The loop
@ -56,10 +56,10 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/attach.c
+ } + }
+ return 0; + return 0;
+} +}
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/attach2.c Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/attach2.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/attach2.c 2014-01-27 22:41:19.284501690 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/attach2.c 2014-06-13 20:05:33.060506819 +0200
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
+/* This program is intended to be started outside of gdb, and then +/* This program is intended to be started outside of gdb, and then
+ attached to by gdb. Thus, it simply spins in a loop. The loop + attached to by gdb. Thus, it simply spins in a loop. The loop
@ -85,10 +85,10 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/attach2.c
+ } + }
+ return (0); + return (0);
+} +}
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/break.c Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/break.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/break.c 2014-01-27 22:41:19.284501690 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/break.c 2014-06-13 20:05:33.061506820 +0200
@@ -0,0 +1,146 @@ @@ -0,0 +1,146 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -236,10 +236,10 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/break.c
+ } + }
+ return 0; + return 0;
+} +}
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/break1.c Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/break1.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/break1.c 2014-01-27 22:41:19.284501690 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/break1.c 2014-06-13 20:05:33.061506820 +0200
@@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -285,10 +285,10 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/break1.c
+void marker3 (a, b) char *a, *b; {} /* set breakpoint 18 here */ +void marker3 (a, b) char *a, *b; {} /* set breakpoint 18 here */
+void marker4 (d) long d; {} /* set breakpoint 13 here */ +void marker4 (d) long d; {} /* set breakpoint 13 here */
+#endif +#endif
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/coremaker.c Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/coremaker.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/coremaker.c 2014-01-27 22:41:19.284501690 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/coremaker.c 2014-06-13 20:05:33.061506820 +0200
@@ -0,0 +1,142 @@ @@ -0,0 +1,142 @@
+/* Copyright 1992, 1993, 1994, 1995, 1996, 1999 +/* Copyright 1992, 1993, 1994, 1995, 1996, 1999
+ Free Software Foundation, Inc. + Free Software Foundation, Inc.
@ -432,10 +432,10 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/coremaker.c
+ return 0; + return 0;
+} +}
+ +
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/attach.exp Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/attach.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/attach.exp 2014-01-27 22:41:19.285501691 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/attach.exp 2014-06-13 20:05:33.061506820 +0200
@@ -0,0 +1,417 @@ @@ -0,0 +1,417 @@
+# Copyright 1997, 1999, 2002 Free Software Foundation, Inc. +# Copyright 1997, 1999, 2002 Free Software Foundation, Inc.
+ +
@ -854,10 +854,10 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/attach.exp
+do_call_attach_tests +do_call_attach_tests
+ +
+return 0 +return 0
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/break.exp Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/break.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/break.exp 2014-01-27 22:41:19.286501691 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/break.exp 2014-06-13 20:05:33.062506821 +0200
@@ -0,0 +1,962 @@ @@ -0,0 +1,962 @@
+# Copyright 1988, 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999, +# Copyright 1988, 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2002, 2003, 2004 +# 2000, 2002, 2003, 2004
@ -1821,10 +1821,10 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/break.exp
+ send_gdb "set args main\n" + send_gdb "set args main\n"
+ gdb_expect -re ".*$gdb_prompt $" {} + gdb_expect -re ".*$gdb_prompt $" {}
+} +}
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/corefile.exp Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/corefile.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/corefile.exp 2014-01-27 22:41:19.286501691 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/corefile.exp 2014-06-13 20:05:33.063506822 +0200
@@ -0,0 +1,233 @@ @@ -0,0 +1,233 @@
+# 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.
@ -2059,10 +2059,10 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/corefile.exp
+gdb_test "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(.*\\).*" "up in corefile.exp (reinit)" +gdb_test "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(.*\\).*" "up in corefile.exp (reinit)"
+ +
+gdb_test "core" "No core file now." +gdb_test "core" "No core file now."
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/Makefile.in Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/Makefile.in
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/Makefile.in 2014-01-27 22:41:19.286501691 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/Makefile.in 2014-06-13 20:05:33.063506822 +0200
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
+VPATH = @srcdir@ +VPATH = @srcdir@
+srcdir = @srcdir@ +srcdir = @srcdir@

View File

@ -1,11 +1,11 @@
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=218379 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=218379
Index: gdb-7.6.50.20130731-cvs/gdb/symtab.c Index: gdb-7.7.90.20140613/gdb/symtab.c
=================================================================== ===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/symtab.c 2013-08-02 17:06:19.854663801 +0200 --- gdb-7.7.90.20140613.orig/gdb/symtab.c 2014-06-13 21:52:06.219338401 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/symtab.c 2013-08-02 17:07:04.317721471 +0200 +++ gdb-7.7.90.20140613/gdb/symtab.c 2014-06-13 21:55:02.753531885 +0200
@@ -2327,6 +2327,13 @@ find_pc_sect_line (CORE_ADDR pc, struct @@ -2394,6 +2394,13 @@ find_pc_sect_line (CORE_ADDR pc, struct
SYMBOL_LINKAGE_NAME (msymbol)); */ SYMBOL_LINKAGE_NAME (msymbol)); */
; ;
/* fall through */ /* fall through */
@ -13,9 +13,9 @@ Index: gdb-7.6.50.20130731-cvs/gdb/symtab.c
+ but this text symbol may be the address we were looking for. + but this text symbol may be the address we were looking for.
+ Avoid `find_pc_sect_line'<->`find_pc_line' infinite loop. + Avoid `find_pc_sect_line'<->`find_pc_line' infinite loop.
+ Red Hat Bug 218379. */ + Red Hat Bug 218379. */
+ else if (SYMBOL_VALUE (mfunsym) == pc) + else if (BMSYMBOL_VALUE_ADDRESS (mfunsym) == pc)
+ warning ("In stub for %s (0x%s); interlocked, please submit the binary to http://bugzilla.redhat.com", SYMBOL_LINKAGE_NAME (msymbol.minsym), paddress (target_gdbarch (), pc)); + warning ("In stub for %s (0x%s); interlocked, please submit the binary to http://bugzilla.redhat.com", MSYMBOL_LINKAGE_NAME (msymbol.minsym), paddress (target_gdbarch (), pc));
+ /* fall through */ + /* fall through */
else else
return find_pc_line (SYMBOL_VALUE_ADDRESS (mfunsym), 0); return find_pc_line (BMSYMBOL_VALUE_ADDRESS (mfunsym), 0);
} }

View File

@ -1,119 +0,0 @@
2007-09-23 Jan Kratochvil <jan.kratochvil@redhat.com>
* elfcode.h (NAME(_bfd_elf,bfd_from_remote_memory)): New variables
X_SHDR_SHSTRTAB and I_SHDR_SHSTRTAB. Fixed the CONTENTS_SIZE trimming
check for its aligned size between the last segment and still before
the section header end. Added variables check to cover also the
section header string table.
--- gdb-7.4.50.20120120-orig/bfd/elfcode.h 2012-02-29 09:17:08.000000000 +0100
+++ gdb-7.4.50.20120120/bfd/elfcode.h 2012-02-29 10:23:03.000000000 +0100
@@ -1621,6 +1621,8 @@ NAME(_bfd_elf,bfd_from_remote_memory)
Elf_Internal_Ehdr i_ehdr; /* Elf file header, internal form */
Elf_External_Phdr *x_phdrs;
Elf_Internal_Phdr *i_phdrs, *last_phdr;
+ Elf_External_Shdr *x_shdrs;
+ Elf_Internal_Shdr *i_shdrs;
bfd *nbfd;
struct bfd_in_memory *bim;
int contents_size;
@@ -1740,24 +1742,46 @@ NAME(_bfd_elf,bfd_from_remote_memory)
/* Trim the last segment so we don't bother with zeros in the last page
that are off the end of the file. However, if the extra bit in that
- page includes the section headers, keep them. */
- if ((bfd_vma) contents_size > last_phdr->p_offset + last_phdr->p_filesz
- && (bfd_vma) contents_size >= (i_ehdr.e_shoff
- + i_ehdr.e_shnum * i_ehdr.e_shentsize))
+ page includes the section headers os the section header string table,
+ keep them. */
+ if ((bfd_vma) contents_size > last_phdr->p_offset + last_phdr->p_filesz)
+ contents_size = last_phdr->p_offset + last_phdr->p_filesz;
+
+ if ((bfd_vma) contents_size < i_ehdr.e_shoff
+ + i_ehdr.e_shnum * i_ehdr.e_shentsize)
+ contents_size = i_ehdr.e_shoff + i_ehdr.e_shnum * i_ehdr.e_shentsize;
+
+ /* Verify also all the sections fit into CONTENTS_SIZE. */
+
+ x_shdrs = bfd_malloc (i_ehdr.e_shnum * (sizeof *x_shdrs + sizeof *i_shdrs));
+ if (x_shdrs == NULL)
{
- contents_size = last_phdr->p_offset + last_phdr->p_filesz;
- if ((bfd_vma) contents_size < (i_ehdr.e_shoff
- + i_ehdr.e_shnum * i_ehdr.e_shentsize))
- contents_size = i_ehdr.e_shoff + i_ehdr.e_shnum * i_ehdr.e_shentsize;
+ free (x_phdrs);
+ bfd_set_error (bfd_error_no_memory);
+ return NULL;
}
+ err = target_read_memory (ehdr_vma + i_ehdr.e_shoff, (bfd_byte *) x_shdrs,
+ i_ehdr.e_shnum * sizeof *x_shdrs);
+ if (err)
+ i_shdrs = NULL;
else
- contents_size = last_phdr->p_offset + last_phdr->p_filesz;
+ {
+ i_shdrs = (Elf_Internal_Shdr *) &x_shdrs[i_ehdr.e_shnum];
+ for (i = 0; i < i_ehdr.e_shnum; ++i)
+ {
+ elf_swap_shdr_in (templ, &x_shdrs[i], &i_shdrs[i]);
+
+ if ((bfd_vma) contents_size < i_shdrs[i].sh_offset + i_shdrs[i].sh_size)
+ contents_size = i_shdrs[i].sh_offset + i_shdrs[i].sh_size;
+ }
+ }
/* Now we know the size of the whole image we want read in. */
contents = (bfd_byte *) bfd_zmalloc (contents_size);
if (contents == NULL)
{
free (x_phdrs);
+ free (x_shdrs);
bfd_set_error (bfd_error_no_memory);
return NULL;
}
@@ -1776,6 +1800,7 @@ NAME(_bfd_elf,bfd_from_remote_memory)
if (err)
{
free (x_phdrs);
+ free (x_shdrs);
free (contents);
bfd_set_error (bfd_error_system_call);
errno = err;
@@ -1784,10 +1809,32 @@ NAME(_bfd_elf,bfd_from_remote_memory)
}
free (x_phdrs);
- /* If the segments visible in memory didn't include the section headers,
+ if (i_shdrs)
+ {
+ memcpy (contents + i_ehdr.e_shoff, x_shdrs,
+ i_ehdr.e_shnum * sizeof *x_shdrs);
+
+ for (i = 0; i < i_ehdr.e_shnum; ++i)
+ {
+ bfd_vma start = i_shdrs[i].sh_offset;
+ bfd_vma end = i_shdrs[i].sh_offset + i_shdrs[i].sh_size;
+
+ if (end > (bfd_vma) contents_size)
+ end = contents_size;
+ err = target_read_memory (ehdr_vma + start, contents + start,
+ end - start);
+ if (err)
+ {
+ i_shdrs = NULL;
+ break;
+ }
+ }
+ }
+ free (x_shdrs);
+
+ /* If the segments readable in memory didn't include the section headers,
then clear them from the file header. */
- if ((bfd_vma) contents_size < (i_ehdr.e_shoff
- + i_ehdr.e_shnum * i_ehdr.e_shentsize))
+ if (i_shdrs == NULL)
{
memset (&x_ehdr.e_shoff, 0, sizeof x_ehdr.e_shoff);
memset (&x_ehdr.e_shnum, 0, sizeof x_ehdr.e_shnum);

View File

@ -58,13 +58,13 @@ Http://sourceware.org/ml/gdb-patches/2010-01/msg00517.html
* exec.c (exec_file_attach): Print a more useful error message if the * exec.c (exec_file_attach): Print a more useful error message if the
user did "gdb core". user did "gdb core".
Index: gdb-7.6.90.20140127/gdb/exceptions.h Index: gdb-7.7.50.20140609/gdb/exceptions.h
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/exceptions.h 2014-02-06 17:31:00.148529736 +0100 --- gdb-7.7.50.20140609.orig/gdb/exceptions.h 2014-06-13 20:26:46.988804553 +0200
+++ gdb-7.6.90.20140127/gdb/exceptions.h 2014-02-06 17:31:17.560548525 +0100 +++ gdb-7.7.50.20140609/gdb/exceptions.h 2014-06-13 20:27:01.930820057 +0200
@@ -97,6 +97,9 @@ enum errors { @@ -100,6 +100,9 @@ enum errors {
/* An undefined command was executed. */ /* Requested feature, method, mechanism, etc. is not supported. */
UNDEFINED_COMMAND_ERROR, NOT_SUPPORTED_ERROR,
+ /* Attempt to load a core file as executable. */ + /* Attempt to load a core file as executable. */
+ IS_CORE_ERROR, + IS_CORE_ERROR,
@ -72,19 +72,19 @@ Index: gdb-7.6.90.20140127/gdb/exceptions.h
/* Add more errors here. */ /* Add more errors here. */
NR_ERRORS NR_ERRORS
}; };
Index: gdb-7.6.90.20140127/gdb/exec.c Index: gdb-7.7.50.20140609/gdb/exec.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/exec.c 2014-02-06 17:30:58.266527708 +0100 --- gdb-7.7.50.20140609.orig/gdb/exec.c 2014-06-13 20:26:44.831802315 +0200
+++ gdb-7.6.90.20140127/gdb/exec.c 2014-02-06 17:31:00.149529737 +0100 +++ gdb-7.7.50.20140609/gdb/exec.c 2014-06-13 20:27:17.282836454 +0200
@@ -34,6 +34,7 @@ @@ -35,6 +35,7 @@
#include "gdbthread.h"
#include "progspace.h" #include "progspace.h"
#include "gdb_bfd.h" #include "gdb_bfd.h"
#include "gcore.h"
+#include "exceptions.h" +#include "exceptions.h"
#include <fcntl.h> #include <fcntl.h>
#include "readline/readline.h" #include "readline/readline.h"
@@ -228,12 +229,27 @@ exec_file_attach (char *filename, int fr @@ -231,12 +232,27 @@ exec_file_attach (char *filename, int fr
if (!bfd_check_format_matches (exec_bfd, bfd_object, &matching)) if (!bfd_check_format_matches (exec_bfd, bfd_object, &matching))
{ {
@ -115,11 +115,11 @@ Index: gdb-7.6.90.20140127/gdb/exec.c
} }
if (build_section_table (exec_bfd, &sections, &sections_end)) if (build_section_table (exec_bfd, &sections, &sections_end))
Index: gdb-7.6.90.20140127/gdb/main.c Index: gdb-7.7.50.20140609/gdb/main.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/main.c 2014-02-06 17:30:58.267527709 +0100 --- gdb-7.7.50.20140609.orig/gdb/main.c 2014-06-13 20:26:44.831802315 +0200
+++ gdb-7.6.90.20140127/gdb/main.c 2014-02-06 17:32:32.232629052 +0100 +++ gdb-7.7.50.20140609/gdb/main.c 2014-06-13 20:26:46.990804555 +0200
@@ -307,6 +307,36 @@ typedef struct cmdarg { @@ -341,6 +341,36 @@ typedef struct cmdarg {
/* Define type VEC (cmdarg_s). */ /* Define type VEC (cmdarg_s). */
DEF_VEC_O (cmdarg_s); DEF_VEC_O (cmdarg_s);
@ -156,7 +156,7 @@ Index: gdb-7.6.90.20140127/gdb/main.c
static int static int
captured_main (void *data) captured_main (void *data)
{ {
@@ -824,6 +854,8 @@ captured_main (void *data) @@ -854,6 +884,8 @@ captured_main (void *data)
{ {
symarg = argv[optind]; symarg = argv[optind];
execarg = argv[optind]; execarg = argv[optind];
@ -165,7 +165,7 @@ Index: gdb-7.6.90.20140127/gdb/main.c
optind++; optind++;
} }
@@ -987,11 +1019,25 @@ captured_main (void *data) @@ -1017,11 +1049,25 @@ captured_main (void *data)
&& symarg != NULL && symarg != NULL
&& strcmp (execarg, symarg) == 0) && strcmp (execarg, symarg) == 0)
{ {

View File

@ -0,0 +1,131 @@
Comments by Sergio Durigan Junior <sergiodj@redhat.com>:
This is the fix for RH BZ #981154
It is mainly a testcase addition, but a minor fix in the gdb/build-id.c
file was also needed.
gdb/build-id.c was added by:
commit dc294be54c96414035eed7d53dafdea0a6f31a72
Author: Tom Tromey <tromey@redhat.com>
Date: Tue Oct 8 19:56:15 2013 +0000
and had a little thinko there. The variable 'filename' needs to be set to
NULL after it is free'd, otherwise the code below thinks that it is still
valid and doesn't print the necessary warning ("Try: yum install ...").
Index: gdb-7.7/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning.exp
===================================================================
--- /dev/null
+++ gdb-7.7/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning.exp
@@ -0,0 +1,97 @@
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+standard_testfile "normal.c"
+
+if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } {
+ return -1
+}
+
+# Get the build-id of the file
+set build_id_debug_file [build_id_debug_filename_get $binfile]
+regsub -all ".debug$" $build_id_debug_file "" build_id_without_debug
+
+# Run to main
+if { ![runto_main] } {
+ return -1
+}
+
+# We first need to generate a corefile
+set escapedfilename [string_to_regexp ${objdir}/${subdir}/gcore.test]
+set core_supported 0
+gdb_test_multiple "gcore ${objdir}/${subdir}/gcore.test" \
+ "save a corefile" \
+{
+ -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
+ pass "save a corefile"
+ global core_supported
+ set core_supported 1
+ }
+ -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
+ unsupported "save a corefile"
+ global core_supported
+ set core_supported 0
+ }
+}
+
+if {!$core_supported} {
+ return -1
+}
+
+# Move the binfile to a temporary name
+remote_exec build "mv $binfile ${binfile}.old"
+
+# Reinitialize GDB and see if we get a yum warning
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+
+with_test_prefix "first run:" {
+ gdb_test "set build-id-verbose 1" "" \
+ "set build-id-verbose"
+
+ gdb_test "set debug-file-directory ${objdir}/${subdir}" "" \
+ "set debug-file-directory"
+
+ gdb_test "core-file ${objdir}/${subdir}/gcore.test" \
+ "Missing separate debuginfo for the main executable file\r\nTry: yum --enablerepo='\\*debug\\*' install $objdir/$subdir/$build_id_without_debug\r\n.*" \
+ "test first yum warning"
+}
+
+# Now we define and create our .build-id
+file mkdir [file dirname ${objdir}/${subdir}/${build_id_without_debug}]
+# Cannot use "file link" (from TCL) because it requires the target file to
+# exist.
+remote_exec build "ln -s $binfile ${objdir}/${subdir}/${build_id_without_debug}"
+
+# Reinitialize GDB to get the second yum warning
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+
+with_test_prefix "second run:" {
+ gdb_test "set build-id-verbose 1" "" \
+ "set build-id-verbose"
+
+ gdb_test "set debug-file-directory ${objdir}/${subdir}" "" \
+ "set debug-file-directory"
+
+ gdb_test "core-file ${objdir}/${subdir}/gcore.test" \
+ "Missing separate debuginfo for the main executable file\r\nTry: yum --enablerepo='\\*debug\\*' install $binfile\r\n.*" \
+ "test second yum warning"
+}
+
+# Leaving the link there will cause breakage in the next run.
+remote_exec build "rm -f ${objdir}/${subdir}/${build_id_without_debug}"
Index: gdb-7.7/gdb/build-id.c
===================================================================
--- gdb-7.7.orig/gdb/build-id.c
+++ gdb-7.7/gdb/build-id.c
@@ -588,6 +588,7 @@ build_id_to_debug_bfd (size_t build_id_l
if (abfd == NULL)
{
xfree (filename);
+ filename = NULL;
continue;
}

View File

@ -1,8 +1,8 @@
Index: gdb-7.6.90.20140127/gdb/event-top.c Index: gdb-7.7.50.20140609/gdb/event-top.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/event-top.c 2014-02-06 17:18:26.965717210 +0100 --- gdb-7.7.50.20140609.orig/gdb/event-top.c 2014-06-13 20:10:19.632787642 +0200
+++ gdb-7.6.90.20140127/gdb/event-top.c 2014-02-06 16:59:23.174474404 +0100 +++ gdb-7.7.50.20140609/gdb/event-top.c 2014-06-13 20:11:49.605878557 +0200
@@ -37,6 +37,7 @@ @@ -38,6 +38,7 @@
#include "gdbcmd.h" /* for dont_repeat() */ #include "gdbcmd.h" /* for dont_repeat() */
#include "annotate.h" #include "annotate.h"
#include "maint.h" #include "maint.h"
@ -10,7 +10,7 @@ Index: gdb-7.6.90.20140127/gdb/event-top.c
/* readline include files. */ /* readline include files. */
#include "readline/readline.h" #include "readline/readline.h"
@@ -173,6 +174,8 @@ rl_callback_read_char_wrapper (gdb_clien @@ -176,6 +177,8 @@ rl_callback_read_char_wrapper (gdb_clien
void void
cli_command_loop (void *data) cli_command_loop (void *data)
{ {
@ -19,20 +19,20 @@ Index: gdb-7.6.90.20140127/gdb/event-top.c
display_gdb_prompt (0); display_gdb_prompt (0);
/* Now it's time to start the event loop. */ /* Now it's time to start the event loop. */
@@ -240,6 +243,8 @@ display_gdb_prompt (char *new_prompt) @@ -243,6 +246,8 @@ display_gdb_prompt (char *new_prompt)
/* Reset the nesting depth used when trace-commands is set. */ /* Reset the nesting depth used when trace-commands is set. */
reset_command_nest_depth (); reset_command_nest_depth ();
+ debug_flush_missing (); + debug_flush_missing ();
+ +
/* Each interpreter has its own rules on displaying the command old_chain = make_cleanup (free_current_contents, &actual_gdb_prompt);
prompt. */
if (!current_interp_display_prompt_p ()) /* Do not call the python hook on an explicit prompt change as
Index: gdb-7.6.90.20140127/gdb/symfile.h Index: gdb-7.7.50.20140609/gdb/symfile.h
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/symfile.h 2014-02-06 17:18:33.865724666 +0100 --- gdb-7.7.50.20140609.orig/gdb/symfile.h 2014-06-13 20:10:19.633787643 +0200
+++ gdb-7.6.90.20140127/gdb/symfile.h 2014-02-06 17:08:56.282099150 +0100 +++ gdb-7.7.50.20140609/gdb/symfile.h 2014-06-13 20:10:31.066799158 +0200
@@ -557,6 +557,8 @@ extern struct cleanup *increment_reading @@ -573,6 +573,8 @@ void map_symbol_filenames (symbol_filena
/* build-id support. */ /* build-id support. */
extern struct elf_build_id *build_id_addr_get (CORE_ADDR addr); extern struct elf_build_id *build_id_addr_get (CORE_ADDR addr);
extern void debug_print_missing (const char *binary, const char *debug); extern void debug_print_missing (const char *binary, const char *debug);
@ -41,11 +41,11 @@ Index: gdb-7.6.90.20140127/gdb/symfile.h
/* From dwarf2read.c */ /* From dwarf2read.c */
Index: gdb-7.6.90.20140127/gdb/testsuite/lib/gdb.exp Index: gdb-7.7.50.20140609/gdb/testsuite/lib/gdb.exp
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/lib/gdb.exp 2014-02-06 17:18:26.969717214 +0100 --- gdb-7.7.50.20140609.orig/gdb/testsuite/lib/gdb.exp 2014-06-13 20:10:19.634787644 +0200
+++ gdb-7.6.90.20140127/gdb/testsuite/lib/gdb.exp 2014-02-06 17:18:33.866724667 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/lib/gdb.exp 2014-06-13 20:10:31.067799159 +0200
@@ -1504,7 +1504,7 @@ proc default_gdb_start { } { @@ -1492,7 +1492,7 @@ proc default_gdb_start { } {
warning "Couldn't set the width to 0." warning "Couldn't set the width to 0."
} }
} }
@ -54,10 +54,10 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/lib/gdb.exp
send_gdb "set build-id-verbose 0\n" send_gdb "set build-id-verbose 0\n"
gdb_expect 10 { gdb_expect 10 {
-re "$gdb_prompt $" { -re "$gdb_prompt $" {
Index: gdb-7.6.90.20140127/gdb/testsuite/lib/mi-support.exp Index: gdb-7.7.50.20140609/gdb/testsuite/lib/mi-support.exp
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/lib/mi-support.exp 2014-02-06 17:18:26.970717215 +0100 --- gdb-7.7.50.20140609.orig/gdb/testsuite/lib/mi-support.exp 2014-06-13 20:10:19.635787645 +0200
+++ gdb-7.6.90.20140127/gdb/testsuite/lib/mi-support.exp 2014-02-06 17:18:33.867724668 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/lib/mi-support.exp 2014-06-13 20:10:31.068799160 +0200
@@ -212,7 +212,7 @@ proc default_mi_gdb_start { args } { @@ -212,7 +212,7 @@ proc default_mi_gdb_start { args } {
warning "Couldn't set the width to 0." warning "Couldn't set the width to 0."
} }
@ -67,22 +67,22 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/lib/mi-support.exp
send_gdb "190-gdb-set build-id-verbose 0\n" send_gdb "190-gdb-set build-id-verbose 0\n"
gdb_expect 10 { gdb_expect 10 {
-re ".*190-gdb-set build-id-verbose 0\r\n190\\\^done\r\n$mi_gdb_prompt$" { -re ".*190-gdb-set build-id-verbose 0\r\n190\\\^done\r\n$mi_gdb_prompt$" {
Index: gdb-7.6.90.20140127/gdb/tui/tui-interp.c Index: gdb-7.7.50.20140609/gdb/tui/tui-interp.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/tui/tui-interp.c 2014-02-06 17:18:26.970717215 +0100 --- gdb-7.7.50.20140609.orig/gdb/tui/tui-interp.c 2014-06-13 20:10:31.068799160 +0200
+++ gdb-7.6.90.20140127/gdb/tui/tui-interp.c 2014-02-06 17:18:33.867724668 +0100 +++ gdb-7.7.50.20140609/gdb/tui/tui-interp.c 2014-06-13 20:10:47.806816542 +0200
@@ -30,6 +30,7 @@ @@ -32,6 +32,7 @@
#include "tui/tui.h"
#include "tui/tui-io.h"
#include "exceptions.h" #include "exceptions.h"
#include "infrun.h"
#include "observer.h"
+#include "symfile.h" +#include "symfile.h"
/* Set to 1 when the TUI mode must be activated when we first start static struct ui_out *tui_ui_out (struct interp *self);
gdb. */
Index: gdb-7.6.90.20140127/gdb/aclocal.m4 Index: gdb-7.7.50.20140609/gdb/aclocal.m4
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/aclocal.m4 2014-02-06 17:18:33.868724669 +0100 --- gdb-7.7.50.20140609.orig/gdb/aclocal.m4 2014-06-13 20:10:19.636787646 +0200
+++ gdb-7.6.90.20140127/gdb/aclocal.m4 2014-02-06 17:09:49.877157405 +0100 +++ gdb-7.7.50.20140609/gdb/aclocal.m4 2014-06-13 20:10:31.069799161 +0200
@@ -11,6 +11,221 @@ @@ -11,6 +11,221 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@ -305,10 +305,10 @@ Index: gdb-7.6.90.20140127/gdb/aclocal.m4
# AM_AUX_DIR_EXPAND -*- Autoconf -*- # AM_AUX_DIR_EXPAND -*- Autoconf -*-
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
Index: gdb-7.6.90.20140127/gdb/config.in Index: gdb-7.7.50.20140609/gdb/config.in
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/config.in 2014-02-06 17:18:26.971717216 +0100 --- gdb-7.7.50.20140609.orig/gdb/config.in 2014-06-13 20:10:19.637787647 +0200
+++ gdb-7.6.90.20140127/gdb/config.in 2014-02-06 17:18:33.868724669 +0100 +++ gdb-7.7.50.20140609/gdb/config.in 2014-06-13 20:10:31.069799161 +0200
@@ -33,6 +33,9 @@ @@ -33,6 +33,9 @@
/* Define to BFD's default target vector. */ /* Define to BFD's default target vector. */
#undef DEFAULT_BFD_VEC #undef DEFAULT_BFD_VEC
@ -319,7 +319,7 @@ Index: gdb-7.6.90.20140127/gdb/config.in
/* Define to 1 if translation of program messages to the user's native /* Define to 1 if translation of program messages to the user's native
language is requested. */ language is requested. */
#undef ENABLE_NLS #undef ENABLE_NLS
@@ -207,6 +210,9 @@ @@ -210,6 +213,9 @@
/* Define if Python 2.7 is being used. */ /* Define if Python 2.7 is being used. */
#undef HAVE_LIBPYTHON2_7 #undef HAVE_LIBPYTHON2_7
@ -329,11 +329,11 @@ Index: gdb-7.6.90.20140127/gdb/config.in
/* Define to 1 if you have the <libunwind-ia64.h> header file. */ /* Define to 1 if you have the <libunwind-ia64.h> header file. */
#undef HAVE_LIBUNWIND_IA64_H #undef HAVE_LIBUNWIND_IA64_H
Index: gdb-7.6.90.20140127/gdb/configure Index: gdb-7.7.50.20140609/gdb/configure
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/configure 2014-02-06 17:18:26.976717221 +0100 --- gdb-7.7.50.20140609.orig/gdb/configure 2014-06-13 20:10:19.642787652 +0200
+++ gdb-7.6.90.20140127/gdb/configure 2014-02-06 17:18:33.872724673 +0100 +++ gdb-7.7.50.20140609/gdb/configure 2014-06-13 20:10:31.073799165 +0200
@@ -689,6 +689,11 @@ PKGVERSION @@ -692,6 +692,11 @@ PKGVERSION
HAVE_NATIVE_GCORE_TARGET HAVE_NATIVE_GCORE_TARGET
TARGET_OBS TARGET_OBS
subdirs subdirs
@ -345,7 +345,7 @@ Index: gdb-7.6.90.20140127/gdb/configure
GDB_DATADIR GDB_DATADIR
DEBUGDIR DEBUGDIR
MAKEINFO_EXTRA_FLAGS MAKEINFO_EXTRA_FLAGS
@@ -792,6 +797,7 @@ with_gdb_datadir @@ -795,6 +800,7 @@ with_gdb_datadir
with_relocated_sources with_relocated_sources
with_auto_load_dir with_auto_load_dir
with_auto_load_safe_path with_auto_load_safe_path
@ -353,7 +353,7 @@ Index: gdb-7.6.90.20140127/gdb/configure
enable_targets enable_targets
enable_64_bit_bfd enable_64_bit_bfd
enable_gdbcli enable_gdbcli
@@ -842,6 +848,11 @@ CPPFLAGS @@ -846,6 +852,11 @@ CPPFLAGS
CPP CPP
MAKEINFO MAKEINFO
MAKEINFOFLAGS MAKEINFOFLAGS
@ -365,7 +365,7 @@ Index: gdb-7.6.90.20140127/gdb/configure
YACC YACC
YFLAGS YFLAGS
XMKMF' XMKMF'
@@ -1512,6 +1523,8 @@ Optional Packages: @@ -1516,6 +1527,8 @@ Optional Packages:
[--with-auto-load-dir] [--with-auto-load-dir]
--without-auto-load-safe-path --without-auto-load-safe-path
do not restrict auto-loaded files locations do not restrict auto-loaded files locations
@ -374,7 +374,7 @@ Index: gdb-7.6.90.20140127/gdb/configure
--with-libunwind-ia64 use libunwind frame unwinding for ia64 targets --with-libunwind-ia64 use libunwind frame unwinding for ia64 targets
--with-curses use the curses library instead of the termcap --with-curses use the curses library instead of the termcap
library library
@@ -1559,6 +1572,13 @@ Some influential environment variables: @@ -1565,6 +1578,13 @@ Some influential environment variables:
MAKEINFO Parent configure detects if it is of sufficient version. MAKEINFO Parent configure detects if it is of sufficient version.
MAKEINFOFLAGS MAKEINFOFLAGS
Parameters for MAKEINFO. Parameters for MAKEINFO.
@ -388,7 +388,7 @@ Index: gdb-7.6.90.20140127/gdb/configure
YACC The `Yet Another C Compiler' implementation to use. Defaults to YACC The `Yet Another C Compiler' implementation to use. Defaults to
the first program found out of: `bison -y', `byacc', `yacc'. the first program found out of: `bison -y', `byacc', `yacc'.
YFLAGS The list of arguments that will be passed by default to $YACC. YFLAGS The list of arguments that will be passed by default to $YACC.
@@ -5154,6 +5174,491 @@ _ACEOF @@ -5160,6 +5180,491 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_auto_load_safe_path" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_auto_load_safe_path" >&5
$as_echo "$with_auto_load_safe_path" >&6; } $as_echo "$with_auto_load_safe_path" >&6; }
@ -880,10 +880,10 @@ Index: gdb-7.6.90.20140127/gdb/configure
subdirs="$subdirs testsuite" subdirs="$subdirs testsuite"
Index: gdb-7.6.90.20140127/gdb/configure.ac Index: gdb-7.7.50.20140609/gdb/configure.ac
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/configure.ac 2014-02-06 17:18:26.977717223 +0100 --- gdb-7.7.50.20140609.orig/gdb/configure.ac 2014-06-13 20:10:19.643787653 +0200
+++ gdb-7.6.90.20140127/gdb/configure.ac 2014-02-06 17:18:33.873724674 +0100 +++ gdb-7.7.50.20140609/gdb/configure.ac 2014-06-13 20:10:31.074799166 +0200
@@ -165,6 +165,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escap @@ -165,6 +165,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escap
[Directories safe to hold auto-loaded files.]) [Directories safe to hold auto-loaded files.])
AC_MSG_RESULT([$with_auto_load_safe_path]) AC_MSG_RESULT([$with_auto_load_safe_path])
@ -1084,11 +1084,11 @@ Index: gdb-7.6.90.20140127/gdb/configure.ac
AC_CONFIG_SUBDIRS(testsuite) AC_CONFIG_SUBDIRS(testsuite)
# Check whether to support alternative target configurations # Check whether to support alternative target configurations
Index: gdb-7.6.90.20140127/gdb/corelow.c Index: gdb-7.7.50.20140609/gdb/corelow.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/corelow.c 2014-02-06 17:18:26.978717224 +0100 --- gdb-7.7.50.20140609.orig/gdb/corelow.c 2014-06-13 20:10:19.644787654 +0200
+++ gdb-7.6.90.20140127/gdb/corelow.c 2014-02-06 17:18:33.873724674 +0100 +++ gdb-7.7.50.20140609/gdb/corelow.c 2014-06-13 20:10:31.074799166 +0200
@@ -315,7 +315,7 @@ build_id_locate_exec (int from_tty) @@ -316,7 +316,7 @@ build_id_locate_exec (int from_tty)
symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED; symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED;
} }
else else
@ -1097,10 +1097,10 @@ Index: gdb-7.6.90.20140127/gdb/corelow.c
do_cleanups (back_to); do_cleanups (back_to);
Index: gdb-7.6.90.20140127/gdb/build-id.c Index: gdb-7.7.50.20140609/gdb/build-id.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/build-id.c 2014-02-06 17:18:26.842717077 +0100 --- gdb-7.7.50.20140609.orig/gdb/build-id.c 2014-06-13 20:10:19.644787654 +0200
+++ gdb-7.6.90.20140127/gdb/build-id.c 2014-02-06 17:08:18.341060295 +0100 +++ gdb-7.7.50.20140609/gdb/build-id.c 2014-06-13 20:10:31.075799167 +0200
@@ -32,6 +32,7 @@ @@ -32,6 +32,7 @@
#include "gdbcmd.h" #include "gdbcmd.h"
#include "observer.h" #include "observer.h"

View File

@ -1,8 +1,8 @@
Index: gdb-7.6.90.20140127/gdb/corelow.c Index: gdb-7.7.50.20140609/gdb/corelow.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/corelow.c 2014-01-27 02:57:53.000000000 +0100 --- gdb-7.7.50.20140609.orig/gdb/corelow.c 2014-06-13 20:09:37.369745221 +0200
+++ gdb-7.6.90.20140127/gdb/corelow.c 2014-02-06 16:46:52.261646499 +0100 +++ gdb-7.7.50.20140609/gdb/corelow.c 2014-06-13 20:09:42.407750265 +0200
@@ -48,6 +48,10 @@ @@ -49,6 +49,10 @@
#include "gdb_bfd.h" #include "gdb_bfd.h"
#include "completer.h" #include "completer.h"
#include "filestuff.h" #include "filestuff.h"
@ -13,7 +13,7 @@ Index: gdb-7.6.90.20140127/gdb/corelow.c
#ifndef O_LARGEFILE #ifndef O_LARGEFILE
#define O_LARGEFILE 0 #define O_LARGEFILE 0
@@ -271,6 +275,53 @@ add_to_thread_list (bfd *abfd, asection @@ -272,6 +276,53 @@ add_to_thread_list (bfd *abfd, asection
inferior_ptid = ptid; /* Yes, make it current. */ inferior_ptid = ptid; /* Yes, make it current. */
} }
@ -67,7 +67,7 @@ Index: gdb-7.6.90.20140127/gdb/corelow.c
/* This routine opens and sets up the core file bfd. */ /* This routine opens and sets up the core file bfd. */
static void static void
@@ -409,6 +460,14 @@ core_open (char *filename, int from_tty) @@ -410,6 +461,14 @@ core_open (char *filename, int from_tty)
switch_to_thread (thread->ptid); switch_to_thread (thread->ptid);
} }
@ -82,7 +82,7 @@ Index: gdb-7.6.90.20140127/gdb/corelow.c
post_create_inferior (&core_ops, from_tty); post_create_inferior (&core_ops, from_tty);
/* Now go through the target stack looking for threads since there /* Now go through the target stack looking for threads since there
@@ -980,4 +1039,11 @@ _initialize_corelow (void) @@ -1029,4 +1088,11 @@ _initialize_corelow (void)
init_core_ops (); init_core_ops ();
add_target_with_completer (&core_ops, filename_completer); add_target_with_completer (&core_ops, filename_completer);
@ -94,11 +94,11 @@ Index: gdb-7.6.90.20140127/gdb/corelow.c
+ NULL, NULL, NULL, + NULL, NULL, NULL,
+ &setlist, &showlist); + &setlist, &showlist);
} }
Index: gdb-7.6.90.20140127/gdb/doc/gdb.texinfo Index: gdb-7.7.50.20140609/gdb/doc/gdb.texinfo
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/doc/gdb.texinfo 2014-02-06 16:46:51.804645989 +0100 --- gdb-7.7.50.20140609.orig/gdb/doc/gdb.texinfo 2014-06-13 20:09:37.380745232 +0200
+++ gdb-7.6.90.20140127/gdb/doc/gdb.texinfo 2014-02-06 16:46:52.110646331 +0100 +++ gdb-7.7.50.20140609/gdb/doc/gdb.texinfo 2014-06-13 20:09:42.417750275 +0200
@@ -17413,6 +17413,27 @@ information files. @@ -17547,6 +17547,27 @@ information files.
@end table @end table
@ -126,11 +126,11 @@ Index: gdb-7.6.90.20140127/gdb/doc/gdb.texinfo
@cindex @code{.gnu_debuglink} sections @cindex @code{.gnu_debuglink} sections
@cindex debug link sections @cindex debug link sections
A debug link is a special section of the executable file named A debug link is a special section of the executable file named
Index: gdb-7.6.90.20140127/gdb/solib-svr4.c Index: gdb-7.7.50.20140609/gdb/solib-svr4.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/solib-svr4.c 2014-01-27 02:57:53.000000000 +0100 --- gdb-7.7.50.20140609.orig/gdb/solib-svr4.c 2014-06-13 20:09:37.382745234 +0200
+++ gdb-7.6.90.20140127/gdb/solib-svr4.c 2014-02-06 16:49:27.508819174 +0100 +++ gdb-7.7.50.20140609/gdb/solib-svr4.c 2014-06-13 20:09:42.418750276 +0200
@@ -47,6 +47,7 @@ @@ -48,6 +48,7 @@
#include "exceptions.h" #include "exceptions.h"
#include "gdb_bfd.h" #include "gdb_bfd.h"
#include "probe.h" #include "probe.h"
@ -194,11 +194,11 @@ Index: gdb-7.6.90.20140127/gdb/solib-svr4.c
xfree (buffer); xfree (buffer);
/* If this entry has no name, or its name matches the name /* If this entry has no name, or its name matches the name
Index: gdb-7.6.90.20140127/gdb/elfread.c Index: gdb-7.7.50.20140609/gdb/elfread.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/elfread.c 2014-01-27 02:57:53.000000000 +0100 --- gdb-7.7.50.20140609.orig/gdb/elfread.c 2014-06-13 20:09:37.383745235 +0200
+++ gdb-7.6.90.20140127/gdb/elfread.c 2014-02-06 16:46:52.249646486 +0100 +++ gdb-7.7.50.20140609/gdb/elfread.c 2014-06-13 20:09:42.418750276 +0200
@@ -1316,9 +1316,10 @@ elf_symfile_read (struct objfile *objfil @@ -1335,9 +1335,10 @@ elf_symfile_read (struct objfile *objfil
&& objfile->separate_debug_objfile == NULL && objfile->separate_debug_objfile == NULL
&& objfile->separate_debug_objfile_backlink == NULL) && objfile->separate_debug_objfile_backlink == NULL)
{ {
@ -211,7 +211,7 @@ Index: gdb-7.6.90.20140127/gdb/elfread.c
if (debugfile == NULL) if (debugfile == NULL)
debugfile = find_separate_debug_file_by_debuglink (objfile); debugfile = find_separate_debug_file_by_debuglink (objfile);
@@ -1332,6 +1333,12 @@ elf_symfile_read (struct objfile *objfil @@ -1351,6 +1352,12 @@ elf_symfile_read (struct objfile *objfil
symbol_file_add_separate (abfd, debugfile, symfile_flags, objfile); symbol_file_add_separate (abfd, debugfile, symfile_flags, objfile);
do_cleanups (cleanup); do_cleanups (cleanup);
} }
@ -224,13 +224,13 @@ Index: gdb-7.6.90.20140127/gdb/elfread.c
} }
} }
Index: gdb-7.6.90.20140127/gdb/symfile.h Index: gdb-7.7.50.20140609/gdb/symfile.h
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/symfile.h 2014-01-27 02:57:53.000000000 +0100 --- gdb-7.7.50.20140609.orig/gdb/symfile.h 2014-06-13 20:09:42.419750277 +0200
+++ gdb-7.6.90.20140127/gdb/symfile.h 2014-02-06 16:46:52.250646487 +0100 +++ gdb-7.7.50.20140609/gdb/symfile.h 2014-06-13 20:10:04.478772510 +0200
@@ -554,6 +554,10 @@ void free_symfile_segment_data (struct s @@ -570,6 +570,10 @@ void expand_symtabs_matching (expand_sym
void map_symbol_filenames (symbol_filename_ftype *fun, void *data,
extern struct cleanup *increment_reading_symtab (void); int need_fullname);
+/* build-id support. */ +/* build-id support. */
+extern struct elf_build_id *build_id_addr_get (CORE_ADDR addr); +extern struct elf_build_id *build_id_addr_get (CORE_ADDR addr);
@ -239,11 +239,11 @@ Index: gdb-7.6.90.20140127/gdb/symfile.h
/* From dwarf2read.c */ /* From dwarf2read.c */
/* Names for a dwarf2 debugging section. The field NORMAL is the normal /* Names for a dwarf2 debugging section. The field NORMAL is the normal
Index: gdb-7.6.90.20140127/gdb/testsuite/lib/gdb.exp Index: gdb-7.7.50.20140609/gdb/testsuite/lib/gdb.exp
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/lib/gdb.exp 2014-02-06 16:46:51.643645810 +0100 --- gdb-7.7.50.20140609.orig/gdb/testsuite/lib/gdb.exp 2014-06-13 20:09:37.384745236 +0200
+++ gdb-7.6.90.20140127/gdb/testsuite/lib/gdb.exp 2014-02-06 16:46:52.251646488 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/lib/gdb.exp 2014-06-13 20:09:42.420750278 +0200
@@ -1504,6 +1504,16 @@ proc default_gdb_start { } { @@ -1492,6 +1492,16 @@ proc default_gdb_start { } {
warning "Couldn't set the width to 0." warning "Couldn't set the width to 0."
} }
} }
@ -260,10 +260,10 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/lib/gdb.exp
return 0 return 0
} }
Index: gdb-7.6.90.20140127/gdb/testsuite/lib/mi-support.exp Index: gdb-7.7.50.20140609/gdb/testsuite/lib/mi-support.exp
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/lib/mi-support.exp 2014-01-27 02:57:54.000000000 +0100 --- gdb-7.7.50.20140609.orig/gdb/testsuite/lib/mi-support.exp 2014-06-13 20:09:37.385745237 +0200
+++ gdb-7.6.90.20140127/gdb/testsuite/lib/mi-support.exp 2014-02-06 16:46:52.252646489 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/lib/mi-support.exp 2014-06-13 20:09:42.421750279 +0200
@@ -212,6 +212,16 @@ proc default_mi_gdb_start { args } { @@ -212,6 +212,16 @@ proc default_mi_gdb_start { args } {
warning "Couldn't set the width to 0." warning "Couldn't set the width to 0."
} }
@ -281,11 +281,11 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/lib/mi-support.exp
# If allowing the inferior to have its own PTY then assign the inferior # If allowing the inferior to have its own PTY then assign the inferior
# its own terminal device here. # its own terminal device here.
if { $separate_inferior_pty } { if { $separate_inferior_pty } {
Index: gdb-7.6.90.20140127/gdb/objfiles.h Index: gdb-7.7.50.20140609/gdb/objfiles.h
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/objfiles.h 2014-01-27 02:57:53.000000000 +0100 --- gdb-7.7.50.20140609.orig/gdb/objfiles.h 2014-06-13 20:09:37.385745237 +0200
+++ gdb-7.6.90.20140127/gdb/objfiles.h 2014-02-06 16:46:52.113646334 +0100 +++ gdb-7.7.50.20140609/gdb/objfiles.h 2014-06-13 20:09:42.421750279 +0200
@@ -436,6 +436,10 @@ struct objfile @@ -464,6 +464,10 @@ struct objfile
#define OBJF_NOT_FILENAME (1 << 6) #define OBJF_NOT_FILENAME (1 << 6)
@ -296,11 +296,11 @@ Index: gdb-7.6.90.20140127/gdb/objfiles.h
/* Declarations for functions defined in objfiles.c */ /* Declarations for functions defined in objfiles.c */
extern struct objfile *allocate_objfile (bfd *, const char *name, int); extern struct objfile *allocate_objfile (bfd *, const char *name, int);
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.base/corefile.exp Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.base/corefile.exp
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.base/corefile.exp 2014-01-27 02:57:54.000000000 +0100 --- gdb-7.7.50.20140609.orig/gdb/testsuite/gdb.base/corefile.exp 2014-06-13 20:09:37.385745237 +0200
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.base/corefile.exp 2014-02-06 16:46:52.113646334 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/gdb.base/corefile.exp 2014-06-13 20:09:42.421750279 +0200
@@ -281,3 +281,33 @@ gdb_test_multiple "core-file $corefile" @@ -293,3 +293,33 @@ gdb_test_multiple "core-file $corefile"
pass $test pass $test
} }
} }
@ -334,10 +334,10 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.base/corefile.exp
+ 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
+} +}
Index: gdb-7.6.90.20140127/gdb/build-id.c Index: gdb-7.7.50.20140609/gdb/build-id.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/build-id.c 2014-01-27 02:57:53.000000000 +0100 --- gdb-7.7.50.20140609.orig/gdb/build-id.c 2014-06-13 20:09:37.386745238 +0200
+++ gdb-7.6.90.20140127/gdb/build-id.c 2014-02-06 16:46:52.113646334 +0100 +++ gdb-7.7.50.20140609/gdb/build-id.c 2014-06-13 20:09:42.422750280 +0200
@@ -27,11 +27,65 @@ @@ -27,11 +27,65 @@
#include "symfile.h" #include "symfile.h"
#include "objfiles.h" #include "objfiles.h"
@ -1160,10 +1160,10 @@ Index: gdb-7.6.90.20140127/gdb/build-id.c
+ +
+ observer_attach_executable_changed (debug_print_executable_changed); + observer_attach_executable_changed (debug_print_executable_changed);
+} +}
Index: gdb-7.6.90.20140127/gdb/build-id.h Index: gdb-7.7.50.20140609/gdb/build-id.h
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/build-id.h 2014-01-27 02:57:53.000000000 +0100 --- gdb-7.7.50.20140609.orig/gdb/build-id.h 2014-06-13 20:09:37.386745238 +0200
+++ gdb-7.6.90.20140127/gdb/build-id.h 2014-02-06 16:46:52.114646335 +0100 +++ gdb-7.7.50.20140609/gdb/build-id.h 2014-06-13 20:09:42.422750280 +0200
@@ -32,13 +32,18 @@ extern int build_id_verify (bfd *abfd, @@ -32,13 +32,18 @@ extern int build_id_verify (bfd *abfd,
the caller. */ the caller. */
@ -1185,11 +1185,11 @@ Index: gdb-7.6.90.20140127/gdb/build-id.h
+ char **build_id_filename_return); + char **build_id_filename_return);
#endif /* BUILD_ID_H */ #endif /* BUILD_ID_H */
Index: gdb-7.6.90.20140127/gdb/dwarf2read.c Index: gdb-7.7.50.20140609/gdb/dwarf2read.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/dwarf2read.c 2014-02-06 16:46:51.809645995 +0100 --- gdb-7.7.50.20140609.orig/gdb/dwarf2read.c 2014-06-13 20:09:37.389745241 +0200
+++ gdb-7.6.90.20140127/gdb/dwarf2read.c 2014-02-06 16:49:55.679850414 +0100 +++ gdb-7.7.50.20140609/gdb/dwarf2read.c 2014-06-13 20:09:42.425750283 +0200
@@ -2429,7 +2429,7 @@ dwarf2_get_dwz_file (void) @@ -2446,7 +2446,7 @@ dwarf2_get_dwz_file (void)
} }
if (dwz_bfd == NULL) if (dwz_bfd == NULL)

View File

@ -1,8 +1,8 @@
Index: gdb-7.6.90.20140127/gdb/infrun.c Index: gdb-7.7.50.20140609/gdb/infrun.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/infrun.c 2014-02-04 23:48:27.262092869 +0100 --- gdb-7.7.50.20140609.orig/gdb/infrun.c 2014-06-13 20:08:51.225699203 +0200
+++ gdb-7.6.90.20140127/gdb/infrun.c 2014-02-04 23:48:31.674096613 +0100 +++ gdb-7.7.50.20140609/gdb/infrun.c 2014-06-13 20:08:55.515703466 +0200
@@ -1618,7 +1618,7 @@ static const char *const scheduler_enums @@ -1661,7 +1661,7 @@ static const char *const scheduler_enums
schedlock_step, schedlock_step,
NULL NULL
}; };
@ -11,11 +11,11 @@ Index: gdb-7.6.90.20140127/gdb/infrun.c
static void static void
show_scheduler_mode (struct ui_file *file, int from_tty, show_scheduler_mode (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value) struct cmd_list_element *c, const char *value)
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.mi/mi-cli.exp Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.mi/mi-cli.exp
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.mi/mi-cli.exp 2014-02-04 23:48:27.263092871 +0100 --- gdb-7.7.50.20140609.orig/gdb/testsuite/gdb.mi/mi-cli.exp 2014-06-13 20:08:55.515703466 +0200
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.mi/mi-cli.exp 2014-02-04 23:48:31.674096613 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/gdb.mi/mi-cli.exp 2014-06-13 20:09:24.862732832 +0200
@@ -163,7 +163,7 @@ mi_execute_to "exec-continue" "breakpoin @@ -181,7 +181,7 @@ mi_expect_stop "breakpoint-hit" "main" "
# Test that the token is output even for CLI commands # Test that the token is output even for CLI commands
# Also test that *stopped includes frame information. # Also test that *stopped includes frame information.
mi_gdb_test "34 next" \ mi_gdb_test "34 next" \
@ -23,11 +23,11 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.mi/mi-cli.exp
+ ".*34\\\^running.*\\*running,thread-id=\"1\"" \ + ".*34\\\^running.*\\*running,thread-id=\"1\"" \
"34 next: run" "34 next: run"
if {!$async} { # Test that the new current source line is output to the console
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.mi/mi-logging.exp Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.mi/mi-logging.exp
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.mi/mi-logging.exp 2014-02-04 23:48:27.263092871 +0100 --- gdb-7.7.50.20140609.orig/gdb/testsuite/gdb.mi/mi-logging.exp 2014-06-13 20:08:51.227699205 +0200
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.mi/mi-logging.exp 2014-02-04 23:48:31.674096613 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/gdb.mi/mi-logging.exp 2014-06-13 20:08:55.516703467 +0200
@@ -53,7 +53,7 @@ close $chan @@ -53,7 +53,7 @@ close $chan
set mi_log_prompt "\[(\]gdb\[)\] \[\r\n\]+" set mi_log_prompt "\[(\]gdb\[)\] \[\r\n\]+"
@ -46,10 +46,10 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.mi/mi-logging.exp
pass "Redirect log file contents" pass "Redirect log file contents"
} else { } else {
fail "Redirect log file contents" fail "Redirect log file contents"
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.mi/mi-console.exp Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.mi/mi-console.exp
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.mi/mi-console.exp 2014-02-04 23:48:31.675096666 +0100 --- gdb-7.7.50.20140609.orig/gdb/testsuite/gdb.mi/mi-console.exp 2014-06-13 20:08:51.227699205 +0200
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.mi/mi-console.exp 2014-02-04 23:48:55.981127963 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/gdb.mi/mi-console.exp 2014-06-13 20:08:55.516703467 +0200
@@ -60,6 +60,9 @@ if { [gdb_compile "${srcdir}/${subdir}/ @@ -60,6 +60,9 @@ if { [gdb_compile "${srcdir}/${subdir}/
mi_run_to_main mi_run_to_main

View File

@ -21,41 +21,20 @@
Port to GDB-6.8pre. Port to GDB-6.8pre.
Index: gdb-7.6.90.20140127/gdb/inferior.h Index: gdb-7.7.90.20140613/gdb/infrun.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/inferior.h 2014-01-27 22:05:28.801895347 +0100 --- gdb-7.7.90.20140613.orig/gdb/infrun.c 2014-06-13 03:59:36.000000000 +0200
+++ gdb-7.6.90.20140127/gdb/inferior.h 2014-01-27 22:33:45.230157813 +0100 +++ gdb-7.7.90.20140613/gdb/infrun.c 2014-06-13 21:36:43.637294782 +0200
@@ -155,7 +155,15 @@ extern void reopen_exec_file (void); @@ -84,7 +84,7 @@ static int follow_fork (void);
/* The `resume' routine should only be called in special circumstances.
Normally, use `proceed', which handles a lot of bookkeeping. */
-extern void resume (int, enum gdb_signal);
+enum resume_step
+ {
+ /* currently_stepping () should return non-zero for non-continue. */
+ RESUME_STEP_CONTINUE = 0,
+ RESUME_STEP_USER, /* Stepping is intentional by the user. */
+ RESUME_STEP_NEEDED /* Stepping only for software watchpoints. */
+ };
+
+extern void resume (enum resume_step, enum gdb_signal);
extern ptid_t user_visible_resume_ptid (int step);
Index: gdb-7.6.90.20140127/gdb/infrun.c
===================================================================
--- gdb-7.6.90.20140127.orig/gdb/infrun.c 2014-01-27 22:05:28.804895349 +0100
+++ gdb-7.6.90.20140127/gdb/infrun.c 2014-01-27 22:35:12.781224279 +0100
@@ -83,7 +83,7 @@ static int follow_fork (void);
static void set_schedlock_func (char *args, int from_tty, static void set_schedlock_func (char *args, int from_tty,
struct cmd_list_element *c); struct cmd_list_element *c);
-static int currently_stepping (struct thread_info *tp); -static int currently_stepping (struct thread_info *tp);
+static enum resume_step currently_stepping (struct thread_info *tp); +static enum resume_step currently_stepping (struct thread_info *tp);
static int currently_stepping_or_nexting_callback (struct thread_info *tp, static void xdb_handle_command (char *args, int from_tty);
void *data);
@@ -1699,7 +1699,8 @@ user_visible_resume_ptid (int step) @@ -1742,7 +1742,8 @@ user_visible_resume_ptid (int step)
} }
else if ((scheduler_mode == schedlock_on) else if ((scheduler_mode == schedlock_on)
|| (scheduler_mode == schedlock_step || (scheduler_mode == schedlock_step
@ -65,16 +44,16 @@ Index: gdb-7.6.90.20140127/gdb/infrun.c
{ {
/* User-settable 'scheduler' mode requires solo thread resume. */ /* User-settable 'scheduler' mode requires solo thread resume. */
resume_ptid = inferior_ptid; resume_ptid = inferior_ptid;
@@ -1717,7 +1718,7 @@ user_visible_resume_ptid (int step) @@ -1760,7 +1761,7 @@ user_visible_resume_ptid (int step)
STEP nonzero if we should step (zero to continue instead). STEP nonzero if we should step (zero to continue instead).
SIG is the signal to give the inferior (zero for none). */ SIG is the signal to give the inferior (zero for none). */
void void
-resume (int step, enum gdb_signal sig) -resume (int step, enum gdb_signal sig)
+resume (enum resume_step step, enum gdb_signal sig) +resume (enum resume_step step, enum gdb_signal sig)
{ {
int should_resume = 1;
struct cleanup *old_cleanups = make_cleanup (resume_cleanups, 0); struct cleanup *old_cleanups = make_cleanup (resume_cleanups, 0);
@@ -1750,9 +1751,13 @@ resume (int step, enum gdb_signal sig) struct regcache *regcache = get_current_regcache ();
@@ -1800,9 +1801,13 @@ resume (int step, enum gdb_signal sig)
if (debug_infrun) if (debug_infrun)
fprintf_unfiltered (gdb_stdlog, fprintf_unfiltered (gdb_stdlog,
@ -90,64 +69,59 @@ Index: gdb-7.6.90.20140127/gdb/infrun.c
tp->control.trap_expected, tp->control.trap_expected,
target_pid_to_str (inferior_ptid), target_pid_to_str (inferior_ptid),
paddress (gdbarch, pc)); paddress (gdbarch, pc));
@@ -2147,7 +2152,7 @@ proceed (CORE_ADDR addr, enum gdb_signal @@ -2188,6 +2193,7 @@ proceed (CORE_ADDR addr, enum gdb_signal
struct thread_info *tp;
CORE_ADDR pc; CORE_ADDR pc;
struct address_space *aspace; struct address_space *aspace;
/* GDB may force the inferior to step due to various reasons. */
- int force_step = 0;
+ enum resume_step resume_step = RESUME_STEP_CONTINUE; + enum resume_step resume_step = RESUME_STEP_CONTINUE;
/* If we're stopped at a fork/vfork, follow the branch set by the /* If we're stopped at a fork/vfork, follow the branch set by the
"set follow-fork-mode" command; otherwise, we'll just proceed "set follow-fork-mode" command; otherwise, we'll just proceed
@@ -2187,13 +2192,13 @@ proceed (CORE_ADDR addr, enum gdb_signal @@ -2230,13 +2236,19 @@ proceed (CORE_ADDR addr, enum gdb_signal
Note, we don't do this in reverse, because we won't
actually be executing the breakpoint insn anyway. actually be executing the breakpoint insn anyway.
We'll be (un-)executing the previous instruction. */ We'll be (un-)executing the previous instruction. */
+ {
- force_step = 1; tp->stepping_over_breakpoint = 1;
+ resume_step = RESUME_STEP_USER; + resume_step = RESUME_STEP_USER;
+ }
else if (gdbarch_single_step_through_delay_p (gdbarch) else if (gdbarch_single_step_through_delay_p (gdbarch)
&& gdbarch_single_step_through_delay (gdbarch, && gdbarch_single_step_through_delay (gdbarch,
get_current_frame ())) get_current_frame ()))
/* We stepped onto an instruction that needs to be stepped /* We stepped onto an instruction that needs to be stepped
again before re-inserting the breakpoint, do so. */ again before re-inserting the breakpoint, do so. */
- force_step = 1; + {
tp->stepping_over_breakpoint = 1;
+ resume_step = RESUME_STEP_USER; + resume_step = RESUME_STEP_USER;
+ }
} }
else else
{ {
@@ -2225,13 +2230,13 @@ proceed (CORE_ADDR addr, enum gdb_signal @@ -2288,6 +2300,7 @@ proceed (CORE_ADDR addr, enum gdb_signal
is required it returns TRUE and sets the current thread to tp->prev_pc = regcache_read_pc (get_current_regcache ());
the old thread. */ switch_to_thread (step_over->ptid);
if (prepare_to_proceed (step)) tp = step_over;
- force_step = 1; + resume_step = RESUME_STEP_USER;
+ resume_step = RESUME_STEP_USER; }
} }
/* prepare_to_proceed may change the current thread. */ @@ -2375,9 +2388,13 @@ proceed (CORE_ADDR addr, enum gdb_signal
tp = inferior_thread ();
- if (force_step)
+ if (resume_step == RESUME_STEP_USER)
{
tp->control.trap_expected = 1;
/* If displaced stepping is enabled, we can step over the
@@ -2318,9 +2323,13 @@ proceed (CORE_ADDR addr, enum gdb_signal
/* Reset to normal state. */ /* Reset to normal state. */
init_infwait_state (); init_infwait_state ();
+ if (step) + if (tp->control.trap_expected || step)
+ resume_step = RESUME_STEP_USER; + resume_step = RESUME_STEP_USER;
+ if (resume_step == RESUME_STEP_CONTINUE && bpstat_should_step ()) + if (resume_step == RESUME_STEP_CONTINUE && bpstat_should_step ())
+ resume_step = RESUME_STEP_NEEDED; + resume_step = RESUME_STEP_NEEDED;
+ +
/* Resume inferior. */ /* Resume inferior. */
- resume (force_step || step || bpstat_should_step (), - resume (tp->control.trap_expected || step || bpstat_should_step (),
- tp->suspend.stop_signal); - tp->suspend.stop_signal);
+ resume (resume_step, tp->suspend.stop_signal); + resume (resume_step, tp->suspend.stop_signal);
/* Wait for it to stop (if not standalone) /* Wait for it to stop (if not standalone)
and in any case decode why it stopped, and act accordingly. */ and in any case decode why it stopped, and act accordingly. */
@@ -5332,13 +5341,18 @@ switch_back_to_stepped_thread (struct ex @@ -5359,13 +5376,16 @@ switch_back_to_stepped_thread (struct ex
/* Is thread TP in the middle of single-stepping? */ /* Is thread TP in the middle of single-stepping? */
@ -156,26 +130,23 @@ Index: gdb-7.6.90.20140127/gdb/infrun.c
currently_stepping (struct thread_info *tp) currently_stepping (struct thread_info *tp)
{ {
- return ((tp->control.step_range_end - return ((tp->control.step_range_end
- && tp->control.step_resume_breakpoint == NULL) + if ((tp->control.step_range_end
&& tp->control.step_resume_breakpoint == NULL)
- || tp->control.trap_expected - || tp->control.trap_expected
- || bpstat_should_step ()); - || bpstat_should_step ());
+ if ((tp->control.step_range_end + || tp->control.trap_expected)
+ && tp->control.step_resume_breakpoint == NULL)
+ || tp->control.trap_expected)
+ return RESUME_STEP_USER; + return RESUME_STEP_USER;
+ + if (bpstat_should_step ())
+ if (bpstat_should_step ())
+ return RESUME_STEP_NEEDED; + return RESUME_STEP_NEEDED;
+
+ return RESUME_STEP_CONTINUE; + return RESUME_STEP_CONTINUE;
} }
/* Returns true if any thread *but* the one passed in "data" is in the /* Inferior has stepped into a subroutine call with source code that
Index: gdb-7.6.90.20140127/gdb/linux-nat.c Index: gdb-7.7.90.20140613/gdb/linux-nat.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/linux-nat.c 2014-01-27 22:05:28.806895350 +0100 --- gdb-7.7.90.20140613.orig/gdb/linux-nat.c 2014-06-13 03:59:37.000000000 +0200
+++ gdb-7.6.90.20140127/gdb/linux-nat.c 2014-01-27 22:33:45.330157889 +0100 +++ gdb-7.7.90.20140613/gdb/linux-nat.c 2014-06-13 21:31:19.449949814 +0200
@@ -2697,7 +2697,11 @@ static int @@ -2709,7 +2709,11 @@ static int
select_singlestep_lwp_callback (struct lwp_info *lp, void *data) select_singlestep_lwp_callback (struct lwp_info *lp, void *data)
{ {
if (lp->last_resume_kind == resume_step if (lp->last_resume_kind == resume_step
@ -188,11 +159,19 @@ Index: gdb-7.6.90.20140127/gdb/linux-nat.c
return 1; return 1;
else else
return 0; return 0;
Index: gdb-7.6.90.20140127/gdb/linux-nat.h Index: gdb-7.7.90.20140613/gdb/linux-nat.h
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/linux-nat.h 2014-01-27 22:05:28.807895351 +0100 --- gdb-7.7.90.20140613.orig/gdb/linux-nat.h 2014-06-13 03:59:37.000000000 +0200
+++ gdb-7.6.90.20140127/gdb/linux-nat.h 2014-01-27 22:33:45.334157892 +0100 +++ gdb-7.7.90.20140613/gdb/linux-nat.h 2014-06-13 21:31:19.449949814 +0200
@@ -59,8 +59,8 @@ struct lwp_info @@ -18,6 +18,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "target.h"
+#include "infrun.h"
#include <signal.h>
@@ -59,8 +60,8 @@ struct lwp_info
/* If non-zero, a pending wait status. */ /* If non-zero, a pending wait status. */
int status; int status;
@ -203,3 +182,36 @@ Index: gdb-7.6.90.20140127/gdb/linux-nat.h
/* STOPPED_BY_WATCHPOINT is non-zero if this LWP stopped with a data /* STOPPED_BY_WATCHPOINT is non-zero if this LWP stopped with a data
watchpoint trap. */ watchpoint trap. */
Index: gdb-7.7.90.20140613/gdb/infrun.h
===================================================================
--- gdb-7.7.90.20140613.orig/gdb/infrun.h 2014-06-13 03:59:36.000000000 +0200
+++ gdb-7.7.90.20140613/gdb/infrun.h 2014-06-13 21:31:19.449949814 +0200
@@ -89,7 +89,14 @@ extern void proceed (CORE_ADDR, enum gdb
/* The `resume' routine should only be called in special circumstances.
Normally, use `proceed', which handles a lot of bookkeeping. */
-extern void resume (int, enum gdb_signal);
+enum resume_step
+ {
+ /* currently_stepping () should return non-zero for non-continue. */
+ RESUME_STEP_CONTINUE = 0,
+ RESUME_STEP_USER, /* Stepping is intentional by the user. */
+ RESUME_STEP_NEEDED /* Stepping only for software watchpoints. */
+ };
+extern void resume (enum resume_step, enum gdb_signal);
extern ptid_t user_visible_resume_ptid (int step);
diff --git a/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp b/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
index 2a30604..ee1fd11 100644
--- a/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
+++ b/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
@@ -97,7 +97,7 @@ gdb_test "set debug infrun 1"
gdb_test \
"step" \
- ".*need to step-over.*resume \\(step=1.*signal arrived while stepping over breakpoint.*switching back to stepped thread.*stepped to a different line.*callme.*" \
+ ".*need to step-over.*resume \\(step=RESUME_STEP_USER.*signal arrived while stepping over breakpoint.*switching back to stepped thread.*stepped to a different line.*callme.*" \
"step"
set cnt_after [get_value "args\[$my_number\]" "get count after step"]

View File

@ -1,8 +1,8 @@
Index: gdb-7.7/gdb/linux-nat.c Index: gdb-7.7.90.20140613/gdb/linux-nat.c
=================================================================== ===================================================================
--- gdb-7.7.orig/gdb/linux-nat.c 2014-02-09 19:13:32.998214571 +0100 --- gdb-7.7.90.20140613.orig/gdb/linux-nat.c 2014-06-13 23:03:34.364177614 +0200
+++ gdb-7.7/gdb/linux-nat.c 2014-02-09 19:17:37.561499606 +0100 +++ gdb-7.7.90.20140613/gdb/linux-nat.c 2014-06-13 23:05:07.749279122 +0200
@@ -176,6 +176,9 @@ blocked. */ @@ -178,6 +178,9 @@ blocked. */
static struct target_ops *linux_ops; static struct target_ops *linux_ops;
static struct target_ops linux_ops_saved; static struct target_ops linux_ops_saved;
@ -12,7 +12,7 @@ Index: gdb-7.7/gdb/linux-nat.c
/* The method to call, if any, when a new thread is attached. */ /* The method to call, if any, when a new thread is attached. */
static void (*linux_nat_new_thread) (struct lwp_info *); static void (*linux_nat_new_thread) (struct lwp_info *);
@@ -652,7 +655,14 @@ holding the child stopped. Try \"set de @@ -683,7 +686,14 @@ holding the child stopped. Try \"set de
parent_inf->waiting_for_vfork_done = 0; parent_inf->waiting_for_vfork_done = 0;
} }
else if (detach_fork) else if (detach_fork)
@ -28,7 +28,7 @@ Index: gdb-7.7/gdb/linux-nat.c
/* Note that the detach above makes PARENT_INF dangling. */ /* Note that the detach above makes PARENT_INF dangling. */
@@ -1099,6 +1109,7 @@ linux_nat_post_attach_wait (ptid_t ptid, @@ -1107,6 +1117,7 @@ linux_nat_post_attach_wait (ptid_t ptid,
if (debug_linux_nat) if (debug_linux_nat)
fprintf_unfiltered (gdb_stdlog, fprintf_unfiltered (gdb_stdlog,
"LNPAW: Attaching to a stopped process\n"); "LNPAW: Attaching to a stopped process\n");
@ -36,7 +36,7 @@ Index: gdb-7.7/gdb/linux-nat.c
/* The process is definitely stopped. It is in a job control /* The process is definitely stopped. It is in a job control
stop, unless the kernel predates the TASK_STOPPED / stop, unless the kernel predates the TASK_STOPPED /
@@ -1518,6 +1529,9 @@ get_pending_status (struct lwp_info *lp, @@ -1529,6 +1540,9 @@ get_pending_status (struct lwp_info *lp,
gdb_signal_to_string (signo)); gdb_signal_to_string (signo));
} }
@ -46,7 +46,7 @@ Index: gdb-7.7/gdb/linux-nat.c
return 0; return 0;
} }
@@ -1631,6 +1645,8 @@ linux_nat_detach (struct target_ops *ops @@ -1642,6 +1656,8 @@ linux_nat_detach (struct target_ops *ops
} }
else else
linux_ops->to_detach (ops, args, from_tty); linux_ops->to_detach (ops, args, from_tty);
@ -55,9 +55,9 @@ Index: gdb-7.7/gdb/linux-nat.c
} }
/* Resume LP. */ /* Resume LP. */
@@ -1813,6 +1829,14 @@ linux_nat_resume (struct target_ops *ops @@ -1824,6 +1840,14 @@ linux_nat_resume (struct target_ops *ops
linux_nat_resume_callback. */ return;
lp->stopped = 0; }
+ /* At this point, we are going to resume the inferior and if we + /* At this point, we are going to resume the inferior and if we
+ have attached to a stopped process, we no longer should leave + have attached to a stopped process, we no longer should leave
@ -68,9 +68,9 @@ Index: gdb-7.7/gdb/linux-nat.c
+ pid_was_stopped = 0; + pid_was_stopped = 0;
+ +
if (resume_many) if (resume_many)
iterate_over_lwps (ptid, linux_nat_resume_callback, NULL); iterate_over_lwps (ptid, linux_nat_resume_callback, lp);
@@ -3864,6 +3888,8 @@ linux_nat_mourn_inferior (struct target_ @@ -3870,6 +3894,8 @@ linux_nat_mourn_inferior (struct target_
/* Let the arch-specific native code know this process is gone. */ /* Let the arch-specific native code know this process is gone. */
linux_nat_forget_process (pid); linux_nat_forget_process (pid);
@ -79,10 +79,10 @@ Index: gdb-7.7/gdb/linux-nat.c
} }
/* Convert a native/host siginfo object, into/from the siginfo in the /* Convert a native/host siginfo object, into/from the siginfo in the
Index: gdb-7.7/gdb/testsuite/gdb.threads/attach-stopped.exp Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.threads/attach-stopped.exp
=================================================================== ===================================================================
--- gdb-7.7.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2014-01-08 10:23:36.000000000 +0100 --- gdb-7.7.90.20140613.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2014-06-13 23:03:34.365177615 +0200
+++ gdb-7.7/gdb/testsuite/gdb.threads/attach-stopped.exp 2014-02-09 19:13:33.321214945 +0100 +++ gdb-7.7.90.20140613/gdb/testsuite/gdb.threads/attach-stopped.exp 2014-06-13 23:03:37.162180660 +0200
@@ -61,7 +61,65 @@ proc corefunc { threadtype } { @@ -61,7 +61,65 @@ proc corefunc { threadtype } {
gdb_reinitialize_dir $srcdir/$subdir gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile} gdb_load ${binfile}

View File

@ -5,23 +5,23 @@ Some of the threads may not be properly PTRACE_DETACHed which hurts if they
should have been detached with SIGSTOP (as they are accidentally left running should have been detached with SIGSTOP (as they are accidentally left running
on the debugger termination). on the debugger termination).
Index: gdb-7.6.50.20130731-cvs/gdb/defs.h Index: gdb-7.7.90.20140613/gdb/defs.h
=================================================================== ===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/defs.h 2013-08-02 16:58:31.453016573 +0200 --- gdb-7.7.90.20140613.orig/gdb/defs.h 2014-06-13 23:10:18.876623018 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/defs.h 2013-08-02 16:58:41.221030412 +0200 +++ gdb-7.7.90.20140613/gdb/defs.h 2014-06-13 23:10:52.450660505 +0200
@@ -177,6 +177,7 @@ extern int check_quit_flag (void); @@ -174,6 +174,7 @@ extern void set_quit_flag (void);
/* Set the quit flag. */ /* Flag that function quit should call quit_force. */
extern void set_quit_flag (void); extern volatile int sync_quit_force_run;
+extern int quit_flag_cleanup; +extern int quit_flag_cleanup;
extern int immediate_quit; extern int immediate_quit;
extern void quit (void); extern void quit (void);
Index: gdb-7.6.50.20130731-cvs/gdb/top.c Index: gdb-7.7.90.20140613/gdb/top.c
=================================================================== ===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/top.c 2013-08-02 16:58:41.222030414 +0200 --- gdb-7.7.90.20140613.orig/gdb/top.c 2014-06-13 23:10:15.910619715 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/top.c 2013-08-02 16:59:06.321066228 +0200 +++ gdb-7.7.90.20140613/gdb/top.c 2014-06-13 23:10:18.877623020 +0200
@@ -1415,7 +1415,9 @@ quit_force (char *args, int from_tty) @@ -1378,7 +1378,9 @@ quit_force (char *args, int from_tty)
if (ex.reason < 0) \ if (ex.reason < 0) \
exception_print (gdb_stderr, ex) exception_print (gdb_stderr, ex)
@ -32,11 +32,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/top.c
/* Get out of tfind mode, and kill or detach all inferiors. */ /* Get out of tfind mode, and kill or detach all inferiors. */
DO_TRY DO_TRY
Index: gdb-7.6.50.20130731-cvs/gdb/utils.c Index: gdb-7.7.90.20140613/gdb/utils.c
=================================================================== ===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/utils.c 2013-08-02 16:58:31.455016575 +0200 --- gdb-7.7.90.20140613.orig/gdb/utils.c 2014-06-13 23:10:18.878623021 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/utils.c 2013-08-02 16:58:41.223030415 +0200 +++ gdb-7.7.90.20140613/gdb/utils.c 2014-06-13 23:10:38.307644652 +0200
@@ -136,6 +136,11 @@ int quit_flag; @@ -125,6 +125,11 @@ int job_control;
int immediate_quit; int immediate_quit;
@ -45,30 +45,20 @@ Index: gdb-7.6.50.20130731-cvs/gdb/utils.c
+ +
+int quit_flag_cleanup; +int quit_flag_cleanup;
+ +
#ifndef HAVE_PYTHON /* Nonzero means that strings with character values >0x7F should be printed
as octal escapes. Zero means just print the value (e.g. it's an
/* Clear the quit flag. */ international character, and the terminal or window can cope.) */
@@ -159,6 +164,9 @@ set_quit_flag (void) Index: gdb-7.7.90.20140613/gdb/extension.c
int
check_quit_flag (void)
{
+ if (quit_flag_cleanup)
+ return 0;
+
/* This is written in a particular way to avoid races. */
if (quit_flag)
{
Index: gdb-7.6.50.20130731-cvs/gdb/python/python.c
=================================================================== ===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/python/python.c 2013-08-02 16:58:31.456016577 +0200 --- gdb-7.7.90.20140613.orig/gdb/extension.c 2014-06-13 03:59:36.000000000 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/python/python.c 2013-08-02 16:58:41.224030416 +0200 +++ gdb-7.7.90.20140613/gdb/extension.c 2014-06-13 23:11:32.434704853 +0200
@@ -191,6 +191,9 @@ set_quit_flag (void) @@ -817,6 +817,9 @@ check_quit_flag (void)
int int i, result = 0;
check_quit_flag (void) const struct extension_language_defn *extlang;
{
+ if (quit_flag_cleanup) + if (quit_flag_cleanup)
+ return 0; + return 0;
+ +
return PyOS_InterruptOccurred (); ALL_ENABLED_EXTENSION_LANGUAGES (i, extlang)
} {
if (extlang->ops->check_quit_flag != NULL)

View File

@ -1,26 +0,0 @@
This fixes a bug that leads to various failures when debugging a
31-bit inferior with a 64-bit gdb on s390x.
gdb/
* s390-linux-nat.c (fill_gregset): Remove erroneous offset 4 in
call to regcache_raw_collect.
---
gdb/s390-linux-nat.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gdb/s390-linux-nat.c b/gdb/s390-linux-nat.c
index 5c38952..45db7c9 100644
--- a/gdb/s390-linux-nat.c
+++ b/gdb/s390-linux-nat.c
@@ -164,7 +164,7 @@ fill_gregset (const struct regcache *regcache, gregset_t *regp, int regno)
memset (p, 0, 4);
p += 4;
}
- regcache_raw_collect (regcache, reg, p + 4);
+ regcache_raw_collect (regcache, reg, p);
}
}
--
1.8.4.2

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0404d1c6ee6b3ddd811722b5197944758d37b4591c216030effbac204f5a6c23
size 24846320

3
gdb-7.8.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1cb8f2a7a79546381e9cb1dfae254f68a7935f513690d98efbba9c4f692daf41
size 25469193

View File

@ -1,8 +1,8 @@
Index: gdb-7.6.50.20130731-cvs/gdb/breakpoint.c Index: gdb-7.7.50.20140609/gdb/breakpoint.c
=================================================================== ===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/breakpoint.c 2013-08-02 16:29:16.065402116 +0200 --- gdb-7.7.50.20140609.orig/gdb/breakpoint.c 2014-06-13 20:24:34.564667225 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/breakpoint.c 2013-08-02 16:29:17.073403456 +0200 +++ gdb-7.7.50.20140609/gdb/breakpoint.c 2014-06-13 20:24:35.650668351 +0200
@@ -15963,6 +15963,50 @@ initialize_breakpoint_ops (void) @@ -16364,6 +16364,50 @@ initialize_breakpoint_ops (void)
static struct cmd_list_element *enablebreaklist = NULL; static struct cmd_list_element *enablebreaklist = NULL;
void void
@ -53,11 +53,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/breakpoint.c
_initialize_breakpoint (void) _initialize_breakpoint (void)
{ {
struct cmd_list_element *c; struct cmd_list_element *c;
Index: gdb-7.6.50.20130731-cvs/gdb/breakpoint.h Index: gdb-7.7.50.20140609/gdb/breakpoint.h
=================================================================== ===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/breakpoint.h 2013-08-02 16:29:17.074403457 +0200 --- gdb-7.7.50.20140609.orig/gdb/breakpoint.h 2014-06-13 20:24:34.566667227 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/breakpoint.h 2013-08-02 16:29:30.221420896 +0200 +++ gdb-7.7.50.20140609/gdb/breakpoint.h 2014-06-13 20:24:35.651668352 +0200
@@ -1555,4 +1555,7 @@ extern void breakpoint_free_objfile (str @@ -1553,4 +1553,7 @@ extern void breakpoint_free_objfile (str
extern char *ep_parse_optional_if_clause (char **arg); extern char *ep_parse_optional_if_clause (char **arg);
@ -65,13 +65,13 @@ Index: gdb-7.6.50.20130731-cvs/gdb/breakpoint.h
+ struct section_offsets *delta); + struct section_offsets *delta);
+ +
#endif /* !defined (BREAKPOINT_H) */ #endif /* !defined (BREAKPOINT_H) */
Index: gdb-7.6.50.20130731-cvs/gdb/objfiles.c Index: gdb-7.7.50.20140609/gdb/objfiles.c
=================================================================== ===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/objfiles.c 2013-08-02 16:29:16.068402120 +0200 --- gdb-7.7.50.20140609.orig/gdb/objfiles.c 2014-06-13 20:24:35.652668353 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/objfiles.c 2013-08-02 16:29:17.075403458 +0200 +++ gdb-7.7.50.20140609/gdb/objfiles.c 2014-06-13 20:25:10.867704891 +0200
@@ -851,6 +851,11 @@ objfile_relocate1 (struct objfile *objfi @@ -820,6 +820,11 @@ objfile_relocate1 (struct objfile *objfi
objfile->sf->sym_probe_fns->sym_relocate_probe (objfile, obj_section_addr (s));
new_offsets, delta); }
+ /* Final call of breakpoint_re_set can keep breakpoint locations disabled if + /* Final call of breakpoint_re_set can keep breakpoint locations disabled if
+ their addresses match. */ + their addresses match. */

View File

@ -1,24 +1,24 @@
Index: gdb-7.5.50.20130118/gdb/gdbtypes.h Index: gdb-7.7.50.20140609/gdb/gdbtypes.h
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/gdbtypes.h 2013-01-18 23:07:03.488358315 +0100 --- gdb-7.7.50.20140609.orig/gdb/gdbtypes.h 2014-06-13 20:23:55.210626427 +0200
+++ gdb-7.5.50.20130118/gdb/gdbtypes.h 2013-01-18 23:08:10.286451570 +0100 +++ gdb-7.7.50.20140609/gdb/gdbtypes.h 2014-06-13 20:24:26.156658622 +0200
@@ -420,6 +420,7 @@ enum field_loc_kind @@ -440,6 +440,7 @@ enum field_loc_kind
{ {
FIELD_LOC_KIND_BITPOS, /* bitpos */ FIELD_LOC_KIND_BITPOS, /**< bitpos */
FIELD_LOC_KIND_ENUMVAL, /* enumval */ FIELD_LOC_KIND_ENUMVAL, /**< enumval */
+ /* This address is unrelocated by the objfile's ANOFFSET. */ + /* This address is unrelocated by the objfile's ANOFFSET. */
FIELD_LOC_KIND_PHYSADDR, /* physaddr */ FIELD_LOC_KIND_PHYSADDR, /**< physaddr */
FIELD_LOC_KIND_PHYSNAME, /* physname */ FIELD_LOC_KIND_PHYSNAME, /**< physname */
FIELD_LOC_KIND_DWARF_BLOCK /* dwarf_block */ FIELD_LOC_KIND_DWARF_BLOCK /**< dwarf_block */
@@ -614,6 +615,7 @@ struct main_type @@ -617,6 +618,7 @@ struct main_type
is the location (in the target) of the static field. field. Otherwise, physname is the mangled label of the
Otherwise, physname is the mangled label of the static field. */ static field. */
+ /* This address is unrelocated by the objfile's ANOFFSET. */ + /* This address is unrelocated by the objfile's ANOFFSET. */
CORE_ADDR physaddr; CORE_ADDR physaddr;
const char *physname; const char *physname;
@@ -1237,6 +1239,7 @@ extern void allocate_gnat_aux_type (stru @@ -1262,6 +1264,7 @@ extern void allocate_gnat_aux_type (stru
#define FIELD_ENUMVAL_LVAL(thisfld) ((thisfld).loc.enumval) #define FIELD_ENUMVAL_LVAL(thisfld) ((thisfld).loc.enumval)
#define FIELD_ENUMVAL(thisfld) (FIELD_ENUMVAL_LVAL (thisfld) + 0) #define FIELD_ENUMVAL(thisfld) (FIELD_ENUMVAL_LVAL (thisfld) + 0)
#define FIELD_STATIC_PHYSNAME(thisfld) ((thisfld).loc.physname) #define FIELD_STATIC_PHYSNAME(thisfld) ((thisfld).loc.physname)
@ -26,7 +26,7 @@ Index: gdb-7.5.50.20130118/gdb/gdbtypes.h
#define FIELD_STATIC_PHYSADDR(thisfld) ((thisfld).loc.physaddr) #define FIELD_STATIC_PHYSADDR(thisfld) ((thisfld).loc.physaddr)
#define FIELD_DWARF_BLOCK(thisfld) ((thisfld).loc.dwarf_block) #define FIELD_DWARF_BLOCK(thisfld) ((thisfld).loc.dwarf_block)
#define SET_FIELD_BITPOS(thisfld, bitpos) \ #define SET_FIELD_BITPOS(thisfld, bitpos) \
@@ -1248,6 +1251,7 @@ extern void allocate_gnat_aux_type (stru @@ -1273,6 +1276,7 @@ extern void allocate_gnat_aux_type (stru
#define SET_FIELD_PHYSNAME(thisfld, name) \ #define SET_FIELD_PHYSNAME(thisfld, name) \
(FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSNAME, \ (FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSNAME, \
FIELD_STATIC_PHYSNAME (thisfld) = (name)) FIELD_STATIC_PHYSNAME (thisfld) = (name))
@ -34,7 +34,7 @@ Index: gdb-7.5.50.20130118/gdb/gdbtypes.h
#define SET_FIELD_PHYSADDR(thisfld, addr) \ #define SET_FIELD_PHYSADDR(thisfld, addr) \
(FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSADDR, \ (FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSADDR, \
FIELD_STATIC_PHYSADDR (thisfld) = (addr)) FIELD_STATIC_PHYSADDR (thisfld) = (addr))
@@ -1264,6 +1268,7 @@ extern void allocate_gnat_aux_type (stru @@ -1289,6 +1293,7 @@ extern void allocate_gnat_aux_type (stru
#define TYPE_FIELD_BITPOS(thistype, n) FIELD_BITPOS (TYPE_FIELD (thistype, n)) #define TYPE_FIELD_BITPOS(thistype, n) FIELD_BITPOS (TYPE_FIELD (thistype, n))
#define TYPE_FIELD_ENUMVAL(thistype, n) FIELD_ENUMVAL (TYPE_FIELD (thistype, n)) #define TYPE_FIELD_ENUMVAL(thistype, n) FIELD_ENUMVAL (TYPE_FIELD (thistype, n))
#define TYPE_FIELD_STATIC_PHYSNAME(thistype, n) FIELD_STATIC_PHYSNAME (TYPE_FIELD (thistype, n)) #define TYPE_FIELD_STATIC_PHYSNAME(thistype, n) FIELD_STATIC_PHYSNAME (TYPE_FIELD (thistype, n))
@ -42,11 +42,11 @@ Index: gdb-7.5.50.20130118/gdb/gdbtypes.h
#define TYPE_FIELD_STATIC_PHYSADDR(thistype, n) FIELD_STATIC_PHYSADDR (TYPE_FIELD (thistype, n)) #define TYPE_FIELD_STATIC_PHYSADDR(thistype, n) FIELD_STATIC_PHYSADDR (TYPE_FIELD (thistype, n))
#define TYPE_FIELD_DWARF_BLOCK(thistype, n) FIELD_DWARF_BLOCK (TYPE_FIELD (thistype, n)) #define TYPE_FIELD_DWARF_BLOCK(thistype, n) FIELD_DWARF_BLOCK (TYPE_FIELD (thistype, n))
#define TYPE_FIELD_ARTIFICIAL(thistype, n) FIELD_ARTIFICIAL(TYPE_FIELD(thistype,n)) #define TYPE_FIELD_ARTIFICIAL(thistype, n) FIELD_ARTIFICIAL(TYPE_FIELD(thistype,n))
Index: gdb-7.5.50.20130118/gdb/jv-lang.c Index: gdb-7.7.50.20140609/gdb/jv-lang.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/jv-lang.c 2013-01-18 23:07:03.488358315 +0100 --- gdb-7.7.50.20140609.orig/gdb/jv-lang.c 2014-06-13 20:23:55.211626428 +0200
+++ gdb-7.5.50.20130118/gdb/jv-lang.c 2013-01-18 23:08:10.286451570 +0100 +++ gdb-7.7.50.20140609/gdb/jv-lang.c 2014-06-13 20:23:56.278627534 +0200
@@ -430,7 +430,8 @@ java_link_class_type (struct gdbarch *gd @@ -427,7 +427,8 @@ java_link_class_type (struct gdbarch *gd
fields = NULL; fields = NULL;
nfields--; /* First set up dummy "class" field. */ nfields--; /* First set up dummy "class" field. */
@ -56,7 +56,7 @@ Index: gdb-7.5.50.20130118/gdb/jv-lang.c
TYPE_FIELD_NAME (type, nfields) = "class"; TYPE_FIELD_NAME (type, nfields) = "class";
TYPE_FIELD_TYPE (type, nfields) = value_type (clas); TYPE_FIELD_TYPE (type, nfields) = value_type (clas);
SET_TYPE_FIELD_PRIVATE (type, nfields); SET_TYPE_FIELD_PRIVATE (type, nfields);
@@ -478,7 +479,8 @@ java_link_class_type (struct gdbarch *gd @@ -475,7 +476,8 @@ java_link_class_type (struct gdbarch *gd
SET_TYPE_FIELD_PROTECTED (type, i); SET_TYPE_FIELD_PROTECTED (type, i);
} }
if (accflags & 0x0008) /* ACC_STATIC */ if (accflags & 0x0008) /* ACC_STATIC */
@ -66,11 +66,11 @@ Index: gdb-7.5.50.20130118/gdb/jv-lang.c
else else
SET_FIELD_BITPOS (TYPE_FIELD (type, i), 8 * boffset); SET_FIELD_BITPOS (TYPE_FIELD (type, i), 8 * boffset);
if (accflags & 0x8000) /* FIELD_UNRESOLVED_FLAG */ if (accflags & 0x8000) /* FIELD_UNRESOLVED_FLAG */
Index: gdb-7.5.50.20130118/gdb/value.c Index: gdb-7.7.50.20140609/gdb/value.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/value.c 2013-01-18 23:07:03.490358319 +0100 --- gdb-7.7.50.20140609.orig/gdb/value.c 2014-06-13 20:23:55.212626429 +0200
+++ gdb-7.5.50.20130118/gdb/value.c 2013-01-18 23:08:10.287451543 +0100 +++ gdb-7.7.50.20140609/gdb/value.c 2014-06-13 20:23:56.279627535 +0200
@@ -2624,7 +2624,8 @@ value_static_field (struct type *type, i @@ -2783,7 +2783,8 @@ value_static_field (struct type *type, i
{ {
case FIELD_LOC_KIND_PHYSADDR: case FIELD_LOC_KIND_PHYSADDR:
retval = value_at_lazy (TYPE_FIELD_TYPE (type, fieldno), retval = value_at_lazy (TYPE_FIELD_TYPE (type, fieldno),

2795
gdb-archer-vla-tests.patch Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -37,10 +37,10 @@ gdb/gdbserver/
(linux_create_inferior, linux_tracefork_child): Call it instead of (linux_create_inferior, linux_tracefork_child): Call it instead of
direct ptrace. direct ptrace.
Index: gdb-7.6.90.20140127/gdb/common/linux-ptrace.c Index: gdb-7.8/gdb/common/linux-ptrace.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/common/linux-ptrace.c 2014-02-06 17:40:32.530145960 +0100 --- gdb-7.8.orig/gdb/common/linux-ptrace.c 2014-07-29 19:31:01.893149317 +0200
+++ gdb-7.6.90.20140127/gdb/common/linux-ptrace.c 2014-02-06 17:48:16.329644534 +0100 +++ gdb-7.8/gdb/common/linux-ptrace.c 2014-07-29 19:31:05.806154887 +0200
@@ -32,6 +32,10 @@ @@ -32,6 +32,10 @@
#include <stdint.h> #include <stdint.h>
@ -52,16 +52,16 @@ Index: gdb-7.6.90.20140127/gdb/common/linux-ptrace.c
/* Stores the currently supported ptrace options. A value of /* Stores the currently supported ptrace options. A value of
-1 means we did not check for features yet. A value of 0 means -1 means we did not check for features yet. A value of 0 means
there are no supported features. */ there are no supported features. */
@@ -56,6 +60,8 @@ linux_ptrace_attach_warnings (pid_t pid, @@ -56,6 +60,8 @@ linux_ptrace_attach_fail_reason (pid_t p
buffer_xml_printf (buffer, _("warning: process %d is a zombie " buffer_xml_printf (buffer, _("process %d is a zombie "
"- the process has already terminated\n"), "- the process has already terminated"),
(int) pid); (int) pid);
+ +
+ linux_ptrace_create_warnings (buffer); + linux_ptrace_create_warnings (buffer);
} }
#if defined __i386__ || defined __x86_64__ #if defined __i386__ || defined __x86_64__
@@ -542,3 +548,19 @@ linux_ptrace_init_warnings (void) @@ -551,3 +557,19 @@ linux_ptrace_init_warnings (void)
linux_ptrace_test_ret_to_nx (); linux_ptrace_test_ret_to_nx ();
} }
@ -81,23 +81,23 @@ Index: gdb-7.6.90.20140127/gdb/common/linux-ptrace.c
+ "(gdb) shell sudo setsebool deny_ptrace=0")); + "(gdb) shell sudo setsebool deny_ptrace=0"));
+#endif /* HAVE_LIBSELINUX */ +#endif /* HAVE_LIBSELINUX */
+} +}
Index: gdb-7.6.90.20140127/gdb/common/linux-ptrace.h Index: gdb-7.8/gdb/common/linux-ptrace.h
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/common/linux-ptrace.h 2014-02-06 17:40:35.506149162 +0100 --- gdb-7.8.orig/gdb/common/linux-ptrace.h 2014-07-29 19:31:01.893149317 +0200
+++ gdb-7.6.90.20140127/gdb/common/linux-ptrace.h 2014-02-06 17:48:00.601627995 +0100 +++ gdb-7.8/gdb/common/linux-ptrace.h 2014-07-29 19:31:05.807154887 +0200
@@ -85,6 +85,7 @@ struct buffer; @@ -85,6 +85,7 @@ struct buffer;
extern void linux_ptrace_attach_warnings (pid_t pid, struct buffer *buffer); extern void linux_ptrace_attach_fail_reason (pid_t pid, struct buffer *buffer);
extern void linux_ptrace_init_warnings (void); extern void linux_ptrace_init_warnings (void);
+extern void linux_ptrace_create_warnings (struct buffer *buffer); +extern void linux_ptrace_create_warnings (struct buffer *buffer);
extern void linux_enable_event_reporting (pid_t pid); extern void linux_enable_event_reporting (pid_t pid);
extern void linux_disable_event_reporting (pid_t pid);
extern int linux_supports_tracefork (void); extern int linux_supports_tracefork (void);
extern int linux_supports_traceclone (void); Index: gdb-7.8/gdb/configure.ac
Index: gdb-7.6.90.20140127/gdb/configure.ac
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/configure.ac 2014-02-06 17:40:32.532145962 +0100 --- gdb-7.8.orig/gdb/configure.ac 2014-07-29 19:31:01.894149319 +0200
+++ gdb-7.6.90.20140127/gdb/configure.ac 2014-02-06 17:40:35.507149163 +0100 +++ gdb-7.8/gdb/configure.ac 2014-07-29 19:31:05.807154887 +0200
@@ -1975,6 +1975,10 @@ case $host_os in @@ -2158,6 +2158,10 @@ case $host_os in
esac esac
AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.]) AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
@ -108,10 +108,10 @@ Index: gdb-7.6.90.20140127/gdb/configure.ac
dnl Handle optional features that can be enabled. dnl Handle optional features that can be enabled.
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR, # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
Index: gdb-7.6.90.20140127/gdb/gdbserver/configure.ac Index: gdb-7.8/gdb/gdbserver/configure.ac
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/gdbserver/configure.ac 2014-02-06 17:40:32.532145962 +0100 --- gdb-7.8.orig/gdb/gdbserver/configure.ac 2014-07-29 19:31:01.895149320 +0200
+++ gdb-7.6.90.20140127/gdb/gdbserver/configure.ac 2014-02-06 17:40:35.507149163 +0100 +++ gdb-7.8/gdb/gdbserver/configure.ac 2014-07-29 19:31:05.808154887 +0200
@@ -454,6 +454,10 @@ if $want_ipa ; then @@ -454,6 +454,10 @@ if $want_ipa ; then
fi fi
fi fi
@ -123,11 +123,11 @@ Index: gdb-7.6.90.20140127/gdb/gdbserver/configure.ac
AC_SUBST(GDBSERVER_DEPFILES) AC_SUBST(GDBSERVER_DEPFILES)
AC_SUBST(GDBSERVER_LIBS) AC_SUBST(GDBSERVER_LIBS)
AC_SUBST(srv_xmlbuiltin) AC_SUBST(srv_xmlbuiltin)
Index: gdb-7.6.90.20140127/gdb/gdbserver/linux-low.c Index: gdb-7.8/gdb/gdbserver/linux-low.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/gdbserver/linux-low.c 2014-02-06 17:40:32.534145964 +0100 --- gdb-7.8.orig/gdb/gdbserver/linux-low.c 2014-07-29 19:31:01.897149323 +0200
+++ gdb-7.6.90.20140127/gdb/gdbserver/linux-low.c 2014-02-06 17:49:32.385726514 +0100 +++ gdb-7.8/gdb/gdbserver/linux-low.c 2014-07-29 19:31:05.809154889 +0200
@@ -543,6 +543,29 @@ add_lwp (ptid_t ptid) @@ -541,6 +541,29 @@ add_lwp (ptid_t ptid)
return lwp; return lwp;
} }
@ -157,7 +157,7 @@ Index: gdb-7.6.90.20140127/gdb/gdbserver/linux-low.c
/* Start an inferior process and returns its pid. /* Start an inferior process and returns its pid.
ALLARGS is a vector of program-name and args. */ ALLARGS is a vector of program-name and args. */
@@ -584,7 +607,7 @@ linux_create_inferior (char *program, ch @@ -582,7 +605,7 @@ linux_create_inferior (char *program, ch
if (pid == 0) if (pid == 0)
{ {
close_most_fds (); close_most_fds ();
@ -166,10 +166,10 @@ Index: gdb-7.6.90.20140127/gdb/gdbserver/linux-low.c
#ifndef __ANDROID__ /* Bionic doesn't use SIGRTMIN the way glibc does. */ #ifndef __ANDROID__ /* Bionic doesn't use SIGRTMIN the way glibc does. */
signal (__SIGRTMIN + 1, SIG_DFL); signal (__SIGRTMIN + 1, SIG_DFL);
Index: gdb-7.6.90.20140127/gdb/inf-ptrace.c Index: gdb-7.8/gdb/inf-ptrace.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/inf-ptrace.c 2014-02-06 17:40:32.535145965 +0100 --- gdb-7.8.orig/gdb/inf-ptrace.c 2014-07-29 19:31:01.898149324 +0200
+++ gdb-7.6.90.20140127/gdb/inf-ptrace.c 2014-02-06 17:40:35.510149167 +0100 +++ gdb-7.8/gdb/inf-ptrace.c 2014-07-29 19:31:05.809154889 +0200
@@ -105,7 +105,15 @@ static void @@ -105,7 +105,15 @@ static void
inf_ptrace_me (void) inf_ptrace_me (void)
{ {
@ -186,11 +186,11 @@ Index: gdb-7.6.90.20140127/gdb/inf-ptrace.c
} }
/* Start a new inferior Unix child process. EXEC_FILE is the file to /* Start a new inferior Unix child process. EXEC_FILE is the file to
Index: gdb-7.6.90.20140127/gdb/linux-nat.c Index: gdb-7.8/gdb/linux-nat.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/linux-nat.c 2014-02-06 17:40:32.537145968 +0100 --- gdb-7.8.orig/gdb/linux-nat.c 2014-07-29 19:31:01.899149326 +0200
+++ gdb-7.6.90.20140127/gdb/linux-nat.c 2014-02-06 17:40:35.511149168 +0100 +++ gdb-7.8/gdb/linux-nat.c 2014-07-29 19:31:05.811154893 +0200
@@ -1283,6 +1283,7 @@ linux_nat_create_inferior (struct target @@ -1291,6 +1291,7 @@ linux_nat_create_inferior (struct target
#ifdef HAVE_PERSONALITY #ifdef HAVE_PERSONALITY
int personality_orig = 0, personality_set = 0; int personality_orig = 0, personality_set = 0;
#endif /* HAVE_PERSONALITY */ #endif /* HAVE_PERSONALITY */
@ -198,9 +198,9 @@ Index: gdb-7.6.90.20140127/gdb/linux-nat.c
/* The fork_child mechanism is synchronous and calls target_wait, so /* The fork_child mechanism is synchronous and calls target_wait, so
we have to mask the async mode. */ we have to mask the async mode. */
@@ -1307,7 +1308,10 @@ linux_nat_create_inferior (struct target @@ -1315,7 +1316,10 @@ linux_nat_create_inferior (struct target
/* Make sure we report all signals during startup. */ /* Make sure we report all signals during startup. */
linux_nat_pass_signals (0, NULL); linux_nat_pass_signals (ops, 0, NULL);
- linux_ops->to_create_inferior (ops, exec_file, allargs, env, from_tty); - linux_ops->to_create_inferior (ops, exec_file, allargs, env, from_tty);
+ TRY_CATCH (ex, RETURN_MASK_ERROR) + TRY_CATCH (ex, RETURN_MASK_ERROR)
@ -210,7 +210,7 @@ Index: gdb-7.6.90.20140127/gdb/linux-nat.c
#ifdef HAVE_PERSONALITY #ifdef HAVE_PERSONALITY
if (personality_set) if (personality_set)
@@ -1319,6 +1323,24 @@ linux_nat_create_inferior (struct target @@ -1327,6 +1331,24 @@ linux_nat_create_inferior (struct target
safe_strerror (errno)); safe_strerror (errno));
} }
#endif /* HAVE_PERSONALITY */ #endif /* HAVE_PERSONALITY */
@ -235,11 +235,11 @@ Index: gdb-7.6.90.20140127/gdb/linux-nat.c
} }
static void static void
Index: gdb-7.6.90.20140127/gdb/config.in Index: gdb-7.8/gdb/config.in
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/config.in 2014-02-06 17:40:32.538145969 +0100 --- gdb-7.8.orig/gdb/config.in 2014-07-29 19:31:01.900149327 +0200
+++ gdb-7.6.90.20140127/gdb/config.in 2014-02-06 17:40:35.511149168 +0100 +++ gdb-7.8/gdb/config.in 2014-07-29 19:31:44.600210090 +0200
@@ -213,6 +213,9 @@ @@ -219,6 +219,9 @@
/* Define if librpm library is being used. */ /* Define if librpm library is being used. */
#undef HAVE_LIBRPM #undef HAVE_LIBRPM
@ -249,21 +249,21 @@ Index: gdb-7.6.90.20140127/gdb/config.in
/* Define to 1 if you have the <libunwind-ia64.h> header file. */ /* Define to 1 if you have the <libunwind-ia64.h> header file. */
#undef HAVE_LIBUNWIND_IA64_H #undef HAVE_LIBUNWIND_IA64_H
@@ -345,6 +348,9 @@ @@ -354,6 +357,9 @@
/* Define to 1 if you have the `sbrk' function. */ /* Define to 1 if you have the `scm_new_smob' function. */
#undef HAVE_SBRK #undef HAVE_SCM_NEW_SMOB
+/* Define to 1 if you have the <selinux/selinux.h> header file. */ +/* Define to 1 if you have the <selinux/selinux.h> header file. */
+#undef HAVE_SELINUX_SELINUX_H +#undef HAVE_SELINUX_SELINUX_H
+ +
/* Define to 1 if you have the `setlocale' function. */ /* Define to 1 if you have the `setenv' function. */
#undef HAVE_SETLOCALE #undef HAVE_SETENV
Index: gdb-7.6.90.20140127/gdb/configure Index: gdb-7.8/gdb/configure
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/configure 2014-02-06 17:40:32.541145972 +0100 --- gdb-7.8.orig/gdb/configure 2014-07-29 19:31:01.903149331 +0200
+++ gdb-7.6.90.20140127/gdb/configure 2014-02-06 17:40:35.515149172 +0100 +++ gdb-7.8/gdb/configure 2014-07-29 19:31:05.815154898 +0200
@@ -12861,6 +12861,64 @@ cat >>confdefs.h <<_ACEOF @@ -13392,6 +13392,64 @@ cat >>confdefs.h <<_ACEOF
_ACEOF _ACEOF
@ -328,11 +328,11 @@ Index: gdb-7.6.90.20140127/gdb/configure
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR, # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
# except that the argument to --with-sysroot is optional. # except that the argument to --with-sysroot is optional.
Index: gdb-7.6.90.20140127/gdb/gdbserver/config.in Index: gdb-7.8/gdb/gdbserver/config.in
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/gdbserver/config.in 2014-02-06 17:40:32.542145973 +0100 --- gdb-7.8.orig/gdb/gdbserver/config.in 2014-07-29 19:31:01.904149333 +0200
+++ gdb-7.6.90.20140127/gdb/gdbserver/config.in 2014-02-06 17:54:06.923021799 +0100 +++ gdb-7.8/gdb/gdbserver/config.in 2014-07-29 19:31:05.815154898 +0200
@@ -78,6 +78,9 @@ @@ -81,6 +81,9 @@
/* Define to 1 if you have the `mcheck' library (-lmcheck). */ /* Define to 1 if you have the `mcheck' library (-lmcheck). */
#undef HAVE_LIBMCHECK #undef HAVE_LIBMCHECK
@ -342,7 +342,7 @@ Index: gdb-7.6.90.20140127/gdb/gdbserver/config.in
/* Define if the target supports branch tracing. */ /* Define if the target supports branch tracing. */
#undef HAVE_LINUX_BTRACE #undef HAVE_LINUX_BTRACE
@@ -151,6 +154,9 @@ @@ -154,6 +157,9 @@
/* Define to 1 if you have the `readlink' function. */ /* Define to 1 if you have the `readlink' function. */
#undef HAVE_READLINK #undef HAVE_READLINK
@ -352,10 +352,10 @@ Index: gdb-7.6.90.20140127/gdb/gdbserver/config.in
/* Define to 1 if you have the <sgtty.h> header file. */ /* Define to 1 if you have the <sgtty.h> header file. */
#undef HAVE_SGTTY_H #undef HAVE_SGTTY_H
Index: gdb-7.6.90.20140127/gdb/gdbserver/configure Index: gdb-7.8/gdb/gdbserver/configure
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/gdbserver/configure 2014-02-06 17:40:32.543145974 +0100 --- gdb-7.8.orig/gdb/gdbserver/configure 2014-07-29 19:31:01.905149334 +0200
+++ gdb-7.6.90.20140127/gdb/gdbserver/configure 2014-02-06 17:40:35.516149173 +0100 +++ gdb-7.8/gdb/gdbserver/configure 2014-07-29 19:31:05.817154901 +0200
@@ -6170,6 +6170,64 @@ if $want_ipa ; then @@ -6170,6 +6170,64 @@ if $want_ipa ; then
fi fi
fi fi

View File

@ -0,0 +1,85 @@
http://sourceware.org/ml/gdb-patches/2014-08/msg00045.html
Subject: [patch] Fix --with-babeltrace with gcc-4.9.1
--qMm9M+Fa2AknHoGS
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Hi,
when I tried to use --with-babeltrace on Fedora Rawhide x86_64
using gcc-4.9.1-3.fc22.x86_64 I got:
checking for libbabeltrace... no
configure: error: babeltrace is missing or unusable
Makefile:7973: recipe for target 'configure-gdb' failed
configure:15890: checking for libbabeltrace
configure:15918: gcc -o conftest -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -Werror -static-libstdc++ -static-libgcc -Wl,-z,relro conftest.c -lselinux -lncurses -lz -lm -ldl /usr/lib64/libbabeltrace.so /usr/lib64/libbabeltrace-ctf.so >&5
conftest.c: In function 'main':
conftest.c:198:21: error: unused variable 'pos' [-Werror=unused-variable]
struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL));
^
cc1: all warnings being treated as errors
configure:15918: $? = 1
configure: failed program was:
The patch below fixes it for me.
In configure.ac there is above this check:
# Append -Werror to CFLAGS so that configure can catch the warning
# "assignment from incompatible pointer type", which is related to
# the babeltrace change from 1.0.3 to 1.1.0. Babeltrace 1.1.0 works
# in GDB, while babeltrace 1.0.3 is broken.
# AC_LIB_HAVE_LINKFLAGS may modify CPPFLAGS in it, so it should be
# safe to save and restore CFLAGS here.
saved_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -Werror"
Maybe it would be easier to use there:
CFLAGS="$CFLAGS -Werror -Wno-unused-variable"
But maybe -Werror is cross-compiler compatible while -Wno-unused-variable is
not, I have no idea.
Jan
--qMm9M+Fa2AknHoGS
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename="gdb-babeltrace-configure.patch"
gdb/
2014-08-04 Jan Kratochvil <jan.kratochvil@redhat.com>
* configure.ac (--with-babeltrace): Use 'pos'.
* configure: Regenerate.
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 70d0964..07d2f00 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -2437,6 +2437,7 @@ else
struct bt_ctf_event *event = NULL;
const struct bt_definition *scope;
+ (void) pos; /* Prevent -Werror=unused-variable. */
scope = bt_ctf_get_top_level_scope (event,
BT_STREAM_EVENT_HEADER);
bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
diff --git a/gdb/configure b/gdb/configure
index 809326a..b983d16 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -15344,6 +15344,7 @@ struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL));
struct bt_ctf_event *event = NULL;
const struct bt_definition *scope;
+ (void) pos; /* Prevent -Werror=unused-variable. */
scope = bt_ctf_get_top_level_scope (event,
BT_STREAM_EVENT_HEADER);
bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
--qMm9M+Fa2AknHoGS--

82
gdb-btrobust.patch Normal file
View File

@ -0,0 +1,82 @@
This should fix the error with glib. An error message will still be
printed, but a default backtrace will occur in this case.
--
--- gdb-7.7.90.20140613/gdb/python/py-framefilter.c-orig 2014-06-13 03:59:37.000000000 +0200
+++ gdb-7.7.90.20140613/gdb/python/py-framefilter.c 2014-06-27 17:20:00.945271945 +0200
@@ -1475,6 +1475,7 @@ gdbpy_apply_frame_filter (const struct e
volatile struct gdb_exception except;
PyObject *item;
htab_t levels_printed;
+ int count_printed = 0;
if (!gdb_python_initialized)
return EXT_LANG_BT_NO_FILTERS;
@@ -1494,24 +1495,7 @@ gdbpy_apply_frame_filter (const struct e
iterable = bootstrap_python_frame_filters (frame, frame_low, frame_high);
if (iterable == NULL)
- {
- /* Normally if there is an error GDB prints the exception,
- abandons the backtrace and exits. The user can then call "bt
- no-filters", and get a default backtrace (it would be
- confusing to automatically start a standard backtrace halfway
- through a Python filtered backtrace). However in the case
- where GDB cannot initialize the frame filters (most likely
- due to incorrect auto-load paths), GDB has printed nothing.
- In this case it is OK to print the default backtrace after
- printing the error message. GDB returns EXT_LANG_BT_NO_FILTERS
- here to signify there are no filters after printing the
- initialization error. This return code will trigger a
- default backtrace. */
-
- gdbpy_print_stack ();
- do_cleanups (cleanups);
- return EXT_LANG_BT_NO_FILTERS;
- }
+ goto error_nothing_printed;
/* If iterable is None, then there are no frame filters registered.
If this is the case, defer to default GDB printing routines in MI
@@ -1540,15 +1524,39 @@ gdbpy_apply_frame_filter (const struct e
gdbpy_print_stack ();
Py_DECREF (item);
+ count_printed++;
}
if (item == NULL && PyErr_Occurred ())
- goto error;
+ {
+ if (count_printed > 0)
+ goto error;
+ else
+ goto error_nothing_printed;
+ }
done:
do_cleanups (cleanups);
return success;
+ /* Normally if there is an error GDB prints the exception,
+ abandons the backtrace and exits. The user can then call "bt
+ no-filters", and get a default backtrace (it would be
+ confusing to automatically start a standard backtrace halfway
+ through a Python filtered backtrace). However in the case
+ where GDB cannot initialize the frame filters (most likely
+ due to incorrect auto-load paths), GDB has printed nothing.
+ In this case it is OK to print the default backtrace after
+ printing the error message. GDB returns EXT_LANG_BT_NO_FILTERS
+ here to signify there are no filters after printing the
+ initialization error. This return code will trigger a
+ default backtrace. */
+
+ error_nothing_printed:
+ gdbpy_print_stack ();
+ do_cleanups (cleanups);
+ return EXT_LANG_BT_NO_FILTERS;
+
/* Exit and abandon backtrace on error, printing the exception that
is set. */
error:

View File

@ -21,11 +21,11 @@ debugging problem of GOMP outside of the scope of this Bug.
Index: gdb-7.6.50.20130731-cvs/gdb/infrun.c Index: gdb-7.7.90.20140613/gdb/infrun.c
=================================================================== ===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/infrun.c 2013-08-02 17:10:08.446962958 +0200 --- gdb-7.7.90.20140613.orig/gdb/infrun.c 2014-06-13 21:59:10.835805512 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/infrun.c 2013-08-02 17:10:49.109016685 +0200 +++ gdb-7.7.90.20140613/gdb/infrun.c 2014-06-13 21:59:31.064829121 +0200
@@ -4930,6 +4930,16 @@ process_event_stop_test: @@ -4820,6 +4820,16 @@ process_event_stop_test (struct executio
if (ecs->event_thread->control.step_over_calls == STEP_OVER_ALL) if (ecs->event_thread->control.step_over_calls == STEP_OVER_ALL)
{ {
@ -36,13 +36,13 @@ Index: gdb-7.6.50.20130731-cvs/gdb/infrun.c
+ || strstr (SYMBOL_LINKAGE_NAME (stop_fn), ".omp_fn.") == NULL) + || strstr (SYMBOL_LINKAGE_NAME (stop_fn), ".omp_fn.") == NULL)
+ /* gcc-4.7.2-9.fc19.x86_64 uses a new format. */ + /* gcc-4.7.2-9.fc19.x86_64 uses a new format. */
+ && (stopf == NULL + && (stopf == NULL
+ || strstr (SYMBOL_LINKAGE_NAME (stopf), "._omp_fn.") == NULL)) + || strstr (MSYMBOL_LINKAGE_NAME (stopf), "._omp_fn.") == NULL))
+{ /* ".omp_fn." */ +{ /* ".omp_fn." */
+ +
/* We're doing a "next". /* We're doing a "next".
Normal (forward) execution: set a breakpoint at the Normal (forward) execution: set a breakpoint at the
@@ -4965,6 +4975,7 @@ process_event_stop_test: @@ -4855,6 +4865,7 @@ process_event_stop_test (struct executio
keep_going (ecs); keep_going (ecs);
return; return;
@ -50,10 +50,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/infrun.c
} }
/* If we are in a function call trampoline (a stub between the /* If we are in a function call trampoline (a stub between the
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.fortran/omp-step.exp Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/omp-step.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.fortran/omp-step.exp 2013-08-02 17:10:37.063000571 +0200 +++ gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/omp-step.exp 2014-06-13 21:59:22.801819481 +0200
@@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
+# Copyright 2009 Free Software Foundation, Inc. +# Copyright 2009 Free Software Foundation, Inc.
+ +
@ -86,10 +86,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.fortran/omp-step.exp
+ +
+gdb_breakpoint [gdb_get_line_number "success"] +gdb_breakpoint [gdb_get_line_number "success"]
+gdb_continue_to_breakpoint "success" ".*success.*" +gdb_continue_to_breakpoint "success" ".*success.*"
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.fortran/omp-step.f90 Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/omp-step.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.fortran/omp-step.f90 2013-08-02 17:10:37.063000571 +0200 +++ gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/omp-step.f90 2014-06-13 21:59:22.801819481 +0200
@@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
+! Copyright 2009 Free Software Foundation, Inc. +! Copyright 2009 Free Software Foundation, Inc.
+ +

View File

@ -1,7 +1,7 @@
Index: gdb-7.6.90.20140127/gdb/config/i386/linux64.mh Index: gdb-7.7.50.20140609/gdb/config/i386/linux64.mh
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/config/i386/linux64.mh 2014-02-06 17:30:23.021489736 +0100 --- gdb-7.7.50.20140609.orig/gdb/config/i386/linux64.mh 2014-06-13 20:25:37.356732335 +0200
+++ gdb-7.6.90.20140127/gdb/config/i386/linux64.mh 2014-02-06 17:30:44.984513403 +0100 +++ gdb-7.7.50.20140609/gdb/config/i386/linux64.mh 2014-06-13 20:26:07.984764098 +0200
@@ -5,7 +5,7 @@ NATDEPFILES= inf-ptrace.o fork-child.o \ @@ -5,7 +5,7 @@ NATDEPFILES= inf-ptrace.o fork-child.o \
proc-service.o linux-thread-db.o linux-fork.o \ proc-service.o linux-thread-db.o linux-fork.o \
linux-procfs.o linux-ptrace.o linux-btrace.o \ linux-procfs.o linux-ptrace.o linux-btrace.o \
@ -11,10 +11,10 @@ Index: gdb-7.6.90.20140127/gdb/config/i386/linux64.mh
NAT_CDEPS = $(srcdir)/proc-service.list NAT_CDEPS = $(srcdir)/proc-service.list
# The dynamically loaded libthread_db needs access to symbols in the # The dynamically loaded libthread_db needs access to symbols in the
Index: gdb-7.6.90.20140127/gdb/config/i386/linux.mh Index: gdb-7.7.50.20140609/gdb/config/i386/linux.mh
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/config/i386/linux.mh 2014-02-06 17:30:15.893482056 +0100 --- gdb-7.7.50.20140609.orig/gdb/config/i386/linux.mh 2014-06-13 20:25:37.356732335 +0200
+++ gdb-7.6.90.20140127/gdb/config/i386/linux.mh 2014-02-06 17:30:23.021489736 +0100 +++ gdb-7.7.50.20140609/gdb/config/i386/linux.mh 2014-06-13 20:26:07.984764098 +0200
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
# Host: Intel 386 running GNU/Linux. # Host: Intel 386 running GNU/Linux.
@ -23,10 +23,10 @@ Index: gdb-7.6.90.20140127/gdb/config/i386/linux.mh
NATDEPFILES= inf-ptrace.o fork-child.o \ NATDEPFILES= inf-ptrace.o fork-child.o \
i386-nat.o i386-linux-nat.o \ i386-nat.o i386-linux-nat.o \
proc-service.o linux-thread-db.o \ proc-service.o linux-thread-db.o \
Index: gdb-7.6.90.20140127/gdb/config/i386/nm-linux.h Index: gdb-7.7.50.20140609/gdb/config/i386/nm-linux.h
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.90.20140127/gdb/config/i386/nm-linux.h 2014-02-06 17:30:23.021489736 +0100 +++ gdb-7.7.50.20140609/gdb/config/i386/nm-linux.h 2014-06-13 20:26:07.984764098 +0200
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
+/* Native support for GNU/Linux i386. +/* Native support for GNU/Linux i386.
+ +
@ -56,10 +56,10 @@ Index: gdb-7.6.90.20140127/gdb/config/i386/nm-linux.h
+#define target_can_use_hardware_watchpoint(type, cnt, ot) 1 +#define target_can_use_hardware_watchpoint(type, cnt, ot) 1
+ +
+#endif /* NM_LINUX64_H */ +#endif /* NM_LINUX64_H */
Index: gdb-7.6.90.20140127/gdb/config/i386/nm-linux64.h Index: gdb-7.7.50.20140609/gdb/config/i386/nm-linux64.h
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.90.20140127/gdb/config/i386/nm-linux64.h 2014-02-06 17:30:23.021489736 +0100 +++ gdb-7.7.50.20140609/gdb/config/i386/nm-linux64.h 2014-06-13 20:26:07.984764098 +0200
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
+/* Native support for GNU/Linux amd64. +/* Native support for GNU/Linux amd64.
+ +
@ -89,25 +89,26 @@ Index: gdb-7.6.90.20140127/gdb/config/i386/nm-linux64.h
+#define target_can_use_hardware_watchpoint(type, cnt, ot) 1 +#define target_can_use_hardware_watchpoint(type, cnt, ot) 1
+ +
+#endif /* NM_LINUX64_H */ +#endif /* NM_LINUX64_H */
Index: gdb-7.6.90.20140127/gdb/target.h Index: gdb-7.7.50.20140609/gdb/target.h
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/target.h 2014-02-06 17:30:15.894482057 +0100 --- gdb-7.7.50.20140609.orig/gdb/target.h 2014-06-13 20:26:07.985764099 +0200
+++ gdb-7.6.90.20140127/gdb/target.h 2014-02-06 17:30:23.022489737 +0100 +++ gdb-7.7.50.20140609/gdb/target.h 2014-06-13 20:26:34.915792095 +0200
@@ -1521,8 +1521,10 @@ extern char *target_thread_name (struct @@ -1728,9 +1728,11 @@ extern char *target_thread_name (struct
bp_hardware_breakpoint. CNT is the number of such watchpoints used so far bp_hardware_breakpoint. CNT is the number of such watchpoints used so far
(including this one?). OTHERTYPE is who knows what... */ (including this one?). OTHERTYPE is who knows what... */
+#ifndef target_can_use_hardware_watchpoint +#ifndef target_can_use_hardware_watchpoint
#define target_can_use_hardware_watchpoint(TYPE,CNT,OTHERTYPE) \ #define target_can_use_hardware_watchpoint(TYPE,CNT,OTHERTYPE) \
(*current_target.to_can_use_hw_breakpoint) (TYPE, CNT, OTHERTYPE); (*current_target.to_can_use_hw_breakpoint) (&current_target, \
TYPE, CNT, OTHERTYPE);
+#endif +#endif
/* Returns the number of debug registers needed to watch the given /* Returns the number of debug registers needed to watch the given
memory region, or zero if not supported. */ memory region, or zero if not supported. */
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp 2014-02-06 17:30:23.022489737 +0100 +++ gdb-7.7.50.20140609/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp 2014-06-13 20:26:07.986764101 +0200
@@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
+# Copyright 2009, 2010 Free Software Foundation, Inc. +# Copyright 2009, 2010 Free Software Foundation, Inc.
+ +

View File

@ -0,0 +1,308 @@
https://bugzilla.redhat.com/show_bug.cgi?id=1020004
Index: gdb-7.7.90.20140613/gdb/data-directory/Makefile.in
===================================================================
--- gdb-7.7.90.20140613.orig/gdb/data-directory/Makefile.in 2014-06-13 23:02:37.597115787 +0200
+++ gdb-7.7.90.20140613/gdb/data-directory/Makefile.in 2014-06-13 23:03:21.285163909 +0200
@@ -60,6 +60,8 @@ PYTHON_FILES = \
gdb/frames.py \
gdb/FrameIterator.py \
gdb/FrameDecorator.py \
+ gdb/FrameWrapper.py \
+ gdb/backtrace.py \
gdb/types.py \
gdb/printing.py \
gdb/prompt.py \
@@ -74,6 +76,7 @@ PYTHON_FILES = \
gdb/command/pretty_printers.py \
gdb/command/prompt.py \
gdb/command/explore.py \
+ gdb/command/backtrace.py \
gdb/function/__init__.py \
gdb/function/strfns.py \
gdb/function/caller_is.py \
Index: gdb-7.7.90.20140613/gdb/python/lib/gdb/FrameWrapper.py
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/python/lib/gdb/FrameWrapper.py 2014-06-13 23:02:37.598115788 +0200
@@ -0,0 +1,122 @@
+# Wrapper API for frames.
+
+# Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import gdb
+
+# FIXME: arguably all this should be on Frame somehow.
+class FrameWrapper:
+ def __init__ (self, frame):
+ self.frame = frame;
+
+ def write_symbol (self, stream, sym, block):
+ if len (sym.linkage_name):
+ nsym, is_field_of_this = gdb.lookup_symbol (sym.linkage_name, block)
+ if nsym.addr_class != gdb.SYMBOL_LOC_REGISTER:
+ sym = nsym
+
+ stream.write (sym.print_name + "=")
+ try:
+ val = self.read_var (sym)
+ if val != None:
+ val = str (val)
+ # FIXME: would be nice to have a more precise exception here.
+ except RuntimeError, text:
+ val = text
+ if val == None:
+ stream.write ("???")
+ else:
+ stream.write (str (val))
+
+ def print_frame_locals (self, stream, func):
+
+ try:
+ block = self.frame.block()
+ except RuntimeError:
+ block = None
+
+ while block != None:
+ if block.is_global or block.is_static:
+ break
+
+ for sym in block:
+ if sym.is_argument:
+ continue;
+
+ self.write_symbol (stream, sym, block)
+ stream.write ('\n')
+
+ def print_frame_args (self, stream, func):
+
+ try:
+ block = self.frame.block()
+ except RuntimeError:
+ block = None
+
+ while block != None:
+ if block.function != None:
+ break
+ block = block.superblock
+
+ first = True
+ for sym in block:
+ if not sym.is_argument:
+ continue;
+
+ if not first:
+ stream.write (", ")
+
+ self.write_symbol (stream, sym, block)
+ first = False
+
+ # FIXME: this should probably just be a method on gdb.Frame.
+ # But then we need stream wrappers.
+ def describe (self, stream, full):
+ if self.type () == gdb.DUMMY_FRAME:
+ stream.write (" <function called from gdb>\n")
+ elif self.type () == gdb.SIGTRAMP_FRAME:
+ stream.write (" <signal handler called>\n")
+ else:
+ sal = self.find_sal ()
+ pc = self.pc ()
+ name = self.name ()
+ if not name:
+ name = "??"
+ if pc != sal.pc or not sal.symtab:
+ stream.write (" 0x%08x in" % pc)
+ stream.write (" " + name + " (")
+
+ func = self.function ()
+ self.print_frame_args (stream, func)
+
+ stream.write (")")
+
+ if sal.symtab and sal.symtab.filename:
+ stream.write (" at " + sal.symtab.filename)
+ stream.write (":" + str (sal.line))
+
+ if not self.name () or (not sal.symtab or not sal.symtab.filename):
+ lib = gdb.solib_name (pc)
+ if lib:
+ stream.write (" from " + lib)
+
+ stream.write ("\n")
+
+ if full:
+ self.print_frame_locals (stream, func)
+
+ def __getattr__ (self, name):
+ return getattr (self.frame, name)
Index: gdb-7.7.90.20140613/gdb/python/lib/gdb/backtrace.py
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/python/lib/gdb/backtrace.py 2014-06-13 23:02:37.598115788 +0200
@@ -0,0 +1,42 @@
+# Filtering backtrace.
+
+# Copyright (C) 2008, 2011 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import gdb
+import itertools
+
+# Our only exports.
+__all__ = ['push_frame_filter', 'create_frame_filter']
+
+old_frame_filter = None
+
+def push_frame_filter (constructor):
+ """Register a new backtrace filter class with the 'backtrace' command.
+The filter will be passed an iterator as an argument. The iterator
+will return gdb.Frame-like objects. The filter should in turn act as
+an iterator returning such objects."""
+ global old_frame_filter
+ if old_frame_filter == None:
+ old_frame_filter = constructor
+ else:
+ old_frame_filter = lambda iterator, filter = frame_filter: constructor (filter(iterator))
+
+def create_frame_filter (iter):
+ global old_frame_filter
+ if old_frame_filter is None:
+ return iter
+ return old_frame_filter (iter)
+
Index: gdb-7.7.90.20140613/gdb/python/lib/gdb/command/backtrace.py
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/python/lib/gdb/command/backtrace.py 2014-06-13 23:02:37.598115788 +0200
@@ -0,0 +1,106 @@
+# New backtrace command.
+
+# Copyright (C) 2008, 2009, 2011 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import gdb
+import gdb.backtrace
+import itertools
+from gdb.FrameIterator import FrameIterator
+from gdb.FrameWrapper import FrameWrapper
+import sys
+
+class ReverseBacktraceParameter (gdb.Parameter):
+ """The new-backtrace command can show backtraces in 'reverse' order.
+This means that the innermost frame will be printed last.
+Note that reverse backtraces are more expensive to compute."""
+
+ set_doc = "Enable or disable reverse backtraces."
+ show_doc = "Show whether backtraces will be printed in reverse order."
+
+ def __init__(self):
+ gdb.Parameter.__init__ (self, "reverse-backtrace",
+ gdb.COMMAND_STACK, gdb.PARAM_BOOLEAN)
+ # Default to compatibility with gdb.
+ self.value = False
+
+class FilteringBacktrace (gdb.Command):
+ """Print backtrace of all stack frames, or innermost COUNT frames.
+With a negative argument, print outermost -COUNT frames.
+Use of the 'full' qualifier also prints the values of the local variables.
+Use of the 'raw' qualifier avoids any filtering by loadable modules.
+"""
+
+ def __init__ (self):
+ # FIXME: this is not working quite well enough to replace
+ # "backtrace" yet.
+ gdb.Command.__init__ (self, "new-backtrace", gdb.COMMAND_STACK)
+ self.reverse = ReverseBacktraceParameter()
+
+ def reverse_iter (self, iter):
+ result = []
+ for item in iter:
+ result.append (item)
+ result.reverse()
+ return result
+
+ def final_n (self, iter, x):
+ result = []
+ for item in iter:
+ result.append (item)
+ return result[x:]
+
+ def invoke (self, arg, from_tty):
+ i = 0
+ count = 0
+ filter = True
+ full = False
+
+ for word in arg.split (" "):
+ if word == '':
+ continue
+ elif word == 'raw':
+ filter = False
+ elif word == 'full':
+ full = True
+ else:
+ count = int (word)
+
+ # 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 filter:
+ iter = gdb.backtrace.create_frame_filter (iter)
+
+ # Now wrap in an iterator that numbers the frames.
+ iter = itertools.izip (itertools.count (0), iter)
+
+ # Reverse if the user wanted that.
+ if self.reverse.value:
+ iter = self.reverse_iter (iter)
+
+ # Extract sub-range user wants.
+ if count < 0:
+ iter = self.final_n (iter, count)
+ elif count > 0:
+ iter = itertools.islice (iter, 0, count)
+
+ for pair in iter:
+ sys.stdout.write ("#%-2d" % pair[0])
+ pair[1].describe (sys.stdout, full)
+
+FilteringBacktrace()

View File

@ -1,13 +0,0 @@
Index: gdb-7.7/gdb/s390-linux-nat.c
===================================================================
--- gdb-7.7.orig/gdb/s390-linux-nat.c 2014-02-12 16:10:55.000000000 +0100
+++ gdb-7.7/gdb/s390-linux-nat.c 2014-02-12 16:40:33.000000000 +0100
@@ -563,7 +563,7 @@ s390_can_use_hw_breakpoint (int type, in
}
static int
-s390_region_ok_for_hw_watchpoint (CORE_ADDR addr, int cnt)
+s390_region_ok_for_hw_watchpoint (CORE_ADDR addr, LONGEST cnt)
{
return 1;
}

View File

@ -0,0 +1,104 @@
http://sourceware.org/ml/gdb-patches/2014-07/msg00709.html
Subject: [patch] Display Fortran strings in backtraces
Hi,
for Fortran it fixes displaying normal strings also in frames/backtraces:
(gdb) frame
#0 f (s=..., _s=3) at ./gdb.fortran/fortran-frame-string.f90:24
->
#0 f (s='foo', _s=3) at ./gdb.fortran/fortran-frame-string.f90:24
The patch is simple and I do not see why it should not be this way.
For C/C++ TYPE_CODE_STRING is not used. I am not aware of Pascal but that
language is currently not really much supported in GDB anyway.
This was a part of my archer/jankratochvil/vla branch but it is not a part of
the Intel VLA patchset as it in fact is completely unrelated to "VLA".
No regressions on {x86_64,x86_64-m32,i686}-fedora22pre-linux-gnu.
Thanks,
Jan
diff --git a/gdb/testsuite/gdb.fortran/fortran-frame-string.exp b/gdb/testsuite/gdb.fortran/fortran-frame-string.exp
new file mode 100644
index 0000000..4b78266
--- /dev/null
+++ b/gdb/testsuite/gdb.fortran/fortran-frame-string.exp
@@ -0,0 +1,36 @@
+# Copyright 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# 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.
+
+standard_testfile .f90
+if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f90}] } {
+ return -1
+}
+
+if ![runto MAIN__] then {
+ perror "couldn't run to breakpoint MAIN__"
+ continue
+}
+
+gdb_breakpoint [gdb_get_line_number "s = s"]
+gdb_continue_to_breakpoint "s = s"
+
+gdb_test "ptype s" {type = character\*3}
+gdb_test "p s" " = 'foo'"
+
+# Fix rejected upstream:
+# https://sourceware.org/ml/gdb-patches/2014-07/msg00768.html
+setup_kfail "rejected" *-*-*
+gdb_test "frame" { \(s='foo', .*}
diff --git a/gdb/testsuite/gdb.fortran/fortran-frame-string.f90 b/gdb/testsuite/gdb.fortran/fortran-frame-string.f90
new file mode 100644
index 0000000..3d1576f
--- /dev/null
+++ b/gdb/testsuite/gdb.fortran/fortran-frame-string.f90
@@ -0,0 +1,28 @@
+! Copyright 2014 Free Software Foundation, Inc.
+!
+! This program is free software; you can redistribute it and/or modify
+! it under the terms of the GNU General Public License as published by
+! the Free Software Foundation; either version 2 of the License, or
+! (at your option) any later version.
+!
+! This program is distributed in the hope that it will be useful,
+! but WITHOUT ANY WARRANTY; without even the implied warranty of
+! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+! GNU General Public License for more details.
+!
+! 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.
+!
+! Ihis file is the Fortran source file for dynamic.exp.
+! Original file written by Jakub Jelinek <jakub@redhat.com>.
+! Modified for the GDB testcase by Jan Kratochvil <jan.kratochvil@redhat.com>.
+
+ subroutine f(s)
+ character*3 s
+ s = s
+ end
+
+ program main
+ call f ('foo')
+ end

View File

@ -1,8 +1,8 @@
Index: gdb-7.6.90.20140127/gdb/dwarf2read.c Index: gdb-7.7.90.20140613/gdb/dwarf2read.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/dwarf2read.c 2014-02-06 18:18:09.676572271 +0100 --- gdb-7.7.90.20140613.orig/gdb/dwarf2read.c 2014-06-13 21:56:54.744653443 +0200
+++ gdb-7.6.90.20140127/gdb/dwarf2read.c 2014-02-06 18:18:42.664607823 +0100 +++ gdb-7.7.90.20140613/gdb/dwarf2read.c 2014-06-13 22:01:51.529990684 +0200
@@ -17646,6 +17646,25 @@ new_symbol_full (struct die_info *die, s @@ -17695,6 +17695,26 @@ new_symbol_full (struct die_info *die, s
/* Cache this symbol's name and the name's demangled form (if any). */ /* Cache this symbol's name and the name's demangled form (if any). */
SYMBOL_SET_LANGUAGE (sym, cu->language, &objfile->objfile_obstack); SYMBOL_SET_LANGUAGE (sym, cu->language, &objfile->objfile_obstack);
linkagename = dwarf2_physname (name, die, cu); linkagename = dwarf2_physname (name, die, cu);
@ -14,24 +14,25 @@ Index: gdb-7.6.90.20140127/gdb/dwarf2read.c
+ && strstr (objfile_name (objfile), "/libc") != NULL) + && strstr (objfile_name (objfile), "/libc") != NULL)
+ { + {
+ struct objfile *objfile_msym; + struct objfile *objfile_msym;
+ struct minimal_symbol *msym; + struct bound_minimal_symbol bmsym;
+ +
+ if (objfile->separate_debug_objfile_backlink) + if (objfile->separate_debug_objfile_backlink)
+ objfile_msym = objfile->separate_debug_objfile_backlink; + objfile_msym = objfile->separate_debug_objfile_backlink;
+ else + else
+ objfile_msym = objfile; + objfile_msym = objfile;
+ msym = lookup_minimal_symbol ("strstr", NULL, objfile_msym); + bmsym = lookup_minimal_symbol ("strstr", NULL, objfile_msym);
+ if (msym && MSYMBOL_TYPE (msym) == mst_text_gnu_ifunc) + if (bmsym.minsym != NULL
+ && MSYMBOL_TYPE (bmsym.minsym) == mst_text_gnu_ifunc)
+ linkagename = "__strstr"; + linkagename = "__strstr";
+ } + }
+ +
SYMBOL_SET_NAMES (sym, linkagename, strlen (linkagename), 0, objfile); SYMBOL_SET_NAMES (sym, linkagename, strlen (linkagename), 0, objfile);
/* Fortran does not have mangling standard and the mangling does differ /* Fortran does not have mangling standard and the mangling does differ
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp 2014-02-06 18:18:16.294579381 +0100 +++ gdb-7.7.90.20140613/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp 2014-06-13 21:59:41.174840871 +0200
@@ -0,0 +1,108 @@ @@ -0,0 +1,108 @@
+# Copyright (C) 2012 Free Software Foundation, Inc. +# Copyright (C) 2012 Free Software Foundation, Inc.
+ +

View File

@ -0,0 +1,58 @@
http://sourceware.org/ml/gdb-patches/2014-02/msg00731.html
Subject: [patch] gdb_assert -> complaint for weird DWARF
--6TrnltStXW4iwmi0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Hi,
PR 16581:
GDB crash on inherit_abstract_dies infinite recursion
https://sourceware.org/bugzilla/show_bug.cgi?id=16581
fixed crash from an infinite recursion. But in rare cases the new code can
now gdb_assert() due to weird DWARF file.
I do not yet fully understand why the DWARF is as it is but just GDB should
never crash due to invalid DWARF anyway. The "invalid" DWARF I see only in
Fedora GCC build, not in FSF GCC build, more info at:
https://bugzilla.redhat.com/show_bug.cgi?id=1069382
http://people.redhat.com/jkratoch/gcc-debuginfo-4.8.2-7.fc20.x86_64-gnatbind.debug
Thanks,
Jan
--6TrnltStXW4iwmi0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename="complaint.patch"
gdb/
2014-02-24 Jan Kratochvil <jan.kratochvil@redhat.com>
* dwarf2read.c (process_die): Change gdb_assert to complaint.
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 3eaa0b1..71f5d34 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -8029,7 +8029,13 @@ process_die (struct die_info *die, struct dwarf2_cu *cu)
struct cleanup *in_process;
/* We should only be processing those not already in process. */
- gdb_assert (!die->in_process);
+ if (die->in_process)
+ {
+ complaint (&symfile_complaints,
+ _("DIE at 0x%x attempted to be processed twice"),
+ die->offset.sect_off);
+ return;
+ }
die->in_process = 1;
in_process = make_cleanup (reset_die_in_process,die);
--6TrnltStXW4iwmi0--

View File

@ -1,39 +0,0 @@
Index: gdb-7.6.50.20130731-cvs/gdb/ia64-tdep.c
===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/ia64-tdep.c 2013-08-07 15:16:31.000000000 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/ia64-tdep.c 2013-08-07 15:16:34.000000000 +0200
@@ -2181,7 +2181,7 @@ static const struct frame_unwind ia64_fr
avoid the additional bogus frame
#7 0x0000000000000000 in ?? () */
-static char linux_clone2_code[] =
+static unsigned char linux_clone2_code[] =
{
/* libc/sysdeps/unix/sysv/linux/ia64/clone2.S */
0x09, 0x00, 0x20, 0x12, 0x90, 0x11, 0x00, 0x40,
@@ -2220,7 +2220,7 @@ static int
ia64_linux_clone2_running (struct frame_info *this_frame)
{
CORE_ADDR pc = get_frame_pc (this_frame);
- char buf[LINUX_CLONE_LEN];
+ unsigned char buf[LINUX_CLONE_LEN];
struct minimal_symbol *minsym;
long long instr;
@@ -2256,7 +2256,7 @@ static int
ia64_outermost_frame (struct frame_info *this_frame)
{
CORE_ADDR pc = get_frame_pc (this_frame);
- char *name;
+ const char *name;
find_pc_partial_function (pc, &name, NULL, NULL);
@@ -2302,6 +2302,7 @@ ia64_clone2_frame_sniffer (const struct
static const struct frame_unwind ia64_clone2_frame_unwind =
{
NORMAL_FRAME,
+ default_frame_unwind_stop_reason,
&ia64_clone2_frame_this_id,
&ia64_clone2_frame_prev_register,
NULL,

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,747 @@
http://sourceware.org/ml/gdb-patches/2014-07/msg00002.html
Subject: Re: [PATCH] PR python/16699: GDB Python command completion with overriden complete vs. completer class
https://bugzilla.redhat.com/show_bug.cgi?id=1075199
On Wednesday, May 21 2014, Doug Evans wrote:
> Sergio Durigan Junior <sergiodj@redhat.com> writes:
>> [...]
>> Thanks. WDYT of the following patch?
>
> Hi.
>
> fwiw it's too bad the ability to plug in different completers isn't more,
> I dunno, parameterized (couldn't pick a better term, apologies -
> I thought of "object oriented" but that carries its own baggage).
> Performing completion obviously involves specifying more than a just
> single function (witness the comparison of the completer with specific
> functions).
Thanks for the reply, and sorry for the long delay in answering.
> Plus it's more than specifying brkchars.
> Witness code like this:
>
> /* Many commands which want to complete on
> file names accept several file names, as
> in "run foo bar >>baz". So we don't want
> to complete the entire text after the
> command, just the last word. To this
> end, we need to find the beginning of the
> file name by starting at `word' and going
> backwards. */
> for (p = word;
> p > tmp_command
> && strchr (gdb_completer_file_name_break_characters, p[-1]) == NULL;
> p--)
> ;
>
> IWBN if a "completer" object described how to do all these three things.
> Then the special case code for filename_completer (and location_completer)
> in completer.c could disappear. But maybe that's a patch for another day.
While I agree with you that the completion mechanism could be better (I
myself had a lot of trouble with it), I unfortunately don't have enough
time to tackle this problem now. So yeah, I think it will be a patch
for another day...
> Regarding the hack of using a static local to pass data from
> handle_brkchars to handle_completion, I know it's a hacky pragmatic
> choice. To get the reference counting right the code assumes that
> if the handle_brkchars phase is done then the handle_completion
> phase will be done too, right?
Yeah. This is true for the current code (well, except maybe for the
case you describe below...).
> I wonder if a SIGINT could sneak in
> there between the two passes (either today or tomorrow).
> Maybe the code in cmdpy_completer_helper for handle_brkchars_p could
> first check whether resultobj is already non-NULL, and decrement its
> reference count before setting it to NULL?
Yes, done (I think). Thanks for raising this issue.
> And cmdpy_completer_helper
> could be defined to return a borrowed reference to resultobj?
> Dunno, just thinking out loud.
Done, I guess.
> Something puzzles me though: If it's ok to cache the completion result from the
> handle_brkchars pass to the handle_completion pass, why have two passes?
> It feels like there must be a case where this caching of the result
> in a static local from one pass to the next won't work.
I'm not sure I follow.
It's OK to cache the result because handle_brkchars and
handle_completion work on the same set of data. In fact, we wouldn't
need to have two passes here; my previous patch didn't have two passes,
and worked fine. I just implemented it this way because Tom (correctly)
raised the point that the completion itself might be time-consuming, and
thus we could reuse its result in the two phases.
> Another question:
> I noticed complete_command doesn't do this two-phase dance
> of handle_brkchars followed by handle_completions. Should it?
> It just goes straight to handle_completions.
I don't think it should, because for complete_command (and
complete_filename et al) the handle_brkchars is already defined
internally by GDB. See:
...
/* Choose the default set of word break characters to break
completions. If we later find out that we are doing completions
on command strings (as opposed to strings supplied by the
individual command completer functions, which can be any string)
then we will switch to the special word break set for command
strings, which leaves out the '-' character used in some
commands. */
rl_completer_word_break_characters =
current_language->la_word_break_characters();
...
/* It is a normal command; what comes after it is
completed by the command's completer function. */
if (c->completer == filename_completer)
{
/* Many commands which want to complete on
file names accept several file names, as
in "run foo bar >>baz". So we don't want
to complete the entire text after the
command, just the last word. To this
end, we need to find the beginning of the
file name by starting at `word' and going
backwards. */
for (p = word;
p > tmp_command
&& strchr (gdb_completer_file_name_break_characters, p[-1]) == NULL;
p--)
;
rl_completer_word_break_characters =
gdb_completer_file_name_break_characters;
}
else if (c->completer == location_completer)
{
/* Commands which complete on locations want to
see the entire argument. */
for (p = word;
p > tmp_command
&& p[-1] != ' ' && p[-1] != '\t';
p--)
;
}
if (reason == handle_brkchars
&& c->completer_handle_brkchars != NULL)
(*c->completer_handle_brkchars) (c, p, word);
if (reason != handle_brkchars && c->completer != NULL)
list = (*c->completer) (c, p, word);
The complete_command function will only be called by the last "if"
clause, when reason != handle_brkchars. Otherwise,
complete_line_internal will just deal with handle_brkchars. And for
complete_command, the right value for rl_completer_word_break_characters
is what is attributed at the beginning of the function.
My patch implements this "two-phase" dance for Python because in this
specific case (i.e., a completion method defined in the Python script)
there is no way to know the value of handle_brkchars before we actually
do the completion itself.
In fact, my patch could probably be "simplified" and be made to call
cmdpy_completer directly (without any cmdpy_completer_handle_brkchars),
assuming that this function took care of filling handle_brkchars
correctly. What I mean is: when dealing with the handle_brkchars case,
the completer command can do anything it wants.
> [Maybe that explains the difference from using TAB. Dunno off hand.]
> It seems like complete_command is trying to hand-code its own
> handle_brkchars handling:
>
> static void
> complete_command (char *arg, int from_tty)
> {
> int argpoint;
> char *point, *arg_prefix;
> VEC (char_ptr) *completions;
>
> dont_repeat ();
>
> if (arg == NULL)
> arg = "";
> argpoint = strlen (arg);
>
> /* complete_line assumes that its first argument is somewhere
> within, and except for filenames at the beginning of, the word to
> be completed. The following crude imitation of readline's
> word-breaking tries to accomodate this. */
> point = arg + argpoint;
> while (point > arg)
> {
> if (strchr (rl_completer_word_break_characters, point[-1]) != 0)
> break;
> point--;
> }
>
> arg_prefix = alloca (point - arg + 1);
> memcpy (arg_prefix, arg, point - arg);
> arg_prefix[point - arg] = 0;
>
> completions = complete_line (point, arg, argpoint);
>
> ...
> }
Yes, it seems so, but I did not check further.
> TAB and the complete command should work identically of course,
> but for your testcase, maybe you should test both just to verify
> both work reasonably well (even if not identically).
> Given that complete_command doesn't do the two phase dance,
> does it work with your patch?
> Maybe it does, but IWBN to confirm that.
The 'complete' command does not work as it should with my patch:
(gdb) complete completefileinit /hom
completefileinit /home
(gdb) complete completefilemethod /hom
completefilemethod /home
But then, it also does not work without my patch either:
(gdb) complete file /hom
file /home
So I am not extending the testcase for now, because this bug needs to be
fixed first (and it is unrelated to the patch I am proposing).
WDYT of this version?
Thanks,
--
Sergio
GPG key ID: 65FC5E36
Please send encrypted e-mail if possible
http://blog.sergiodj.net/
gdb/
2014-06-30 Sergio Durigan Junior <sergiodj@redhat.com>
PR python/16699
* cli/cli-decode.c (set_cmd_completer_handle_brkchars): New
function.
(add_cmd): Set "completer_handle_brkchars" to NULL.
* cli/cli-decode.h (struct cmd_list_element)
<completer_handle_brkchars>: New field.
* command.h (completer_ftype_void): New typedef.
(set_cmd_completer_handle_brkchars): New prototype.
* completer.c (set_gdb_completion_word_break_characters): New
function.
(complete_line_internal): Call "completer_handle_brkchars"
callback from command.
* completer.h: Include "command.h".
(set_gdb_completion_word_break_characters): New prototype.
* python/py-cmd.c (cmdpy_completer_helper): New function.
(cmdpy_completer_handle_brkchars): New function.
(cmdpy_completer): Adjust to use cmdpy_completer_helper.
(cmdpy_init): Set completer_handle_brkchars to
cmdpy_completer_handle_brkchars.
gdb/testsuite/
2014-06-30 Sergio Durigan Junior <sergiodj@redhat.com>
PR python/16699
* gdb.python/py-completion.exp: New file.
* gdb.python/py-completion.py: Likewise.
Index: gdb-7.7.90.20140627/gdb/cli/cli-decode.c
===================================================================
--- gdb-7.7.90.20140627.orig/gdb/cli/cli-decode.c 2014-07-07 20:53:52.635106914 +0200
+++ gdb-7.7.90.20140627/gdb/cli/cli-decode.c 2014-07-07 20:53:55.429110207 +0200
@@ -164,6 +164,15 @@ set_cmd_completer (struct cmd_list_eleme
cmd->completer = completer; /* Ok. */
}
+/* See definition in commands.h. */
+
+void
+set_cmd_completer_handle_brkchars (struct cmd_list_element *cmd,
+ completer_ftype_void *completer_handle_brkchars)
+{
+ cmd->completer_handle_brkchars = completer_handle_brkchars;
+}
+
/* Add element named NAME.
Space for NAME and DOC must be allocated by the caller.
CLASS is the top level category into which commands are broken down
@@ -239,6 +248,7 @@ add_cmd (const char *name, enum command_
c->prefix = NULL;
c->abbrev_flag = 0;
set_cmd_completer (c, make_symbol_completion_list_fn);
+ c->completer_handle_brkchars = NULL;
c->destroyer = NULL;
c->type = not_set_cmd;
c->var = NULL;
Index: gdb-7.7.90.20140627/gdb/cli/cli-decode.h
===================================================================
--- gdb-7.7.90.20140627.orig/gdb/cli/cli-decode.h 2014-07-07 20:53:52.636106915 +0200
+++ gdb-7.7.90.20140627/gdb/cli/cli-decode.h 2014-07-07 20:53:55.429110207 +0200
@@ -176,6 +176,15 @@ struct cmd_list_element
"baz/foo", return "baz/foobar". */
completer_ftype *completer;
+ /* Handle the word break characters for this completer. Usually
+ this function need not be defined, but for some types of
+ completers (e.g., Python completers declared as methods inside
+ a class) the word break chars may need to be redefined
+ depending on the completer type (e.g., for filename
+ completers). */
+
+ completer_ftype_void *completer_handle_brkchars;
+
/* Destruction routine for this command. If non-NULL, this is
called when this command instance is destroyed. This may be
used to finalize the CONTEXT field, if needed. */
Index: gdb-7.7.90.20140627/gdb/command.h
===================================================================
--- gdb-7.7.90.20140627.orig/gdb/command.h 2014-07-07 20:53:52.636106915 +0200
+++ gdb-7.7.90.20140627/gdb/command.h 2014-07-07 20:53:55.430110208 +0200
@@ -158,8 +158,16 @@ extern void set_cmd_sfunc (struct cmd_li
typedef VEC (char_ptr) *completer_ftype (struct cmd_list_element *,
const char *, const char *);
+typedef void completer_ftype_void (struct cmd_list_element *,
+ const char *, const char *);
+
extern void set_cmd_completer (struct cmd_list_element *, completer_ftype *);
+/* Set the completer_handle_brkchars callback. */
+
+extern void set_cmd_completer_handle_brkchars (struct cmd_list_element *,
+ completer_ftype_void *);
+
/* HACK: cagney/2002-02-23: Code, mostly in tracepoints.c, grubs
around in cmd objects to test the value of the commands sfunc(). */
extern int cmd_cfunc_eq (struct cmd_list_element *cmd,
Index: gdb-7.7.90.20140627/gdb/completer.c
===================================================================
--- gdb-7.7.90.20140627.orig/gdb/completer.c 2014-07-07 20:53:52.637106916 +0200
+++ gdb-7.7.90.20140627/gdb/completer.c 2014-07-07 20:53:55.430110208 +0200
@@ -450,6 +450,21 @@ expression_completer (struct cmd_list_el
return location_completer (ignore, p, word);
}
+/* See definition in completer.h. */
+
+void
+set_gdb_completion_word_break_characters (completer_ftype *fn)
+{
+ /* So far we are only interested in differentiating filename
+ completers from everything else. */
+ if (fn == filename_completer)
+ rl_completer_word_break_characters
+ = gdb_completer_file_name_break_characters;
+ else
+ rl_completer_word_break_characters
+ = gdb_completer_command_word_break_characters;
+}
+
/* Here are some useful test cases for completion. FIXME: These
should be put in the test suite. They should be tested with both
M-? and TAB.
@@ -678,6 +693,9 @@ complete_line_internal (const char *text
p--)
;
}
+ if (reason == handle_brkchars
+ && c->completer_handle_brkchars != NULL)
+ (*c->completer_handle_brkchars) (c, p, word);
if (reason != handle_brkchars && c->completer != NULL)
list = (*c->completer) (c, p, word);
}
@@ -751,6 +769,9 @@ complete_line_internal (const char *text
p--)
;
}
+ if (reason == handle_brkchars
+ && c->completer_handle_brkchars != NULL)
+ (*c->completer_handle_brkchars) (c, p, word);
if (reason != handle_brkchars && c->completer != NULL)
list = (*c->completer) (c, p, word);
}
Index: gdb-7.7.90.20140627/gdb/completer.h
===================================================================
--- gdb-7.7.90.20140627.orig/gdb/completer.h 2014-07-07 20:53:52.637106916 +0200
+++ gdb-7.7.90.20140627/gdb/completer.h 2014-07-07 20:54:13.297131831 +0200
@@ -18,6 +18,7 @@
#define COMPLETER_H 1
#include "gdb_vecs.h"
+#include "command.h"
extern VEC (char_ptr) *complete_line (const char *text,
char *line_buffer,
@@ -48,6 +49,13 @@ extern char *get_gdb_completer_quote_cha
extern char *gdb_completion_word_break_characters (void);
+/* Set the word break characters array to the corresponding set of
+ chars, based on FN. This function is useful for cases when the
+ completer doesn't know the type of the completion until some
+ calculation is done (e.g., for Python functions). */
+
+extern void set_gdb_completion_word_break_characters (completer_ftype *fn);
+
/* Exported to linespec.c */
extern const char *skip_quoted_chars (const char *, const char *,
Index: gdb-7.7.90.20140627/gdb/python/py-cmd.c
===================================================================
--- gdb-7.7.90.20140627.orig/gdb/python/py-cmd.c 2014-07-07 20:53:52.637106916 +0200
+++ gdb-7.7.90.20140627/gdb/python/py-cmd.c 2014-07-07 20:53:55.431110209 +0200
@@ -208,45 +208,155 @@ cmdpy_function (struct cmd_list_element
do_cleanups (cleanup);
}
+/* Helper function for the Python command completers (both "pure"
+ completer and brkchar handler). This function takes COMMAND, TEXT
+ and WORD and tries to call the Python method for completion with
+ these arguments. It also takes HANDLE_BRKCHARS_P, an argument to
+ identify whether it is being called from the brkchar handler or
+ from the "pure" completer. In the first case, it effectively calls
+ the Python method for completion, and records the PyObject in a
+ static variable (used as a "cache"). In the second case, it just
+ returns that variable, without actually calling the Python method
+ again. This saves us one Python method call.
+
+ It is important to mention that this function is built on the
+ assumption that the calls to cmdpy_completer_handle_brkchars and
+ cmdpy_completer will be subsequent with nothing intervening. This
+ is true for our completer mechanism.
+
+ This function returns the PyObject representing the Python method
+ call. */
+
+static PyObject *
+cmdpy_completer_helper (struct cmd_list_element *command,
+ const char *text, const char *word,
+ int handle_brkchars_p)
+{
+ cmdpy_object *obj = (cmdpy_object *) get_cmd_context (command);
+ PyObject *textobj, *wordobj;
+ /* This static variable will server as a "cache" for us, in order to
+ store the PyObject that results from calling the Python
+ function. */
+ static PyObject *resultobj = NULL;
+
+ if (handle_brkchars_p)
+ {
+ /* If we were called to handle brkchars, it means this is the
+ first function call of two that will happen in a row.
+ Therefore, we need to call the completer ourselves, and cache
+ the return value in the static variable RESULTOBJ. Then, in
+ the second call, we can just use the value of RESULTOBJ to do
+ our job. */
+ if (resultobj != NULL)
+ Py_DECREF (resultobj);
+
+ resultobj = NULL;
+ if (!obj)
+ error (_("Invalid invocation of Python command object."));
+ if (!PyObject_HasAttr ((PyObject *) obj, complete_cst))
+ {
+ /* If there is no complete method, don't error. */
+ return NULL;
+ }
+
+ textobj = PyUnicode_Decode (text, strlen (text), host_charset (), NULL);
+ if (!textobj)
+ error (_("Could not convert argument to Python string."));
+ wordobj = PyUnicode_Decode (word, sizeof (word), host_charset (), NULL);
+ if (!wordobj)
+ {
+ Py_DECREF (textobj);
+ error (_("Could not convert argument to Python string."));
+ }
+
+ resultobj = PyObject_CallMethodObjArgs ((PyObject *) obj, complete_cst,
+ textobj, wordobj, NULL);
+ Py_DECREF (textobj);
+ Py_DECREF (wordobj);
+ if (!resultobj)
+ {
+ /* Just swallow errors here. */
+ PyErr_Clear ();
+ }
+
+ Py_XINCREF (resultobj);
+ }
+
+ return resultobj;
+}
+
+/* Python function called to determine the break characters of a
+ certain completer. We are only interested in knowing if the
+ completer registered by the user will return one of the integer
+ codes (see COMPLETER_* symbols). */
+
+static void
+cmdpy_completer_handle_brkchars (struct cmd_list_element *command,
+ const char *text, const char *word)
+{
+ PyObject *resultobj = NULL;
+ struct cleanup *cleanup;
+
+ cleanup = ensure_python_env (get_current_arch (), current_language);
+
+ /* Calling our helper to obtain the PyObject of the Python
+ function. */
+ resultobj = cmdpy_completer_helper (command, text, word, 1);
+
+ /* Check if there was an error. */
+ if (resultobj == NULL)
+ goto done;
+
+ if (PyInt_Check (resultobj))
+ {
+ /* User code may also return one of the completion constants,
+ thus requesting that sort of completion. We are only
+ interested in this kind of return. */
+ long value;
+
+ if (!gdb_py_int_as_long (resultobj, &value))
+ {
+ /* Ignore. */
+ PyErr_Clear ();
+ }
+ else if (value >= 0 && value < (long) N_COMPLETERS)
+ {
+ /* This is the core of this function. Depending on which
+ completer type the Python function returns, we have to
+ adjust the break characters accordingly. */
+ set_gdb_completion_word_break_characters
+ (completers[value].completer);
+ }
+ }
+
+ done:
+
+ /* We do not call Py_XDECREF here because RESULTOBJ will be used in
+ the subsequent call to cmdpy_completer function. */
+ do_cleanups (cleanup);
+}
+
/* Called by gdb for command completion. */
static VEC (char_ptr) *
cmdpy_completer (struct cmd_list_element *command,
const char *text, const char *word)
{
- cmdpy_object *obj = (cmdpy_object *) get_cmd_context (command);
- PyObject *textobj, *wordobj, *resultobj = NULL;
+ PyObject *resultobj = NULL;
VEC (char_ptr) *result = NULL;
struct cleanup *cleanup;
cleanup = ensure_python_env (get_current_arch (), current_language);
- if (! obj)
- error (_("Invalid invocation of Python command object."));
- if (! PyObject_HasAttr ((PyObject *) obj, complete_cst))
- {
- /* If there is no complete method, don't error -- instead, just
- say that there are no completions. */
- goto done;
- }
-
- textobj = PyUnicode_Decode (text, strlen (text), host_charset (), NULL);
- if (! textobj)
- error (_("Could not convert argument to Python string."));
- wordobj = PyUnicode_Decode (word, strlen (word), host_charset (), NULL);
- if (! wordobj)
- error (_("Could not convert argument to Python string."));
-
- resultobj = PyObject_CallMethodObjArgs ((PyObject *) obj, complete_cst,
- textobj, wordobj, NULL);
- Py_DECREF (textobj);
- Py_DECREF (wordobj);
- if (! resultobj)
- {
- /* Just swallow errors here. */
- PyErr_Clear ();
- goto done;
- }
+ /* Calling our helper to obtain the PyObject of the Python
+ function. */
+ resultobj = cmdpy_completer_helper (command, text, word, 0);
+
+ /* If the result object of calling the Python function is NULL, it
+ means that there was an error. In this case, just give up and
+ return NULL. */
+ if (resultobj == NULL)
+ goto done;
result = NULL;
if (PyInt_Check (resultobj))
@@ -302,7 +412,6 @@ cmdpy_completer (struct cmd_list_element
done:
- Py_XDECREF (resultobj);
do_cleanups (cleanup);
return result;
@@ -548,6 +657,9 @@ cmdpy_init (PyObject *self, PyObject *ar
set_cmd_context (cmd, self);
set_cmd_completer (cmd, ((completetype == -1) ? cmdpy_completer
: completers[completetype].completer));
+ if (completetype == -1)
+ set_cmd_completer_handle_brkchars (cmd,
+ cmdpy_completer_handle_brkchars);
}
if (except.reason < 0)
{
Index: gdb-7.7.90.20140627/gdb/testsuite/gdb.python/py-completion.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140627/gdb/testsuite/gdb.python/py-completion.exp 2014-07-07 20:53:55.431110209 +0200
@@ -0,0 +1,70 @@
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+set testfile "py-completion"
+
+load_lib gdb-python.exp
+
+gdb_exit
+gdb_start
+
+# Skip all tests if Python scripting is not enabled.
+if { [skip_python_tests] } { continue }
+
+gdb_test_no_output "source ${srcdir}/${subdir}/${testfile}.py"
+
+# Create a temporary directory
+set testdir "${objdir}/${subdir}/py-completion-testdir/"
+set testdir_regex [string_to_regexp $testdir]
+set testdir_complete "${objdir}/${subdir}/py-completion-test"
+file mkdir $testdir
+
+# This one should always pass.
+send_gdb "completefileinit ${testdir_complete}\t"
+gdb_test_multiple "" "completefileinit completion" {
+ -re "^completefileinit ${testdir_regex}$" {
+ pass "completefileinit completion"
+ }
+}
+
+# Just discarding whatever we typed.
+send_gdb "\n"
+gdb_test "print" ".*"
+
+# This is the problematic one.
+send_gdb "completefilemethod ${testdir_complete}\t"
+gdb_test_multiple "" "completefilemethod completion" {
+ -re "^completefilemethod ${testdir_regex} $" {
+ fail "completefilemethod completion (completed filename as wrong command arg)"
+ }
+ -re "^completefilemethod ${testdir_regex}$" {
+ pass "completefilemethod completion"
+ }
+}
+
+# Discarding again
+send_gdb "\n"
+gdb_test "print" ".*"
+
+# Another problematic
+send_gdb "completefilecommandcond ${objdir}/${subdir}/py-completion-t\t"
+gdb_test_multiple "" "completefilecommandcond completion" {
+ -re "^completefilecommandcond ${testdir}$" {
+ fail "completefilecommandcond completion (completed filename instead of command)"
+ }
+ -re "^completefilecommandcond ${objdir}/${subdir}/py-completion-t$" {
+ pass "completefilecommandcond completion"
+ }
+}
Index: gdb-7.7.90.20140627/gdb/testsuite/gdb.python/py-completion.py
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140627/gdb/testsuite/gdb.python/py-completion.py 2014-07-07 20:53:55.431110209 +0200
@@ -0,0 +1,58 @@
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# This testcase tests PR python/16699
+
+import gdb
+
+class CompleteFileInit(gdb.Command):
+ def __init__(self):
+ gdb.Command.__init__(self,'completefileinit',gdb.COMMAND_USER,gdb.COMPLETE_FILENAME)
+
+ def invoke(self,argument,from_tty):
+ raise gdb.GdbError('not implemented')
+
+class CompleteFileMethod(gdb.Command):
+ def __init__(self):
+ gdb.Command.__init__(self,'completefilemethod',gdb.COMMAND_USER)
+
+ def invoke(self,argument,from_tty):
+ raise gdb.GdbError('not implemented')
+
+ def complete(self,text,word):
+ return gdb.COMPLETE_FILENAME
+
+class CompleteFileCommandCond(gdb.Command):
+ def __init__(self):
+ gdb.Command.__init__(self,'completefilecommandcond',gdb.COMMAND_USER)
+
+ def invoke(self,argument,from_tty):
+ raise gdb.GdbError('not implemented')
+
+ def complete(self,text,word):
+ # This is a test made to know if the command
+ # completion still works fine. When the user asks to
+ # complete something like "completefilecommandcond
+ # /path/to/py-completion-t", it should not complete to
+ # "/path/to/py-completion-test/", but instead just
+ # wait for input.
+ if "py-completion-t" in text:
+ return gdb.COMPLETE_COMMAND
+ else:
+ return gdb.COMPLETE_FILENAME
+
+CompleteFileInit()
+CompleteFileMethod()
+CompleteFileCommandCond()

View File

@ -0,0 +1,72 @@
http://sourceware.org/ml/gdb-patches/2014-07/msg00154.html
Subject: Re: [PATCH] PR python/16699: GDB Python command completion with overriden complete vs. completer class
--pWyiEgJYm5f9v55/
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Tue, 08 Jul 2014 17:32:21 +0200, Jan Kratochvil wrote:
> - -re "^completefilecommandcond ${objdir}/${subdir}/py-completion-t$" {
> + -re "^completefilecommandcond ${completion_regex}$" {
There was a racy bug here - and even in the former test - here should be:
+ -re "^completefilecommandcond ${completion_regex}\007$" {
Updated fix attached.
Jan
--pWyiEgJYm5f9v55/
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename="py-completion-race2.patch"
--- ./gdb/testsuite/gdb.python/py-completion.exp-orig 2014-07-07 21:32:17.891045058 +0200
+++ ./gdb/testsuite/gdb.python/py-completion.exp 2014-07-08 20:14:57.189791928 +0200
@@ -26,9 +26,9 @@ if { [skip_python_tests] } { continue }
gdb_test_no_output "source ${srcdir}/${subdir}/${testfile}.py"
# Create a temporary directory
-set testdir "${objdir}/${subdir}/py-completion-testdir/"
+set testdir "[standard_output_file "py-completion-testdir"]/"
set testdir_regex [string_to_regexp $testdir]
-set testdir_complete "${objdir}/${subdir}/py-completion-test"
+set testdir_complete [standard_output_file "py-completion-test"]
file mkdir $testdir
# This one should always pass.
@@ -40,8 +40,7 @@ gdb_test_multiple "" "completefileinit c
}
# Just discarding whatever we typed.
-send_gdb "\n"
-gdb_test "print" ".*"
+gdb_test " " ".*" "discard #1"
# This is the problematic one.
send_gdb "completefilemethod ${testdir_complete}\t"
@@ -55,16 +54,16 @@ gdb_test_multiple "" "completefilemethod
}
# Discarding again
-send_gdb "\n"
-gdb_test "print" ".*"
+gdb_test " " ".*" "discard #2"
# Another problematic
-send_gdb "completefilecommandcond ${objdir}/${subdir}/py-completion-t\t"
+set completion_regex "[string_to_regexp [standard_output_file "py-completion-t"]]"
+send_gdb "completefilecommandcond [standard_output_file "py-completion-t\t"]"
gdb_test_multiple "" "completefilecommandcond completion" {
-re "^completefilecommandcond ${testdir}$" {
fail "completefilecommandcond completion (completed filename instead of command)"
}
- -re "^completefilecommandcond ${objdir}/${subdir}/py-completion-t$" {
+ -re "^completefilecommandcond ${completion_regex}\007$" {
pass "completefilecommandcond completion"
}
}
--pWyiEgJYm5f9v55/--

View File

@ -1,65 +0,0 @@
http://sourceware.org/ml/gdb-patches/2014-02/msg00216.html
Subject: [patch] [python] Re: GDB crashing on gdb.python/py-linetable.exp
--7AUc2qLy4jB3hD7Z
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Fri, 07 Feb 2014 11:45:04 +0100, Phil Muldoon wrote:
> I've tried most of the morning to reproduce this on Fedora 19, with
> -lmcheck and after several thousand test runs I can't reproduce.
Due to the requirement of specific stack layout I found it is reproducible for
me on Fedora 20 x86_64 with (it sure could be reduced):
CFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic" LDFLAGS="-static-libstdc++ -static-libgcc -Wl,-z,relro" ./configure --with-system-readline;make
(ulimit -c unlimited;/usr/bin/runtest gdb.python/py-linetable.exp)
The fix is obvious, I will check it in.
- int py_line;
+ gdb_py_longest py_line;
[...]
Regards,
Jan
--7AUc2qLy4jB3hD7Z
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename=1
gdb/
2014-02-07 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix Python stack corruption.
* python/py-linetable.c (ltpy_get_pcs_for_line, ltpy_has_line): Use
gdb_py_longest.
diff --git a/gdb/python/py-linetable.c b/gdb/python/py-linetable.c
index e83d46d..8b5362b 100644
--- a/gdb/python/py-linetable.c
+++ b/gdb/python/py-linetable.c
@@ -168,7 +168,7 @@ static PyObject *
ltpy_get_pcs_for_line (PyObject *self, PyObject *args)
{
struct symtab *symtab;
- int py_line;
+ gdb_py_longest py_line;
struct linetable_entry *best_entry = NULL;
linetable_entry_object *result;
VEC (CORE_ADDR) *pcs = NULL;
@@ -200,7 +200,7 @@ static PyObject *
ltpy_has_line (PyObject *self, PyObject *args)
{
struct symtab *symtab;
- int py_line;
+ gdb_py_longest py_line;
int index;
LTPY_REQUIRE_VALID (self, symtab);
--7AUc2qLy4jB3hD7Z--

90
gdb-readline-6.3.5.patch Normal file
View File

@ -0,0 +1,90 @@
http://sourceware.org/ml/gdb-patches/2014-06/msg00737.html
Subject: [patch] Fix --with-system-readline with readline-6.3 patch 5
--BXVAT5kNtrzKuDFl
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Hi,
I have filed now:
--with-system-readline uses bundled readline include files
https://sourceware.org/bugzilla/show_bug.cgi?id=17077
To see any effect of the patch below you have to do:
rm -rf readline
Otherwise readline include files get used the bundled ones from GDB which are
currently 6.2 while system readline may be 6.3 already.
You also have to use system readline-6.3 including its upstream patch:
[Bug-readline] Readline-6.3 Official Patch 5
http://lists.gnu.org/archive/html/bug-readline/2014-04/msg00018.html
Message-ID: <140415125618.AA57598.SM@caleb.ins.cwru.edu>
In short it happens on Fedora Rawhide since:
readline-6.3-1.fc21
https://koji.fedoraproject.org/koji/buildinfo?buildID=538941
The error is:
https://kojipkgs.fedoraproject.org//work/tasks/9890/7059890/build.log
../../gdb/tui/tui-io.c:132:1: error: 'Function' is deprecated [-Werror=deprecated-declarations]
static Function *tui_old_rl_getc_function;
^
../../gdb/tui/tui-io.c:133:1: error: 'VFunction' is deprecated [-Werror=deprecated-declarations]
static VFunction *tui_old_rl_redisplay_function;
^
../../gdb/tui/tui-io.c:134:1: error: 'VFunction' is deprecated [-Werror=deprecated-declarations]
static VFunction *tui_old_rl_prep_terminal;
^
../../gdb/tui/tui-io.c:135:1: error: 'VFunction' is deprecated [-Werror=deprecated-declarations]
static VFunction *tui_old_rl_deprep_terminal;
^
It is since bash change:
lib/readline/rltypedefs.h
- remove old Function/VFunction/CPFunction/CPPFunction typedefs as
suggested by Tom Tromey <tromey@redhat.com>
The new typedefs used below are present in readline/rltypedefs.h since:
git://git.savannah.gnu.org/bash.git
commit 28ef6c316f1aff914bb95ac09787a3c83c1815fd
Date: Fri Apr 6 19:14:31 2001 +0000
Jan
--BXVAT5kNtrzKuDFl
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename="tuireadline.patch"
gdb/
2014-06-20 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix --with-system-readline with readline-6.3 patch 5.
* tui/tui-io.c (tui_old_rl_getc_function, tui_old_rl_redisplay_function)
(tui_old_rl_prep_terminal, tui_old_rl_deprep_terminal): Use rl_*_t
types.
diff --git a/gdb/tui/tui-io.c b/gdb/tui/tui-io.c
index 761d203..dcccb08 100644
--- a/gdb/tui/tui-io.c
+++ b/gdb/tui/tui-io.c
@@ -129,10 +129,10 @@ static struct ui_file *tui_old_stderr;
struct ui_out *tui_old_uiout;
/* Readline previous hooks. */
-static Function *tui_old_rl_getc_function;
-static VFunction *tui_old_rl_redisplay_function;
-static VFunction *tui_old_rl_prep_terminal;
-static VFunction *tui_old_rl_deprep_terminal;
+static rl_getc_func_t *tui_old_rl_getc_function;
+static rl_voidfunc_t *tui_old_rl_redisplay_function;
+static rl_vintfunc_t *tui_old_rl_prep_terminal;
+static rl_voidfunc_t *tui_old_rl_deprep_terminal;
static int tui_old_rl_echoing_p;
/* Readline output stream.
--BXVAT5kNtrzKuDFl--

File diff suppressed because it is too large Load Diff

View File

@ -52,10 +52,10 @@ Content-Type: text/x-patch
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=bitpos-ensure-size_t.patch Content-Disposition: attachment; filename=bitpos-ensure-size_t.patch
Index: gdb-7.6.90.20140127/gdb/alpha-tdep.c Index: gdb-7.7.90.20140613/gdb/alpha-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/alpha-tdep.c 2014-02-06 18:18:51.005616676 +0100 --- gdb-7.7.90.20140613.orig/gdb/alpha-tdep.c 2014-06-13 22:14:49.725846383 +0200
+++ gdb-7.6.90.20140127/gdb/alpha-tdep.c 2014-02-06 18:18:53.671621349 +0100 +++ gdb-7.7.90.20140613/gdb/alpha-tdep.c 2014-06-13 22:14:53.163850081 +0200
@@ -414,6 +414,13 @@ alpha_push_dummy_call (struct gdbarch *g @@ -414,6 +414,13 @@ alpha_push_dummy_call (struct gdbarch *g
accumulate_size = 0; accumulate_size = 0;
else else
@ -70,11 +70,11 @@ Index: gdb-7.6.90.20140127/gdb/alpha-tdep.c
sp -= accumulate_size; sp -= accumulate_size;
/* Keep sp aligned to a multiple of 16 as the ABI requires. */ /* Keep sp aligned to a multiple of 16 as the ABI requires. */
Index: gdb-7.6.90.20140127/gdb/cp-valprint.c Index: gdb-7.7.90.20140613/gdb/cp-valprint.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/cp-valprint.c 2014-02-06 18:18:51.006616677 +0100 --- gdb-7.7.90.20140613.orig/gdb/cp-valprint.c 2014-06-13 22:14:49.725846383 +0200
+++ gdb-7.6.90.20140127/gdb/cp-valprint.c 2014-02-06 18:18:53.671621349 +0100 +++ gdb-7.7.90.20140613/gdb/cp-valprint.c 2014-06-13 22:14:53.164850081 +0200
@@ -537,6 +537,8 @@ cp_print_value (struct type *type, struc @@ -538,6 +538,8 @@ cp_print_value (struct type *type, struc
gdb_byte *buf; gdb_byte *buf;
struct cleanup *back_to; struct cleanup *back_to;
@ -83,11 +83,11 @@ Index: gdb-7.6.90.20140127/gdb/cp-valprint.c
buf = xmalloc (TYPE_LENGTH (baseclass)); buf = xmalloc (TYPE_LENGTH (baseclass));
back_to = make_cleanup (xfree, buf); back_to = make_cleanup (xfree, buf);
Index: gdb-7.6.90.20140127/gdb/dwarf2loc.c Index: gdb-7.7.90.20140613/gdb/dwarf2loc.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/dwarf2loc.c 2014-02-06 18:18:51.007616678 +0100 --- gdb-7.7.90.20140613.orig/gdb/dwarf2loc.c 2014-06-13 22:14:49.726846384 +0200
+++ gdb-7.6.90.20140127/gdb/dwarf2loc.c 2014-02-06 18:18:53.672621293 +0100 +++ gdb-7.7.90.20140613/gdb/dwarf2loc.c 2014-06-13 22:14:53.166850084 +0200
@@ -1821,6 +1821,8 @@ read_pieced_value (struct value *v) @@ -1666,6 +1666,8 @@ read_pieced_value (struct value *v)
this_size = (this_size_bits + source_offset_bits % 8 + 7) / 8; this_size = (this_size_bits + source_offset_bits % 8 + 7) / 8;
source_offset = source_offset_bits / 8; source_offset = source_offset_bits / 8;
@ -96,7 +96,7 @@ Index: gdb-7.6.90.20140127/gdb/dwarf2loc.c
if (buffer_size < this_size) if (buffer_size < this_size)
{ {
buffer_size = this_size; buffer_size = this_size;
@@ -2012,6 +2014,7 @@ write_pieced_value (struct value *to, st @@ -1857,6 +1859,7 @@ write_pieced_value (struct value *to, st
} }
else else
{ {
@ -104,10 +104,10 @@ Index: gdb-7.6.90.20140127/gdb/dwarf2loc.c
if (buffer_size < this_size) if (buffer_size < this_size)
{ {
buffer_size = this_size; buffer_size = this_size;
Index: gdb-7.6.90.20140127/gdb/findcmd.c Index: gdb-7.7.90.20140613/gdb/findcmd.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/findcmd.c 2014-02-06 18:18:51.008616679 +0100 --- gdb-7.7.90.20140613.orig/gdb/findcmd.c 2014-06-13 22:14:49.726846384 +0200
+++ gdb-7.6.90.20140127/gdb/findcmd.c 2014-02-06 18:18:53.673621239 +0100 +++ gdb-7.7.90.20140613/gdb/findcmd.c 2014-06-13 22:14:53.166850084 +0200
@@ -185,6 +185,7 @@ parse_find_args (char *args, ULONGEST *m @@ -185,6 +185,7 @@ parse_find_args (char *args, ULONGEST *m
size_t current_offset = pattern_buf_end - pattern_buf; size_t current_offset = pattern_buf_end - pattern_buf;
@ -116,11 +116,11 @@ Index: gdb-7.6.90.20140127/gdb/findcmd.c
pattern_buf = xrealloc (pattern_buf, pattern_buf_size); pattern_buf = xrealloc (pattern_buf, pattern_buf_size);
pattern_buf_end = pattern_buf + current_offset; pattern_buf_end = pattern_buf + current_offset;
} }
Index: gdb-7.6.90.20140127/gdb/p-valprint.c Index: gdb-7.7.90.20140613/gdb/p-valprint.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/p-valprint.c 2014-02-06 18:18:51.008616679 +0100 --- gdb-7.7.90.20140613.orig/gdb/p-valprint.c 2014-06-13 22:14:49.728846387 +0200
+++ gdb-7.6.90.20140127/gdb/p-valprint.c 2014-02-06 18:18:53.673621239 +0100 +++ gdb-7.7.90.20140613/gdb/p-valprint.c 2014-06-13 22:14:53.166850084 +0200
@@ -798,6 +798,7 @@ pascal_object_print_value (struct type * @@ -772,6 +772,7 @@ pascal_object_print_value (struct type *
gdb_byte *buf; gdb_byte *buf;
struct cleanup *back_to; struct cleanup *back_to;
@ -128,12 +128,12 @@ Index: gdb-7.6.90.20140127/gdb/p-valprint.c
buf = xmalloc (TYPE_LENGTH (baseclass)); buf = xmalloc (TYPE_LENGTH (baseclass));
back_to = make_cleanup (xfree, buf); back_to = make_cleanup (xfree, buf);
Index: gdb-7.6.90.20140127/gdb/utils.c Index: gdb-7.7.90.20140613/gdb/utils.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/utils.c 2014-02-06 18:18:51.008616679 +0100 --- gdb-7.7.90.20140613.orig/gdb/utils.c 2014-06-13 22:14:53.166850084 +0200
+++ gdb-7.6.90.20140127/gdb/utils.c 2014-02-06 18:18:53.674621186 +0100 +++ gdb-7.7.90.20140613/gdb/utils.c 2014-06-13 22:15:16.839875341 +0200
@@ -3169,6 +3169,18 @@ host_address_to_string (const void *addr @@ -2838,6 +2838,18 @@ string_to_core_addr (const char *my_stri
return str; return addr;
} }
+/* Ensure that the input NUM is not larger than the maximum capacity of the +/* Ensure that the input NUM is not larger than the maximum capacity of the
@ -151,11 +151,11 @@ Index: gdb-7.6.90.20140127/gdb/utils.c
char * char *
gdb_realpath (const char *filename) gdb_realpath (const char *filename)
{ {
Index: gdb-7.6.90.20140127/gdb/valops.c Index: gdb-7.7.90.20140613/gdb/valops.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/valops.c 2014-02-06 18:18:51.009616680 +0100 --- gdb-7.7.90.20140613.orig/gdb/valops.c 2014-06-13 22:14:49.730846389 +0200
+++ gdb-7.6.90.20140127/gdb/valops.c 2014-02-06 18:18:53.675621135 +0100 +++ gdb-7.7.90.20140613/gdb/valops.c 2014-06-13 22:14:53.169850088 +0200
@@ -2184,6 +2184,7 @@ search_struct_method (const char *name, @@ -2074,6 +2074,7 @@ search_struct_method (const char *name,
struct cleanup *back_to; struct cleanup *back_to;
CORE_ADDR address; CORE_ADDR address;
@ -163,11 +163,11 @@ Index: gdb-7.6.90.20140127/gdb/valops.c
tmp = xmalloc (TYPE_LENGTH (baseclass)); tmp = xmalloc (TYPE_LENGTH (baseclass));
back_to = make_cleanup (xfree, tmp); back_to = make_cleanup (xfree, tmp);
address = value_address (*arg1p); address = value_address (*arg1p);
Index: gdb-7.6.90.20140127/gdb/value.c Index: gdb-7.7.90.20140613/gdb/value.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/value.c 2014-02-06 18:18:51.010616681 +0100 --- gdb-7.7.90.20140613.orig/gdb/value.c 2014-06-13 22:14:49.732846391 +0200
+++ gdb-7.6.90.20140127/gdb/value.c 2014-02-06 18:19:10.261637398 +0100 +++ gdb-7.7.90.20140613/gdb/value.c 2014-06-13 22:14:53.169850088 +0200
@@ -822,6 +822,7 @@ allocate_value_lazy (struct type *type) @@ -824,6 +824,7 @@ allocate_value_lazy (struct type *type)
description correctly. */ description correctly. */
check_typedef (type); check_typedef (type);
@ -175,7 +175,7 @@ Index: gdb-7.6.90.20140127/gdb/value.c
val = (struct value *) xzalloc (sizeof (struct value)); val = (struct value *) xzalloc (sizeof (struct value));
val->contents = NULL; val->contents = NULL;
val->next = all_values; val->next = all_values;
@@ -853,6 +854,8 @@ allocate_value_lazy (struct type *type) @@ -855,6 +856,8 @@ allocate_value_lazy (struct type *type)
static void static void
allocate_value_contents (struct value *val) allocate_value_contents (struct value *val)
{ {
@ -184,7 +184,7 @@ Index: gdb-7.6.90.20140127/gdb/value.c
if (!val->contents) if (!val->contents)
val->contents = (gdb_byte *) xzalloc (TYPE_LENGTH (val->enclosing_type)); val->contents = (gdb_byte *) xzalloc (TYPE_LENGTH (val->enclosing_type));
} }
@@ -2854,8 +2857,12 @@ void @@ -2831,8 +2834,12 @@ void
set_value_enclosing_type (struct value *val, struct type *new_encl_type) set_value_enclosing_type (struct value *val, struct type *new_encl_type)
{ {
if (TYPE_LENGTH (new_encl_type) > TYPE_LENGTH (value_enclosing_type (val))) if (TYPE_LENGTH (new_encl_type) > TYPE_LENGTH (value_enclosing_type (val)))
@ -199,10 +199,10 @@ Index: gdb-7.6.90.20140127/gdb/value.c
val->enclosing_type = new_encl_type; val->enclosing_type = new_encl_type;
} }
Index: gdb-7.6.90.20140127/gdb/vax-tdep.c Index: gdb-7.7.90.20140613/gdb/vax-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/vax-tdep.c 2014-02-06 18:18:51.370617068 +0100 --- gdb-7.7.90.20140613.orig/gdb/vax-tdep.c 2014-06-13 22:14:49.732846391 +0200
+++ gdb-7.6.90.20140127/gdb/vax-tdep.c 2014-02-06 18:18:53.676621086 +0100 +++ gdb-7.7.90.20140613/gdb/vax-tdep.c 2014-06-13 22:14:53.169850088 +0200
@@ -223,6 +223,7 @@ vax_return_value (struct gdbarch *gdbarc @@ -223,6 +223,7 @@ vax_return_value (struct gdbarch *gdbarc
ULONGEST addr; ULONGEST addr;
@ -211,11 +211,11 @@ Index: gdb-7.6.90.20140127/gdb/vax-tdep.c
read_memory (addr, readbuf, len); read_memory (addr, readbuf, len);
} }
Index: gdb-7.6.90.20140127/gdb/defs.h Index: gdb-7.7.90.20140613/gdb/defs.h
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/defs.h 2014-02-06 18:18:51.370617068 +0100 --- gdb-7.7.90.20140613.orig/gdb/defs.h 2014-06-13 22:14:49.732846391 +0200
+++ gdb-7.6.90.20140127/gdb/defs.h 2014-02-06 18:18:53.677621038 +0100 +++ gdb-7.7.90.20140613/gdb/defs.h 2014-06-13 22:14:53.169850088 +0200
@@ -768,4 +768,6 @@ enum block_enum @@ -756,4 +756,6 @@ enum block_enum
#include "utils.h" #include "utils.h"

View File

@ -96,29 +96,11 @@ Content-Type: text/x-patch
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=bitpos-wp.patch Content-Disposition: attachment; filename=bitpos-wp.patch
Index: gdb-7.6.50.20130731-cvs/gdb/arm-linux-nat.c Index: gdb-7.8/gdb/arm-linux-nat.c
=================================================================== ===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/arm-linux-nat.c 2013-08-02 16:42:29.565632895 +0200 --- gdb-7.8.orig/gdb/arm-linux-nat.c 2014-08-01 23:27:30.183773676 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/arm-linux-nat.c 2013-08-02 16:42:34.094639104 +0200 +++ gdb-7.8/gdb/arm-linux-nat.c 2014-08-01 23:27:30.241773754 +0200
@@ -1105,7 +1105,7 @@ arm_linux_region_ok_for_hw_watchpoint (C @@ -1296,7 +1296,7 @@ arm_linux_stopped_by_watchpoint (struct
/* Insert a Hardware breakpoint. */
static int
-arm_linux_insert_watchpoint (CORE_ADDR addr, int len, int rw,
+arm_linux_insert_watchpoint (CORE_ADDR addr, LONGEST len, int rw,
struct expression *cond)
{
struct lwp_info *lp;
@@ -1123,7 +1123,7 @@ arm_linux_insert_watchpoint (CORE_ADDR a
/* Remove a hardware breakpoint. */
static int
-arm_linux_remove_watchpoint (CORE_ADDR addr, int len, int rw,
+arm_linux_remove_watchpoint (CORE_ADDR addr, LONGEST len, int rw,
struct expression *cond)
{
struct lwp_info *lp;
@@ -1180,7 +1180,7 @@ arm_linux_stopped_by_watchpoint (void)
static int static int
arm_linux_watchpoint_addr_within_range (struct target_ops *target, arm_linux_watchpoint_addr_within_range (struct target_ops *target,
CORE_ADDR addr, CORE_ADDR addr,
@ -127,151 +109,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/arm-linux-nat.c
{ {
return start <= addr && start + length - 1 >= addr; return start <= addr && start + length - 1 >= addr;
} }
Index: gdb-7.6.50.20130731-cvs/gdb/i386-nat.c Index: gdb-7.8/gdb/ppc-linux-nat.c
=================================================================== ===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/i386-nat.c 2013-08-02 16:42:29.566632896 +0200 --- gdb-7.8.orig/gdb/ppc-linux-nat.c 2014-08-01 23:27:30.202773701 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/i386-nat.c 2013-08-02 16:42:34.095639105 +0200 +++ gdb-7.8/gdb/ppc-linux-nat.c 2014-08-01 23:29:38.311944925 +0200
@@ -589,7 +589,7 @@ i386_update_inferior_debug_regs (struct @@ -1862,11 +1862,11 @@ can_use_watchpoint_cond_accel (void)
of the type TYPE. Return 0 on success, -1 on failure. */
static int
-i386_insert_watchpoint (CORE_ADDR addr, int len, int type,
+i386_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
struct i386_debug_reg_state *state
@@ -627,7 +627,7 @@ i386_insert_watchpoint (CORE_ADDR addr,
address ADDR, whose length is LEN bytes, and for accesses of the
type TYPE. Return 0 on success, -1 on failure. */
static int
-i386_remove_watchpoint (CORE_ADDR addr, int len, int type,
+i386_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
struct i386_debug_reg_state *state
Index: gdb-7.6.50.20130731-cvs/gdb/ia64-linux-nat.c
===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/ia64-linux-nat.c 2013-08-02 16:42:29.566632896 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/ia64-linux-nat.c 2013-08-02 16:42:34.095639105 +0200
@@ -542,7 +542,7 @@ is_power_of_2 (int val)
}
static int
-ia64_linux_insert_watchpoint (CORE_ADDR addr, int len, int rw,
+ia64_linux_insert_watchpoint (CORE_ADDR addr, LONGEST len, int rw,
struct expression *cond)
{
struct lwp_info *lp;
@@ -596,7 +596,7 @@ ia64_linux_insert_watchpoint (CORE_ADDR
}
static int
-ia64_linux_remove_watchpoint (CORE_ADDR addr, int len, int type,
+ia64_linux_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
int idx;
Index: gdb-7.6.50.20130731-cvs/gdb/inf-ttrace.c
===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/inf-ttrace.c 2013-08-02 16:42:29.567632898 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/inf-ttrace.c 2013-08-02 16:42:34.095639105 +0200
@@ -314,14 +314,14 @@ inf_ttrace_disable_page_protections (pid
type TYPE. */
static int
-inf_ttrace_insert_watchpoint (CORE_ADDR addr, int len, int type,
+inf_ttrace_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
const int pagesize = inf_ttrace_page_dict.pagesize;
pid_t pid = ptid_get_pid (inferior_ptid);
CORE_ADDR page_addr;
- int num_pages;
- int page;
+ LONGEST num_pages;
+ LONGEST page;
gdb_assert (type == hw_write);
@@ -338,14 +338,14 @@ inf_ttrace_insert_watchpoint (CORE_ADDR
type TYPE. */
static int
-inf_ttrace_remove_watchpoint (CORE_ADDR addr, int len, int type,
+inf_ttrace_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
const int pagesize = inf_ttrace_page_dict.pagesize;
pid_t pid = ptid_get_pid (inferior_ptid);
CORE_ADDR page_addr;
- int num_pages;
- int page;
+ LONGEST num_pages;
+ LONGEST page;
gdb_assert (type == hw_write);
Index: gdb-7.6.50.20130731-cvs/gdb/mips-linux-nat.c
===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/mips-linux-nat.c 2013-08-02 16:42:29.568632899 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/mips-linux-nat.c 2013-08-02 16:42:34.096639106 +0200
@@ -644,7 +644,7 @@ mips_linux_new_thread (struct lwp_info *
watch. Return zero on success. */
static int
-mips_linux_insert_watchpoint (CORE_ADDR addr, int len, int type,
+mips_linux_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
struct pt_watch_regs regs;
@@ -697,7 +697,7 @@ mips_linux_insert_watchpoint (CORE_ADDR
Return zero on success. */
static int
-mips_linux_remove_watchpoint (CORE_ADDR addr, int len, int type,
+mips_linux_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
int retval;
Index: gdb-7.6.50.20130731-cvs/gdb/nto-procfs.c
===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/nto-procfs.c 2013-08-02 16:42:29.568632899 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/nto-procfs.c 2013-08-02 16:42:34.096639106 +0200
@@ -69,10 +69,10 @@ static ptid_t do_attach (ptid_t ptid);
static int procfs_can_use_hw_breakpoint (int, int, int);
-static int procfs_insert_hw_watchpoint (CORE_ADDR addr, int len, int type,
+static int procfs_insert_hw_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond);
-static int procfs_remove_hw_watchpoint (CORE_ADDR addr, int len, int type,
+static int procfs_remove_hw_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond);
static int procfs_stopped_by_watchpoint (void);
@@ -1493,14 +1493,14 @@ procfs_can_use_hw_breakpoint (int type,
}
static int
-procfs_remove_hw_watchpoint (CORE_ADDR addr, int len, int type,
+procfs_remove_hw_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
return procfs_hw_watchpoint (addr, -1, type);
}
static int
-procfs_insert_hw_watchpoint (CORE_ADDR addr, int len, int type,
+procfs_insert_hw_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
return procfs_hw_watchpoint (addr, len, type);
Index: gdb-7.6.50.20130731-cvs/gdb/ppc-linux-nat.c
===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/ppc-linux-nat.c 2013-08-02 16:42:29.570632902 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/ppc-linux-nat.c 2013-08-02 16:42:34.097639108 +0200
@@ -1853,11 +1853,11 @@ can_use_watchpoint_cond_accel (void)
CONDITION_VALUE will hold the value which should be put in the CONDITION_VALUE will hold the value which should be put in the
DVC register. */ DVC register. */
static void static void
@ -286,7 +128,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/ppc-linux-nat.c
CORE_ADDR addr_end_data, addr_end_dvc; CORE_ADDR addr_end_data, addr_end_dvc;
/* The DVC register compares bytes within fixed-length windows which /* The DVC register compares bytes within fixed-length windows which
@@ -1944,7 +1944,7 @@ num_memory_accesses (struct value *v) @@ -1953,7 +1953,7 @@ num_memory_accesses (struct value *v)
of the constant. */ of the constant. */
static int static int
check_condition (CORE_ADDR watch_addr, struct expression *cond, check_condition (CORE_ADDR watch_addr, struct expression *cond,
@ -295,16 +137,16 @@ Index: gdb-7.6.50.20130731-cvs/gdb/ppc-linux-nat.c
{ {
int pc = 1, num_accesses_left, num_accesses_right; int pc = 1, num_accesses_left, num_accesses_right;
struct value *left_val, *right_val, *left_chain, *right_chain; struct value *left_val, *right_val, *left_chain, *right_chain;
@@ -2011,7 +2011,7 @@ check_condition (CORE_ADDR watch_addr, s @@ -2021,7 +2021,7 @@ check_condition (CORE_ADDR watch_addr, s
the condition expression, thus only triggering the watchpoint when it is
true. */ true. */
static int static int
-ppc_linux_can_accel_watchpoint_condition (CORE_ADDR addr, int len, int rw, ppc_linux_can_accel_watchpoint_condition (struct target_ops *self,
+ppc_linux_can_accel_watchpoint_condition (CORE_ADDR addr, LONGEST len, int rw, - CORE_ADDR addr, int len, int rw,
+ CORE_ADDR addr, LONGEST len, int rw,
struct expression *cond) struct expression *cond)
{ {
CORE_ADDR data_value; CORE_ADDR data_value;
@@ -2028,7 +2028,7 @@ ppc_linux_can_accel_watchpoint_condition @@ -2038,7 +2038,7 @@ ppc_linux_can_accel_watchpoint_condition
static void static void
create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr, create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr,
@ -313,25 +155,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/ppc-linux-nat.c
int insert) int insert)
{ {
if (len == 1 if (len == 1
@@ -2073,7 +2073,7 @@ create_watchpoint_request (struct ppc_hw @@ -2304,7 +2304,7 @@ ppc_linux_stopped_by_watchpoint (struct
}
static int
-ppc_linux_insert_watchpoint (CORE_ADDR addr, int len, int rw,
+ppc_linux_insert_watchpoint (CORE_ADDR addr, LONGEST len, int rw,
struct expression *cond)
{
struct lwp_info *lp;
@@ -2141,7 +2141,7 @@ ppc_linux_insert_watchpoint (CORE_ADDR a
}
static int
-ppc_linux_remove_watchpoint (CORE_ADDR addr, int len, int rw,
+ppc_linux_remove_watchpoint (CORE_ADDR addr, LONGEST len, int rw,
struct expression *cond)
{
struct lwp_info *lp;
@@ -2292,7 +2292,7 @@ ppc_linux_stopped_by_watchpoint (void)
static int static int
ppc_linux_watchpoint_addr_within_range (struct target_ops *target, ppc_linux_watchpoint_addr_within_range (struct target_ops *target,
CORE_ADDR addr, CORE_ADDR addr,
@ -340,11 +164,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/ppc-linux-nat.c
{ {
int mask; int mask;
Index: gdb-7.6.50.20130731-cvs/gdb/procfs.c Index: gdb-7.8/gdb/procfs.c
=================================================================== ===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/procfs.c 2013-08-02 16:42:29.572632904 +0200 --- gdb-7.8.orig/gdb/procfs.c 2014-08-01 23:27:30.203773703 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/procfs.c 2013-08-02 16:42:34.098639109 +0200 +++ gdb-7.8/gdb/procfs.c 2014-08-01 23:27:30.243773756 +0200
@@ -2433,7 +2433,7 @@ procfs_address_to_host_pointer (CORE_ADD @@ -2429,7 +2429,7 @@ procfs_address_to_host_pointer (CORE_ADD
#endif #endif
static int static int
@ -353,7 +177,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/procfs.c
{ {
#if !defined (PCWATCH) && !defined (PIOCSWATCH) #if !defined (PCWATCH) && !defined (PIOCSWATCH)
/* If neither or these is defined, we can't support watchpoints. /* If neither or these is defined, we can't support watchpoints.
@@ -4777,7 +4777,7 @@ procfs_pid_to_str (struct target_ops *op @@ -4762,7 +4762,7 @@ procfs_pid_to_str (struct target_ops *op
/* Insert a watchpoint. */ /* Insert a watchpoint. */
static int static int
@ -362,102 +186,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/procfs.c
int after) int after)
{ {
#ifndef AIX5 #ifndef AIX5
@@ -4897,7 +4897,7 @@ procfs_stopped_data_address (struct targ Index: gdb-7.8/gdb/remote.c
}
static int
-procfs_insert_watchpoint (CORE_ADDR addr, int len, int type,
+procfs_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
if (!target_have_steppable_watchpoint
@@ -4919,7 +4919,7 @@ procfs_insert_watchpoint (CORE_ADDR addr
}
static int
-procfs_remove_watchpoint (CORE_ADDR addr, int len, int type,
+procfs_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
return procfs_set_watchpoint (inferior_ptid, addr, 0, 0, 0);
Index: gdb-7.6.50.20130731-cvs/gdb/remote-m32r-sdi.c
=================================================================== ===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/remote-m32r-sdi.c 2013-08-02 16:42:29.573632906 +0200 --- gdb-7.8.orig/gdb/remote.c 2014-08-01 23:27:30.205773705 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/remote-m32r-sdi.c 2013-08-02 16:42:34.099639111 +0200 +++ gdb-7.8/gdb/remote.c 2014-08-01 23:27:30.246773760 +0200
@@ -1416,14 +1416,15 @@ m32r_can_use_hw_watchpoint (int type, in @@ -8206,7 +8206,7 @@ remote_insert_watchpoint (struct target_
watchpoint. */
static int
-m32r_insert_watchpoint (CORE_ADDR addr, int len, int type,
+m32r_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
int i;
if (remote_debug)
- fprintf_unfiltered (gdb_stdlog, "m32r_insert_watchpoint(%s,%d,%d)\n",
- paddress (target_gdbarch (), addr), len, type);
+ fprintf_unfiltered (gdb_stdlog, "m32r_insert_watchpoint(%s,%s,%d)\n",
+ paddress (target_gdbarch (), addr), plongest (len),
+ type);
for (i = 0; i < MAX_ACCESS_BREAKS; i++)
{
@@ -1441,14 +1442,15 @@ m32r_insert_watchpoint (CORE_ADDR addr,
}
static int
-m32r_remove_watchpoint (CORE_ADDR addr, int len, int type,
+m32r_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
int i;
if (remote_debug)
- fprintf_unfiltered (gdb_stdlog, "m32r_remove_watchpoint(%s,%d,%d)\n",
- paddress (target_gdbarch (), addr), len, type);
+ fprintf_unfiltered (gdb_stdlog, "m32r_remove_watchpoint(%s,%s,%d)\n",
+ paddress (target_gdbarch (), addr), plongest (len),
+ type);
for (i = 0; i < MAX_ACCESS_BREAKS; i++)
{
Index: gdb-7.6.50.20130731-cvs/gdb/remote-mips.c
===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/remote-mips.c 2013-08-02 16:42:29.574632907 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/remote-mips.c 2013-08-02 16:42:34.100639112 +0200
@@ -2426,7 +2426,7 @@ calculate_mask (CORE_ADDR addr, int len)
watchpoint. */
static int
-mips_insert_watchpoint (CORE_ADDR addr, int len, int type,
+mips_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
if (mips_set_breakpoint (addr, len, type))
@@ -2438,7 +2438,7 @@ mips_insert_watchpoint (CORE_ADDR addr,
/* Remove a watchpoint. */
static int
-mips_remove_watchpoint (CORE_ADDR addr, int len, int type,
+mips_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
if (mips_clear_breakpoint (addr, len, type))
Index: gdb-7.6.50.20130731-cvs/gdb/remote.c
===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/remote.c 2013-08-02 16:42:29.577632911 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/remote.c 2013-08-02 16:42:34.103639116 +0200
@@ -8277,7 +8277,7 @@ watchpoint_to_Z_packet (int type)
}
static int
-remote_insert_watchpoint (CORE_ADDR addr, int len, int type,
+remote_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
struct remote_state *rs = get_remote_state ();
@@ -8297,7 +8297,7 @@ remote_insert_watchpoint (CORE_ADDR addr
p = strchr (rs->buf, '\0'); p = strchr (rs->buf, '\0');
addr = remote_address_masked (addr); addr = remote_address_masked (addr);
p += hexnumstr (p, (ULONGEST) addr); p += hexnumstr (p, (ULONGEST) addr);
@ -466,7 +199,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/remote.c
putpkt (rs->buf); putpkt (rs->buf);
getpkt (&rs->buf, &rs->buf_size, 0); getpkt (&rs->buf, &rs->buf_size, 0);
@@ -8317,7 +8317,7 @@ remote_insert_watchpoint (CORE_ADDR addr @@ -8226,7 +8226,7 @@ remote_insert_watchpoint (struct target_
static int static int
remote_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr, remote_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr,
@ -475,16 +208,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/remote.c
{ {
CORE_ADDR diff = remote_address_masked (addr - start); CORE_ADDR diff = remote_address_masked (addr - start);
@@ -8326,7 +8326,7 @@ remote_watchpoint_addr_within_range (str @@ -8256,7 +8256,7 @@ remote_remove_watchpoint (struct target_
static int
-remote_remove_watchpoint (CORE_ADDR addr, int len, int type,
+remote_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
struct remote_state *rs = get_remote_state ();
@@ -8346,7 +8346,7 @@ remote_remove_watchpoint (CORE_ADDR addr
p = strchr (rs->buf, '\0'); p = strchr (rs->buf, '\0');
addr = remote_address_masked (addr); addr = remote_address_masked (addr);
p += hexnumstr (p, (ULONGEST) addr); p += hexnumstr (p, (ULONGEST) addr);
@ -493,92 +217,36 @@ Index: gdb-7.6.50.20130731-cvs/gdb/remote.c
putpkt (rs->buf); putpkt (rs->buf);
getpkt (&rs->buf, &rs->buf_size, 0); getpkt (&rs->buf, &rs->buf_size, 0);
Index: gdb-7.6.50.20130731-cvs/gdb/s390-linux-nat.c Index: gdb-7.8/gdb/target.c
=================================================================== ===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/s390-linux-nat.c 2013-08-02 16:42:29.578632913 +0200 --- gdb-7.8.orig/gdb/target.c 2014-08-01 23:27:30.206773707 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/s390-linux-nat.c 2013-08-02 16:42:34.103639116 +0200 +++ gdb-7.8/gdb/target.c 2014-08-01 23:29:38.314944857 +0200
@@ -516,7 +516,7 @@ s390_fix_watch_points (struct lwp_info * @@ -52,7 +52,7 @@ static void target_info (char *, int);
} static void default_terminal_info (struct target_ops *, const char *, int);
static int
-s390_insert_watchpoint (CORE_ADDR addr, int len, int type,
+s390_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
struct lwp_info *lp;
@@ -537,7 +537,7 @@ s390_insert_watchpoint (CORE_ADDR addr,
}
static int
-s390_remove_watchpoint (CORE_ADDR addr, int len, int type,
+s390_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
struct lwp_info *lp;
Index: gdb-7.6.50.20130731-cvs/gdb/target.c
===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/target.c 2013-08-02 16:42:29.580632915 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/target.c 2013-08-02 16:42:52.160663787 +0200
@@ -49,7 +49,7 @@ static void target_info (char *, int);
static void default_terminal_info (const char *, int);
static int default_watchpoint_addr_within_range (struct target_ops *, static int default_watchpoint_addr_within_range (struct target_ops *,
- CORE_ADDR, CORE_ADDR, int); - CORE_ADDR, CORE_ADDR, int);
+ CORE_ADDR, CORE_ADDR, LONGEST); + CORE_ADDR, CORE_ADDR, LONGEST);
static int default_region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST); static int default_region_ok_for_hw_watchpoint (struct target_ops *,
CORE_ADDR, LONGEST);
@@ -114,10 +114,10 @@ static int debug_to_insert_hw_breakpoint @@ -150,13 +150,13 @@ static int debug_to_remove_watchpoint (s
static int debug_to_remove_hw_breakpoint (struct gdbarch *,
struct bp_target_info *);
-static int debug_to_insert_watchpoint (CORE_ADDR, int, int,
+static int debug_to_insert_watchpoint (CORE_ADDR, LONGEST, int,
struct expression *);
-static int debug_to_remove_watchpoint (CORE_ADDR, int, int,
+static int debug_to_remove_watchpoint (CORE_ADDR, LONGEST, int,
struct expression *);
static int debug_to_stopped_by_watchpoint (void);
@@ -125,11 +125,12 @@ static int debug_to_stopped_by_watchpoin
static int debug_to_stopped_data_address (struct target_ops *, CORE_ADDR *); static int debug_to_stopped_data_address (struct target_ops *, CORE_ADDR *);
static int debug_to_watchpoint_addr_within_range (struct target_ops *, static int debug_to_watchpoint_addr_within_range (struct target_ops *,
- CORE_ADDR, CORE_ADDR, int); - CORE_ADDR, CORE_ADDR, int);
+ CORE_ADDR, CORE_ADDR, + CORE_ADDR, CORE_ADDR, LONGEST);
+ LONGEST);
static int debug_to_region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST); static int debug_to_region_ok_for_hw_watchpoint (struct target_ops *self,
CORE_ADDR, LONGEST);
-static int debug_to_can_accel_watchpoint_condition (CORE_ADDR, int, int, static int debug_to_can_accel_watchpoint_condition (struct target_ops *self,
+static int debug_to_can_accel_watchpoint_condition (CORE_ADDR, LONGEST, int, - CORE_ADDR, int, int,
+ CORE_ADDR, LONGEST, int,
struct expression *); struct expression *);
static void debug_to_terminal_init (void); static void debug_to_terminal_init (struct target_ops *self);
@@ -790,10 +791,10 @@ update_current_target (void) @@ -2960,7 +2960,7 @@ default_region_ok_for_hw_watchpoint (str
(int (*) (struct gdbarch *, struct bp_target_info *))
return_minus_one);
de_fault (to_insert_watchpoint,
- (int (*) (CORE_ADDR, int, int, struct expression *))
+ (int (*) (CORE_ADDR, LONGEST, int, struct expression *))
return_minus_one);
de_fault (to_remove_watchpoint,
- (int (*) (CORE_ADDR, int, int, struct expression *))
+ (int (*) (CORE_ADDR, LONGEST, int, struct expression *))
return_minus_one);
de_fault (to_stopped_by_watchpoint,
(int (*) (void))
@@ -806,7 +807,7 @@ update_current_target (void)
de_fault (to_region_ok_for_hw_watchpoint,
default_region_ok_for_hw_watchpoint);
de_fault (to_can_accel_watchpoint_condition,
- (int (*) (CORE_ADDR, int, int, struct expression *))
+ (int (*) (CORE_ADDR, LONGEST, int, struct expression *))
return_zero);
de_fault (to_terminal_init,
(void (*) (void))
@@ -3594,7 +3595,7 @@ default_region_ok_for_hw_watchpoint (COR
static int static int
default_watchpoint_addr_within_range (struct target_ops *target, default_watchpoint_addr_within_range (struct target_ops *target,
CORE_ADDR addr, CORE_ADDR addr,
@ -587,16 +255,16 @@ Index: gdb-7.6.50.20130731-cvs/gdb/target.c
{ {
return addr >= start && addr < start + length; return addr >= start && addr < start + length;
} }
@@ -4555,7 +4556,7 @@ debug_to_region_ok_for_hw_watchpoint (CO @@ -3681,7 +3681,7 @@ debug_to_region_ok_for_hw_watchpoint (st
}
static int static int
-debug_to_can_accel_watchpoint_condition (CORE_ADDR addr, int len, int rw, debug_to_can_accel_watchpoint_condition (struct target_ops *self,
+debug_to_can_accel_watchpoint_condition (CORE_ADDR addr, LONGEST len, int rw, - CORE_ADDR addr, int len, int rw,
+ CORE_ADDR addr, LONGEST len, int rw,
struct expression *cond) struct expression *cond)
{ {
int retval; int retval;
@@ -4565,8 +4566,8 @@ debug_to_can_accel_watchpoint_condition @@ -3692,8 +3692,8 @@ debug_to_can_accel_watchpoint_condition
fprintf_unfiltered (gdb_stdlog, fprintf_unfiltered (gdb_stdlog,
"target_can_accel_watchpoint_condition " "target_can_accel_watchpoint_condition "
@ -607,7 +275,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/target.c
host_address_to_string (cond), (unsigned long) retval); host_address_to_string (cond), (unsigned long) retval);
return retval; return retval;
} }
@@ -4601,7 +4602,7 @@ debug_to_stopped_data_address (struct ta @@ -3728,7 +3728,7 @@ debug_to_stopped_data_address (struct ta
static int static int
debug_to_watchpoint_addr_within_range (struct target_ops *target, debug_to_watchpoint_addr_within_range (struct target_ops *target,
CORE_ADDR addr, CORE_ADDR addr,
@ -616,7 +284,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/target.c
{ {
int retval; int retval;
@@ -4609,9 +4610,9 @@ debug_to_watchpoint_addr_within_range (s @@ -3736,9 +3736,9 @@ debug_to_watchpoint_addr_within_range (s
start, length); start, length);
fprintf_filtered (gdb_stdlog, fprintf_filtered (gdb_stdlog,
@ -628,72 +296,137 @@ Index: gdb-7.6.50.20130731-cvs/gdb/target.c
return retval; return retval;
} }
@@ -4646,7 +4647,7 @@ debug_to_remove_hw_breakpoint (struct gd Index: gdb-7.8/gdb/target.h
}
static int
-debug_to_insert_watchpoint (CORE_ADDR addr, int len, int type,
+debug_to_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
int retval;
@@ -4654,14 +4655,14 @@ debug_to_insert_watchpoint (CORE_ADDR ad
retval = debug_target.to_insert_watchpoint (addr, len, type, cond);
fprintf_unfiltered (gdb_stdlog,
- "target_insert_watchpoint (%s, %d, %d, %s) = %ld\n",
- core_addr_to_string (addr), len, type,
+ "target_insert_watchpoint (%s, %s, %d, %s) = %ld\n",
+ core_addr_to_string (addr), plongest (len), type,
host_address_to_string (cond), (unsigned long) retval);
return retval;
}
static int
-debug_to_remove_watchpoint (CORE_ADDR addr, int len, int type,
+debug_to_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond)
{
int retval;
@@ -4669,8 +4670,8 @@ debug_to_remove_watchpoint (CORE_ADDR ad
retval = debug_target.to_remove_watchpoint (addr, len, type, cond);
fprintf_unfiltered (gdb_stdlog,
- "target_remove_watchpoint (%s, %d, %d, %s) = %ld\n",
- core_addr_to_string (addr), len, type,
+ "target_remove_watchpoint (%s, %s, %d, %s) = %ld\n",
+ core_addr_to_string (addr), plongest (len), type,
host_address_to_string (cond), (unsigned long) retval);
return retval;
}
Index: gdb-7.6.50.20130731-cvs/gdb/target.h
=================================================================== ===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/target.h 2013-08-02 16:42:29.580632915 +0200 --- gdb-7.8.orig/gdb/target.h 2014-08-01 23:27:30.207773708 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/target.h 2013-08-02 16:42:34.105639119 +0200 +++ gdb-7.8/gdb/target.h 2014-08-01 23:29:38.315944839 +0200
@@ -373,8 +373,8 @@ struct target_ops @@ -469,7 +469,7 @@ struct target_ops
int (*to_stopped_data_address) (struct target_ops *, CORE_ADDR *)
/* Documentation of what the two routines below are expected to do is TARGET_DEFAULT_RETURN (0);
provided with the corresponding target_* macros. */
- int (*to_remove_watchpoint) (CORE_ADDR, int, int, struct expression *);
- int (*to_insert_watchpoint) (CORE_ADDR, int, int, struct expression *);
+ int (*to_remove_watchpoint) (CORE_ADDR, LONGEST, int, struct expression *);
+ int (*to_insert_watchpoint) (CORE_ADDR, LONGEST, int, struct expression *);
int (*to_insert_mask_watchpoint) (struct target_ops *,
CORE_ADDR, CORE_ADDR, int);
@@ -385,13 +385,13 @@ struct target_ops
int to_have_continuable_watchpoint;
int (*to_stopped_data_address) (struct target_ops *, CORE_ADDR *);
int (*to_watchpoint_addr_within_range) (struct target_ops *, int (*to_watchpoint_addr_within_range) (struct target_ops *,
- CORE_ADDR, CORE_ADDR, int); - CORE_ADDR, CORE_ADDR, int)
+ CORE_ADDR, CORE_ADDR, LONGEST); + CORE_ADDR, CORE_ADDR, LONGEST)
TARGET_DEFAULT_FUNC (default_watchpoint_addr_within_range);
/* Documentation of this routine is provided with the corresponding /* Documentation of this routine is provided with the corresponding
target_* macro. */ @@ -479,7 +479,7 @@ struct target_ops
int (*to_region_ok_for_hw_watchpoint) (CORE_ADDR, LONGEST); TARGET_DEFAULT_FUNC (default_region_ok_for_hw_watchpoint);
- int (*to_can_accel_watchpoint_condition) (CORE_ADDR, int, int, int (*to_can_accel_watchpoint_condition) (struct target_ops *,
+ int (*to_can_accel_watchpoint_condition) (CORE_ADDR, LONGEST, int, - CORE_ADDR, int, int,
struct expression *); + CORE_ADDR, LONGEST, int,
struct expression *)
TARGET_DEFAULT_RETURN (0);
int (*to_masked_watch_num_registers) (struct target_ops *, int (*to_masked_watch_num_registers) (struct target_ops *,
CORE_ADDR, CORE_ADDR); Index: gdb-7.8/gdb/aarch64-linux-nat.c
===================================================================
--- gdb-7.8.orig/gdb/aarch64-linux-nat.c 2014-08-01 23:27:30.212773715 +0200
+++ gdb-7.8/gdb/aarch64-linux-nat.c 2014-08-01 23:27:30.248773763 +0200
@@ -428,14 +428,14 @@ aarch64_notify_debug_reg_change (const s
static void
aarch64_show_debug_reg_state (struct aarch64_debug_reg_state *state,
const char *func, CORE_ADDR addr,
- int len, int type)
+ LONGEST len, int type)
{
int i;
fprintf_unfiltered (gdb_stdlog, "%s", func);
if (addr || len)
- fprintf_unfiltered (gdb_stdlog, " (addr=0x%08lx, len=%d, type=%s)",
- (unsigned long) addr, len,
+ fprintf_unfiltered (gdb_stdlog, " (addr=0x%08lx, len=%s, type=%s)",
+ (unsigned long) addr, plongest (len),
type == hw_write ? "hw-write-watchpoint"
: (type == hw_read ? "hw-read-watchpoint"
: (type == hw_access ? "hw-access-watchpoint"
@@ -869,9 +869,10 @@ aarch64_linux_read_description (struct t
gdbserver/linux-aarch64-low.c for more information. */
static void
-aarch64_align_watchpoint (CORE_ADDR addr, int len, CORE_ADDR *aligned_addr_p,
+aarch64_align_watchpoint (CORE_ADDR addr, LONGEST len,
+ CORE_ADDR *aligned_addr_p,
int *aligned_len_p, CORE_ADDR *next_addr_p,
- int *next_len_p)
+ LONGEST *next_len_p)
{
int aligned_len;
unsigned int offset;
@@ -1038,7 +1039,7 @@ aarch64_point_encode_ctrl_reg (int type,
Return 0 for any non-compliant ADDR and/or LEN; return 1 otherwise. */
static int
-aarch64_point_is_aligned (int is_watchpoint, CORE_ADDR addr, int len)
+aarch64_point_is_aligned (int is_watchpoint, CORE_ADDR addr, LONGEST len)
{
unsigned int alignment = is_watchpoint ? AARCH64_HWP_ALIGNMENT
: AARCH64_HBP_ALIGNMENT;
@@ -1290,7 +1291,7 @@ aarch64_handle_aligned_watchpoint (int t
Return 0 if succeed. */
static int
-aarch64_handle_unaligned_watchpoint (int type, CORE_ADDR addr, int len,
+aarch64_handle_unaligned_watchpoint (int type, CORE_ADDR addr, LONGEST len,
int is_insert)
{
struct aarch64_debug_reg_state *state
@@ -1315,8 +1316,8 @@ aarch64_handle_unaligned_watchpoint (int
fprintf_unfiltered (gdb_stdlog,
"handle_unaligned_watchpoint: is_insert: %d\n"
" aligned_addr: 0x%08lx, aligned_len: %d\n"
-" next_addr: 0x%08lx, next_len: %d\n",
- is_insert, aligned_addr, aligned_len, addr, len);
+" next_addr: 0x%08lx, next_len: %s\n",
+ is_insert, aligned_addr, aligned_len, addr, plongest (len));
if (ret != 0)
return ret;
@@ -1328,7 +1329,7 @@ aarch64_handle_unaligned_watchpoint (int
/* Implements insertion and removal of a single watchpoint. */
static int
-aarch64_handle_watchpoint (int type, CORE_ADDR addr, int len, int is_insert)
+aarch64_handle_watchpoint (int type, CORE_ADDR addr, LONGEST len, int is_insert)
{
if (aarch64_point_is_aligned (1 /* is_watchpoint */ , addr, len))
return aarch64_handle_aligned_watchpoint (type, addr, len, is_insert);
@@ -1497,7 +1498,7 @@ aarch64_linux_stopped_by_watchpoint (str
static int
aarch64_linux_watchpoint_addr_within_range (struct target_ops *target,
CORE_ADDR addr,
- CORE_ADDR start, int length)
+ CORE_ADDR start, LONGEST length)
{
return start <= addr && start + length - 1 >= addr;
}
Index: gdb-7.8/gdb/target-delegates.c
===================================================================
--- gdb-7.8.orig/gdb/target-delegates.c 2014-08-01 23:27:30.212773715 +0200
+++ gdb-7.8/gdb/target-delegates.c 2014-08-01 23:29:38.313944877 +0200
@@ -261,7 +261,7 @@ tdefault_stopped_data_address (struct ta
}
static int
-delegate_watchpoint_addr_within_range (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, int arg3)
+delegate_watchpoint_addr_within_range (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, LONGEST arg3)
{
self = self->beneath;
return self->to_watchpoint_addr_within_range (self, arg1, arg2, arg3);
@@ -275,14 +275,14 @@ delegate_region_ok_for_hw_watchpoint (st
}
static int
-delegate_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, int arg2, int arg3, struct expression *arg4)
+delegate_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, LONGEST arg2, int arg3, struct expression *arg4)
{
self = self->beneath;
return self->to_can_accel_watchpoint_condition (self, arg1, arg2, arg3, arg4);
}
static int
-tdefault_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, int arg2, int arg3, struct expression *arg4)
+tdefault_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, LONGEST arg2, int arg3, struct expression *arg4)
{
return 0;
}

View File

@ -137,10 +137,10 @@ Content-Type: text/x-patch
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=bitpos-tdep.patch Content-Disposition: attachment; filename=bitpos-tdep.patch
Index: gdb-7.6.90.20140127/gdb/alpha-tdep.c Index: gdb-7.7.1/gdb/alpha-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/alpha-tdep.c 2014-02-06 18:20:52.970747716 +0100 --- gdb-7.7.1.orig/gdb/alpha-tdep.c 2014-05-09 19:24:18.677252769 +0200
+++ gdb-7.6.90.20140127/gdb/alpha-tdep.c 2014-02-06 18:20:57.294752362 +0100 +++ gdb-7.7.1/gdb/alpha-tdep.c 2014-05-09 20:02:09.620703767 +0200
@@ -299,18 +299,18 @@ alpha_push_dummy_call (struct gdbarch *g @@ -299,18 +299,18 @@ alpha_push_dummy_call (struct gdbarch *g
{ {
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
@ -184,10 +184,10 @@ Index: gdb-7.6.90.20140127/gdb/alpha-tdep.c
memcpy (arg_reg_buffer + offset, contents, tlen); memcpy (arg_reg_buffer + offset, contents, tlen);
offset += tlen; offset += tlen;
contents += tlen; contents += tlen;
Index: gdb-7.6.90.20140127/gdb/amd64-tdep.c Index: gdb-7.7.1/gdb/amd64-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/amd64-tdep.c 2014-02-06 18:20:52.972747718 +0100 --- gdb-7.7.1.orig/gdb/amd64-tdep.c 2014-05-09 19:24:18.678252770 +0200
+++ gdb-7.6.90.20140127/gdb/amd64-tdep.c 2014-02-06 18:21:51.106810814 +0100 +++ gdb-7.7.1/gdb/amd64-tdep.c 2014-05-09 20:02:09.620703767 +0200
@@ -633,7 +633,7 @@ amd64_return_value (struct gdbarch *gdba @@ -633,7 +633,7 @@ amd64_return_value (struct gdbarch *gdba
gdb_byte *readbuf, const gdb_byte *writebuf) gdb_byte *readbuf, const gdb_byte *writebuf)
{ {
@ -217,10 +217,10 @@ Index: gdb-7.6.90.20140127/gdb/amd64-tdep.c
enum amd64_reg_class class[2]; enum amd64_reg_class class[2];
int needed_integer_regs = 0; int needed_integer_regs = 0;
int needed_sse_regs = 0; int needed_sse_regs = 0;
Index: gdb-7.6.90.20140127/gdb/amd64-windows-tdep.c Index: gdb-7.7.1/gdb/amd64-windows-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/amd64-windows-tdep.c 2014-02-06 18:20:52.973747720 +0100 --- gdb-7.7.1.orig/gdb/amd64-windows-tdep.c 2014-05-09 19:24:18.679252770 +0200
+++ gdb-7.6.90.20140127/gdb/amd64-windows-tdep.c 2014-02-06 18:20:57.296752364 +0100 +++ gdb-7.7.1/gdb/amd64-windows-tdep.c 2014-05-09 20:02:09.620703767 +0200
@@ -288,7 +288,7 @@ amd64_windows_return_value (struct gdbar @@ -288,7 +288,7 @@ amd64_windows_return_value (struct gdbar
struct type *type, struct regcache *regcache, struct type *type, struct regcache *regcache,
gdb_byte *readbuf, const gdb_byte *writebuf) gdb_byte *readbuf, const gdb_byte *writebuf)
@ -230,10 +230,10 @@ Index: gdb-7.6.90.20140127/gdb/amd64-windows-tdep.c
int regnum = -1; int regnum = -1;
/* See if our value is returned through a register. If it is, then /* See if our value is returned through a register. If it is, then
Index: gdb-7.6.90.20140127/gdb/arm-tdep.c Index: gdb-7.7.1/gdb/arm-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/arm-tdep.c 2014-02-06 18:20:52.978747725 +0100 --- gdb-7.7.1.orig/gdb/arm-tdep.c 2014-05-09 19:24:18.684252770 +0200
+++ gdb-7.6.90.20140127/gdb/arm-tdep.c 2014-02-06 18:20:57.299752367 +0100 +++ gdb-7.7.1/gdb/arm-tdep.c 2014-05-09 20:02:09.622703768 +0200
@@ -3498,7 +3498,7 @@ arm_vfp_cprc_reg_char (enum arm_vfp_cprc @@ -3498,7 +3498,7 @@ arm_vfp_cprc_reg_char (enum arm_vfp_cprc
array). Vectors and complex types are not currently supported, array). Vectors and complex types are not currently supported,
matching the generic AAPCS support. */ matching the generic AAPCS support. */
@ -308,10 +308,10 @@ Index: gdb-7.6.90.20140127/gdb/arm-tdep.c
struct type *arg_type; struct type *arg_type;
struct type *target_type; struct type *target_type;
enum type_code typecode; enum type_code typecode;
Index: gdb-7.6.90.20140127/gdb/avr-tdep.c Index: gdb-7.7.1/gdb/avr-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/avr-tdep.c 2014-02-06 18:20:52.980747727 +0100 --- gdb-7.7.1.orig/gdb/avr-tdep.c 2014-05-09 19:24:18.686252771 +0200
+++ gdb-7.6.90.20140127/gdb/avr-tdep.c 2014-02-06 18:20:57.299752367 +0100 +++ gdb-7.7.1/gdb/avr-tdep.c 2014-05-09 20:02:09.623703768 +0200
@@ -1167,13 +1167,14 @@ avr_dummy_id (struct gdbarch *gdbarch, s @@ -1167,13 +1167,14 @@ avr_dummy_id (struct gdbarch *gdbarch, s
struct stack_item struct stack_item
@ -345,10 +345,10 @@ Index: gdb-7.6.90.20140127/gdb/avr-tdep.c
/* Calculate the potential last register needed. */ /* Calculate the potential last register needed. */
last_regnum = regnum - (len + (len & 1)); last_regnum = regnum - (len + (len & 1));
Index: gdb-7.6.90.20140127/gdb/bfin-tdep.c Index: gdb-7.7.1/gdb/bfin-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/bfin-tdep.c 2014-02-06 18:20:52.980747727 +0100 --- gdb-7.7.1.orig/gdb/bfin-tdep.c 2014-05-09 19:24:18.686252771 +0200
+++ gdb-7.6.90.20140127/gdb/bfin-tdep.c 2014-02-06 18:20:57.300752368 +0100 +++ gdb-7.7.1/gdb/bfin-tdep.c 2014-05-09 20:02:09.623703768 +0200
@@ -506,7 +506,7 @@ bfin_push_dummy_call (struct gdbarch *gd @@ -506,7 +506,7 @@ bfin_push_dummy_call (struct gdbarch *gd
gdb_byte buf[4]; gdb_byte buf[4];
int i; int i;
@ -367,10 +367,10 @@ Index: gdb-7.6.90.20140127/gdb/bfin-tdep.c
sp -= container_len; sp -= container_len;
write_memory (sp, value_contents_writeable (args[i]), container_len); write_memory (sp, value_contents_writeable (args[i]), container_len);
Index: gdb-7.6.90.20140127/gdb/cris-tdep.c Index: gdb-7.7.1/gdb/cris-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/cris-tdep.c 2014-02-06 18:20:52.981747728 +0100 --- gdb-7.7.1.orig/gdb/cris-tdep.c 2014-05-09 19:24:18.687252771 +0200
+++ gdb-7.6.90.20140127/gdb/cris-tdep.c 2014-02-06 18:20:57.301752369 +0100 +++ gdb-7.7.1/gdb/cris-tdep.c 2014-05-09 20:02:09.623703768 +0200
@@ -665,13 +665,13 @@ static CORE_ADDR cris_unwind_sp (struct @@ -665,13 +665,13 @@ static CORE_ADDR cris_unwind_sp (struct
struct stack_item struct stack_item
@ -405,10 +405,10 @@ Index: gdb-7.6.90.20140127/gdb/cris-tdep.c
/* How may registers worth of storage do we need for this argument? */ /* How may registers worth of storage do we need for this argument? */
reg_demand = (len / 4) + (len % 4 != 0 ? 1 : 0); reg_demand = (len / 4) + (len % 4 != 0 ? 1 : 0);
Index: gdb-7.6.90.20140127/gdb/h8300-tdep.c Index: gdb-7.7.1/gdb/h8300-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/h8300-tdep.c 2014-02-06 18:20:52.981747728 +0100 --- gdb-7.7.1.orig/gdb/h8300-tdep.c 2014-05-09 19:24:18.688252771 +0200
+++ gdb-7.6.90.20140127/gdb/h8300-tdep.c 2014-02-06 18:20:57.301752369 +0100 +++ gdb-7.7.1/gdb/h8300-tdep.c 2014-05-09 20:02:09.624703768 +0200
@@ -640,7 +640,7 @@ h8300_push_dummy_call (struct gdbarch *g @@ -640,7 +640,7 @@ h8300_push_dummy_call (struct gdbarch *g
int struct_return, CORE_ADDR struct_addr) int struct_return, CORE_ADDR struct_addr)
{ {
@ -441,10 +441,10 @@ Index: gdb-7.6.90.20140127/gdb/h8300-tdep.c
for (offset = 0; offset < padded_len; offset += wordsize) for (offset = 0; offset < padded_len; offset += wordsize)
{ {
Index: gdb-7.6.90.20140127/gdb/hppa-tdep.c Index: gdb-7.7.1/gdb/hppa-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/hppa-tdep.c 2014-02-06 18:20:52.982747729 +0100 --- gdb-7.7.1.orig/gdb/hppa-tdep.c 2014-05-09 19:24:18.690252771 +0200
+++ gdb-7.6.90.20140127/gdb/hppa-tdep.c 2014-02-06 18:20:57.302752371 +0100 +++ gdb-7.7.1/gdb/hppa-tdep.c 2014-05-09 20:02:09.624703768 +0200
@@ -961,7 +961,7 @@ hppa64_push_dummy_call (struct gdbarch * @@ -961,7 +961,7 @@ hppa64_push_dummy_call (struct gdbarch *
{ {
struct value *arg = args[i]; struct value *arg = args[i];
@ -463,10 +463,10 @@ Index: gdb-7.6.90.20140127/gdb/hppa-tdep.c
int regnum, offset; int regnum, offset;
if (len > 16) if (len > 16)
Index: gdb-7.6.90.20140127/gdb/i386-darwin-tdep.c Index: gdb-7.7.1/gdb/i386-darwin-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/i386-darwin-tdep.c 2014-02-06 18:20:52.982747729 +0100 --- gdb-7.7.1.orig/gdb/i386-darwin-tdep.c 2014-05-09 19:24:18.690252771 +0200
+++ gdb-7.6.90.20140127/gdb/i386-darwin-tdep.c 2014-02-06 18:20:57.302752371 +0100 +++ gdb-7.7.1/gdb/i386-darwin-tdep.c 2014-05-09 20:02:09.624703768 +0200
@@ -164,7 +164,7 @@ i386_darwin_push_dummy_call (struct gdba @@ -164,7 +164,7 @@ i386_darwin_push_dummy_call (struct gdba
for (write_pass = 0; write_pass < 2; write_pass++) for (write_pass = 0; write_pass < 2; write_pass++)
@ -476,10 +476,10 @@ Index: gdb-7.6.90.20140127/gdb/i386-darwin-tdep.c
int num_m128 = 0; int num_m128 = 0;
if (struct_return) if (struct_return)
Index: gdb-7.6.90.20140127/gdb/i386-tdep.c Index: gdb-7.7.1/gdb/i386-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/i386-tdep.c 2014-02-06 18:20:52.985747732 +0100 --- gdb-7.7.1.orig/gdb/i386-tdep.c 2014-05-09 19:24:18.692252771 +0200
+++ gdb-7.6.90.20140127/gdb/i386-tdep.c 2014-02-06 18:20:57.303752372 +0100 +++ gdb-7.7.1/gdb/i386-tdep.c 2014-05-09 20:02:09.625703769 +0200
@@ -2473,7 +2473,7 @@ i386_push_dummy_call (struct gdbarch *gd @@ -2473,7 +2473,7 @@ i386_push_dummy_call (struct gdbarch *gd
gdb_byte buf[4]; gdb_byte buf[4];
int i; int i;
@ -543,10 +543,10 @@ Index: gdb-7.6.90.20140127/gdb/i386-tdep.c
if (i386_fp_regnum_p (get_frame_arch (frame), regnum)) if (i386_fp_regnum_p (get_frame_arch (frame), regnum))
{ {
Index: gdb-7.6.90.20140127/gdb/ia64-tdep.c Index: gdb-7.7.1/gdb/ia64-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/ia64-tdep.c 2014-02-06 18:20:52.986747733 +0100 --- gdb-7.7.1.orig/gdb/ia64-tdep.c 2014-05-09 19:24:18.693252771 +0200
+++ gdb-7.6.90.20140127/gdb/ia64-tdep.c 2014-02-06 18:20:57.304752373 +0100 +++ gdb-7.7.1/gdb/ia64-tdep.c 2014-05-09 20:02:09.626703769 +0200
@@ -3851,8 +3851,10 @@ ia64_push_dummy_call (struct gdbarch *gd @@ -3851,8 +3851,10 @@ ia64_push_dummy_call (struct gdbarch *gd
int argno; int argno;
struct value *arg; struct value *arg;
@ -560,10 +560,10 @@ Index: gdb-7.6.90.20140127/gdb/ia64-tdep.c
int floatreg; int floatreg;
ULONGEST bsp; ULONGEST bsp;
CORE_ADDR funcdescaddr, pc, global_pointer; CORE_ADDR funcdescaddr, pc, global_pointer;
Index: gdb-7.6.90.20140127/gdb/iq2000-tdep.c Index: gdb-7.7.1/gdb/iq2000-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/iq2000-tdep.c 2014-02-06 18:20:52.986747733 +0100 --- gdb-7.7.1.orig/gdb/iq2000-tdep.c 2014-05-09 19:24:18.693252771 +0200
+++ gdb-7.6.90.20140127/gdb/iq2000-tdep.c 2014-02-06 18:20:57.304752373 +0100 +++ gdb-7.7.1/gdb/iq2000-tdep.c 2014-05-09 20:02:09.626703769 +0200
@@ -654,8 +654,9 @@ iq2000_push_dummy_call (struct gdbarch * @@ -654,8 +654,9 @@ iq2000_push_dummy_call (struct gdbarch *
const bfd_byte *val; const bfd_byte *val;
bfd_byte buf[4]; bfd_byte buf[4];
@ -576,10 +576,10 @@ Index: gdb-7.6.90.20140127/gdb/iq2000-tdep.c
/* Used to copy struct arguments into the stack. */ /* Used to copy struct arguments into the stack. */
CORE_ADDR struct_ptr; CORE_ADDR struct_ptr;
Index: gdb-7.6.90.20140127/gdb/m32r-tdep.c Index: gdb-7.7.1/gdb/m32r-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/m32r-tdep.c 2014-02-06 18:20:52.986747733 +0100 --- gdb-7.7.1.orig/gdb/m32r-tdep.c 2014-05-09 19:24:18.693252771 +0200
+++ gdb-7.6.90.20140127/gdb/m32r-tdep.c 2014-02-06 18:20:57.304752373 +0100 +++ gdb-7.7.1/gdb/m32r-tdep.c 2014-05-09 20:02:09.626703769 +0200
@@ -689,7 +689,7 @@ m32r_push_dummy_call (struct gdbarch *gd @@ -689,7 +689,7 @@ m32r_push_dummy_call (struct gdbarch *gd
CORE_ADDR regval; CORE_ADDR regval;
gdb_byte *val; gdb_byte *val;
@ -589,10 +589,10 @@ Index: gdb-7.6.90.20140127/gdb/m32r-tdep.c
/* First force sp to a 4-byte alignment. */ /* First force sp to a 4-byte alignment. */
sp = sp & ~3; sp = sp & ~3;
Index: gdb-7.6.90.20140127/gdb/m68k-tdep.c Index: gdb-7.7.1/gdb/m68k-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/m68k-tdep.c 2014-02-06 18:20:52.987747735 +0100 --- gdb-7.7.1.orig/gdb/m68k-tdep.c 2014-05-09 19:24:18.694252771 +0200
+++ gdb-7.6.90.20140127/gdb/m68k-tdep.c 2014-02-06 18:20:57.305752374 +0100 +++ gdb-7.7.1/gdb/m68k-tdep.c 2014-05-09 20:02:09.627703769 +0200
@@ -384,7 +384,7 @@ m68k_reg_struct_return_p (struct gdbarch @@ -384,7 +384,7 @@ m68k_reg_struct_return_p (struct gdbarch
{ {
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
@ -615,10 +615,10 @@ Index: gdb-7.6.90.20140127/gdb/m68k-tdep.c
/* Non-scalars bigger than 4 bytes are left aligned, others are /* Non-scalars bigger than 4 bytes are left aligned, others are
right aligned. */ right aligned. */
Index: gdb-7.6.90.20140127/gdb/m88k-tdep.c Index: gdb-7.7.1/gdb/m88k-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/m88k-tdep.c 2014-02-06 18:20:52.987747735 +0100 --- gdb-7.7.1.orig/gdb/m88k-tdep.c 2014-05-09 19:24:18.694252771 +0200
+++ gdb-7.6.90.20140127/gdb/m88k-tdep.c 2014-02-06 18:20:57.305752374 +0100 +++ gdb-7.7.1/gdb/m88k-tdep.c 2014-05-09 20:02:09.627703769 +0200
@@ -260,13 +260,13 @@ m88k_store_arguments (struct regcache *r @@ -260,13 +260,13 @@ m88k_store_arguments (struct regcache *r
{ {
struct gdbarch *gdbarch = get_regcache_arch (regcache); struct gdbarch *gdbarch = get_regcache_arch (regcache);
@ -646,10 +646,10 @@ Index: gdb-7.6.90.20140127/gdb/m88k-tdep.c
if (m88k_in_register_p (type)) if (m88k_in_register_p (type))
{ {
Index: gdb-7.6.90.20140127/gdb/mep-tdep.c Index: gdb-7.7.1/gdb/mep-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/mep-tdep.c 2014-02-06 18:20:52.987747735 +0100 --- gdb-7.7.1.orig/gdb/mep-tdep.c 2014-05-09 19:24:18.695252772 +0200
+++ gdb-7.6.90.20140127/gdb/mep-tdep.c 2014-02-06 18:20:57.306752375 +0100 +++ gdb-7.7.1/gdb/mep-tdep.c 2014-05-09 20:02:09.627703769 +0200
@@ -2272,7 +2272,7 @@ push_large_arguments (CORE_ADDR sp, int @@ -2272,7 +2272,7 @@ push_large_arguments (CORE_ADDR sp, int
for (i = 0; i < argc; i++) for (i = 0; i < argc; i++)
@ -659,10 +659,10 @@ Index: gdb-7.6.90.20140127/gdb/mep-tdep.c
if (arg_len > MEP_GPR_SIZE) if (arg_len > MEP_GPR_SIZE)
{ {
Index: gdb-7.6.90.20140127/gdb/mips-tdep.c Index: gdb-7.7.1/gdb/mips-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/mips-tdep.c 2014-02-06 18:20:52.990747738 +0100 --- gdb-7.7.1.orig/gdb/mips-tdep.c 2014-05-09 19:24:18.698252772 +0200
+++ gdb-7.6.90.20140127/gdb/mips-tdep.c 2014-02-06 18:20:57.307752376 +0100 +++ gdb-7.7.1/gdb/mips-tdep.c 2014-05-09 20:02:09.628703769 +0200
@@ -402,7 +402,7 @@ static void @@ -402,7 +402,7 @@ static void
mips_xfer_register (struct gdbarch *gdbarch, struct regcache *regcache, mips_xfer_register (struct gdbarch *gdbarch, struct regcache *regcache,
int reg_num, int length, int reg_num, int length,
@ -808,10 +808,10 @@ Index: gdb-7.6.90.20140127/gdb/mips-tdep.c
val = value_contents (arg); val = value_contents (arg);
Index: gdb-7.6.90.20140127/gdb/mn10300-tdep.c Index: gdb-7.7.1/gdb/mn10300-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/mn10300-tdep.c 2014-02-06 18:20:52.991747739 +0100 --- gdb-7.7.1.orig/gdb/mn10300-tdep.c 2014-05-09 19:24:18.698252772 +0200
+++ gdb-7.6.90.20140127/gdb/mn10300-tdep.c 2014-02-06 18:20:57.308752377 +0100 +++ gdb-7.7.1/gdb/mn10300-tdep.c 2014-05-09 20:02:09.629703770 +0200
@@ -1227,7 +1227,7 @@ mn10300_push_dummy_call (struct gdbarch @@ -1227,7 +1227,7 @@ mn10300_push_dummy_call (struct gdbarch
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
const int push_size = register_size (gdbarch, E_PC_REGNUM); const int push_size = register_size (gdbarch, E_PC_REGNUM);
@ -821,10 +821,10 @@ Index: gdb-7.6.90.20140127/gdb/mn10300-tdep.c
int stack_offset = 0; int stack_offset = 0;
int argnum; int argnum;
const gdb_byte *val; const gdb_byte *val;
Index: gdb-7.6.90.20140127/gdb/mt-tdep.c Index: gdb-7.7.1/gdb/mt-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/mt-tdep.c 2014-02-06 18:20:52.991747739 +0100 --- gdb-7.7.1.orig/gdb/mt-tdep.c 2014-05-09 19:24:18.699252772 +0200
+++ gdb-7.6.90.20140127/gdb/mt-tdep.c 2014-02-06 18:20:57.308752377 +0100 +++ gdb-7.7.1/gdb/mt-tdep.c 2014-05-09 20:02:09.629703770 +0200
@@ -783,9 +783,9 @@ mt_push_dummy_call (struct gdbarch *gdba @@ -783,9 +783,9 @@ mt_push_dummy_call (struct gdbarch *gdba
gdb_byte buf[MT_MAX_STRUCT_SIZE]; gdb_byte buf[MT_MAX_STRUCT_SIZE];
int argreg = MT_1ST_ARGREG; int argreg = MT_1ST_ARGREG;
@ -837,10 +837,10 @@ Index: gdb-7.6.90.20140127/gdb/mt-tdep.c
int i, j; int i, j;
/* First handle however many args we can fit into MT_1ST_ARGREG thru /* First handle however many args we can fit into MT_1ST_ARGREG thru
Index: gdb-7.6.90.20140127/gdb/ppc-sysv-tdep.c Index: gdb-7.7.1/gdb/ppc-sysv-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/ppc-sysv-tdep.c 2014-02-06 18:20:52.992747740 +0100 --- gdb-7.7.1.orig/gdb/ppc-sysv-tdep.c 2014-05-09 19:24:18.699252772 +0200
+++ gdb-7.6.90.20140127/gdb/ppc-sysv-tdep.c 2014-02-06 18:20:57.308752377 +0100 +++ gdb-7.7.1/gdb/ppc-sysv-tdep.c 2014-05-09 20:10:13.994807709 +0200
@@ -68,7 +68,7 @@ ppc_sysv_abi_push_dummy_call (struct gdb @@ -68,7 +68,7 @@ ppc_sysv_abi_push_dummy_call (struct gdb
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int opencl_abi = ppc_sysv_use_opencl_abi (value_type (function)); int opencl_abi = ppc_sysv_use_opencl_abi (value_type (function));
@ -871,36 +871,24 @@ Index: gdb-7.6.90.20140127/gdb/ppc-sysv-tdep.c
const bfd_byte *val = value_contents (arg); const bfd_byte *val = value_contents (arg);
if (TYPE_CODE (type) == TYPE_CODE_FLT && len <= 8 if (TYPE_CODE (type) == TYPE_CODE_FLT && len <= 8
@@ -1613,14 +1613,14 @@ ppc64_sysv_abi_push_dummy_call (struct g @@ -1285,11 +1285,11 @@ struct ppc64_sysv_argpos
}
else static void
{ ppc64_sysv_abi_push_val (struct gdbarch *gdbarch,
- int byte; - const bfd_byte *val, int len, int align,
+ ssize_t byte; + const bfd_byte *val, ssize_t len, int align,
for (byte = 0; byte < TYPE_LENGTH (type); struct ppc64_sysv_argpos *argpos)
byte += tdep->wordsize) {
{ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
if (write_pass && greg <= 10) - int offset = 0;
{ + ssize_t offset = 0;
gdb_byte regval[MAX_REGISTER_SIZE];
- int len = TYPE_LENGTH (type) - byte; /* Enforce alignment of stack location, if requested. */
+ ssize_t len = TYPE_LENGTH (type) - byte; if (align > tdep->wordsize)
if (len > tdep->wordsize) Index: gdb-7.7.1/gdb/rl78-tdep.c
len = tdep->wordsize;
memset (regval, 0, sizeof regval);
@@ -1648,7 +1648,7 @@ ppc64_sysv_abi_push_dummy_call (struct g
register. Work around this by always writing the
value to memory. Fortunately, doing this
simplifies the code. */
- int len = TYPE_LENGTH (type);
+ ssize_t len = TYPE_LENGTH (type);
if (len < tdep->wordsize)
write_memory (gparam + tdep->wordsize - len, val, len);
else
Index: gdb-7.6.90.20140127/gdb/rl78-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/rl78-tdep.c 2014-02-06 18:20:52.992747740 +0100 --- gdb-7.7.1.orig/gdb/rl78-tdep.c 2014-05-09 19:24:18.700252772 +0200
+++ gdb-7.6.90.20140127/gdb/rl78-tdep.c 2014-02-06 18:20:57.309752378 +0100 +++ gdb-7.7.1/gdb/rl78-tdep.c 2014-05-09 20:02:09.630703770 +0200
@@ -1052,8 +1052,8 @@ rl78_push_dummy_call (struct gdbarch *gd @@ -1052,8 +1052,8 @@ rl78_push_dummy_call (struct gdbarch *gd
for (i = nargs - 1; i >= 0; i--) for (i = nargs - 1; i >= 0; i--)
{ {
@ -912,10 +900,10 @@ Index: gdb-7.6.90.20140127/gdb/rl78-tdep.c
sp -= container_len; sp -= container_len;
write_memory (rl78_make_data_address (sp), write_memory (rl78_make_data_address (sp),
Index: gdb-7.6.90.20140127/gdb/rs6000-aix-tdep.c Index: gdb-7.7.1/gdb/rs6000-aix-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/rs6000-aix-tdep.c 2014-02-06 18:20:52.993747741 +0100 --- gdb-7.7.1.orig/gdb/rs6000-aix-tdep.c 2014-05-09 19:24:18.700252772 +0200
+++ gdb-7.6.90.20140127/gdb/rs6000-aix-tdep.c 2014-02-06 18:20:57.309752378 +0100 +++ gdb-7.7.1/gdb/rs6000-aix-tdep.c 2014-05-09 20:02:09.630703770 +0200
@@ -196,9 +196,9 @@ rs6000_push_dummy_call (struct gdbarch * @@ -196,9 +196,9 @@ rs6000_push_dummy_call (struct gdbarch *
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
@ -937,10 +925,10 @@ Index: gdb-7.6.90.20140127/gdb/rs6000-aix-tdep.c
if (argbytes) if (argbytes)
{ {
Index: gdb-7.6.90.20140127/gdb/s390-linux-tdep.c Index: gdb-7.7.1/gdb/s390-linux-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/s390-linux-tdep.c 2014-02-06 18:20:52.993747741 +0100 --- gdb-7.7.1.orig/gdb/s390-linux-tdep.c 2014-05-09 19:24:18.701252772 +0200
+++ gdb-7.6.90.20140127/gdb/s390-linux-tdep.c 2014-02-06 18:22:17.330838389 +0100 +++ gdb-7.7.1/gdb/s390-linux-tdep.c 2014-05-09 20:02:09.631703770 +0200
@@ -2526,7 +2526,7 @@ is_float_like (struct type *type) @@ -2526,7 +2526,7 @@ is_float_like (struct type *type)
@ -959,10 +947,10 @@ Index: gdb-7.6.90.20140127/gdb/s390-linux-tdep.c
if (s390_function_arg_pass_by_reference (type)) if (s390_function_arg_pass_by_reference (type))
{ {
Index: gdb-7.6.90.20140127/gdb/score-tdep.c Index: gdb-7.7.1/gdb/score-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/score-tdep.c 2014-02-06 18:20:52.994747742 +0100 --- gdb-7.7.1.orig/gdb/score-tdep.c 2014-05-09 19:24:18.701252772 +0200
+++ gdb-7.6.90.20140127/gdb/score-tdep.c 2014-02-06 18:20:57.310752379 +0100 +++ gdb-7.7.1/gdb/score-tdep.c 2014-05-09 20:02:09.631703770 +0200
@@ -515,7 +515,7 @@ score_push_dummy_call (struct gdbarch *g @@ -515,7 +515,7 @@ score_push_dummy_call (struct gdbarch *g
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int argnum; int argnum;
@ -972,10 +960,10 @@ Index: gdb-7.6.90.20140127/gdb/score-tdep.c
CORE_ADDR stack_offset = 0; CORE_ADDR stack_offset = 0;
CORE_ADDR addr = 0; CORE_ADDR addr = 0;
Index: gdb-7.6.90.20140127/gdb/sh-tdep.c Index: gdb-7.7.1/gdb/sh-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/sh-tdep.c 2014-02-06 18:20:52.995747743 +0100 --- gdb-7.7.1.orig/gdb/sh-tdep.c 2014-05-09 19:24:18.702252772 +0200
+++ gdb-7.6.90.20140127/gdb/sh-tdep.c 2014-02-06 18:20:57.310752379 +0100 +++ gdb-7.7.1/gdb/sh-tdep.c 2014-05-09 20:02:09.631703770 +0200
@@ -807,7 +807,7 @@ sh_skip_prologue (struct gdbarch *gdbarc @@ -807,7 +807,7 @@ sh_skip_prologue (struct gdbarch *gdbarc
static int static int
sh_use_struct_convention (int renesas_abi, struct type *type) sh_use_struct_convention (int renesas_abi, struct type *type)
@ -1014,10 +1002,10 @@ Index: gdb-7.6.90.20140127/gdb/sh-tdep.c
int pass_on_stack = 0; int pass_on_stack = 0;
int last_reg_arg = INT_MAX; int last_reg_arg = INT_MAX;
Index: gdb-7.6.90.20140127/gdb/sh64-tdep.c Index: gdb-7.7.1/gdb/sh64-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/sh64-tdep.c 2014-02-06 18:20:52.995747743 +0100 --- gdb-7.7.1.orig/gdb/sh64-tdep.c 2014-05-09 19:24:18.702252772 +0200
+++ gdb-7.6.90.20140127/gdb/sh64-tdep.c 2014-02-06 18:20:57.311752380 +0100 +++ gdb-7.7.1/gdb/sh64-tdep.c 2014-05-09 20:02:09.632703771 +0200
@@ -1058,7 +1058,7 @@ sh64_push_dummy_call (struct gdbarch *gd @@ -1058,7 +1058,7 @@ sh64_push_dummy_call (struct gdbarch *gd
CORE_ADDR struct_addr) CORE_ADDR struct_addr)
{ {
@ -1036,10 +1024,10 @@ Index: gdb-7.6.90.20140127/gdb/sh64-tdep.c
int argreg_size; int argreg_size;
int fp_args[12]; int fp_args[12];
Index: gdb-7.6.90.20140127/gdb/sparc-tdep.c Index: gdb-7.7.1/gdb/sparc-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/sparc-tdep.c 2014-02-06 18:20:52.996747744 +0100 --- gdb-7.7.1.orig/gdb/sparc-tdep.c 2014-05-09 19:24:18.703252772 +0200
+++ gdb-7.6.90.20140127/gdb/sparc-tdep.c 2014-02-06 18:20:57.311752380 +0100 +++ gdb-7.7.1/gdb/sparc-tdep.c 2014-05-09 20:02:09.632703771 +0200
@@ -502,7 +502,7 @@ sparc32_store_arguments (struct regcache @@ -502,7 +502,7 @@ sparc32_store_arguments (struct regcache
for (i = 0; i < nargs; i++) for (i = 0; i < nargs; i++)
{ {
@ -1049,10 +1037,10 @@ Index: gdb-7.6.90.20140127/gdb/sparc-tdep.c
if (sparc_structure_or_union_p (type) if (sparc_structure_or_union_p (type)
|| (sparc_floating_p (type) && len == 16) || (sparc_floating_p (type) && len == 16)
Index: gdb-7.6.90.20140127/gdb/sparc64-tdep.c Index: gdb-7.7.1/gdb/sparc64-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/sparc64-tdep.c 2014-02-06 18:20:52.996747744 +0100 --- gdb-7.7.1.orig/gdb/sparc64-tdep.c 2014-05-09 19:24:18.704252773 +0200
+++ gdb-7.6.90.20140127/gdb/sparc64-tdep.c 2014-02-06 18:20:57.311752380 +0100 +++ gdb-7.7.1/gdb/sparc64-tdep.c 2014-05-09 20:02:09.632703771 +0200
@@ -639,7 +639,8 @@ sparc64_16_byte_align_p (struct type *ty @@ -639,7 +639,8 @@ sparc64_16_byte_align_p (struct type *ty
static void static void
@ -1108,10 +1096,10 @@ Index: gdb-7.6.90.20140127/gdb/sparc64-tdep.c
int regnum = -1; int regnum = -1;
gdb_byte buf[16]; gdb_byte buf[16];
Index: gdb-7.6.90.20140127/gdb/spu-tdep.c Index: gdb-7.7.1/gdb/spu-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/spu-tdep.c 2014-02-06 18:20:52.997747745 +0100 --- gdb-7.7.1.orig/gdb/spu-tdep.c 2014-05-09 19:24:18.704252773 +0200
+++ gdb-7.6.90.20140127/gdb/spu-tdep.c 2014-02-06 18:20:57.312752381 +0100 +++ gdb-7.7.1/gdb/spu-tdep.c 2014-05-09 20:02:09.633703771 +0200
@@ -1376,7 +1376,7 @@ spu_push_dummy_call (struct gdbarch *gdb @@ -1376,7 +1376,7 @@ spu_push_dummy_call (struct gdbarch *gdb
struct value *arg = args[i]; struct value *arg = args[i];
struct type *type = check_typedef (value_type (arg)); struct type *type = check_typedef (value_type (arg));
@ -1130,10 +1118,10 @@ Index: gdb-7.6.90.20140127/gdb/spu-tdep.c
int preferred_slot; int preferred_slot;
if (spu_scalar_value_p (type)) if (spu_scalar_value_p (type))
Index: gdb-7.6.90.20140127/gdb/tic6x-tdep.c Index: gdb-7.7.1/gdb/tic6x-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/tic6x-tdep.c 2014-02-06 18:20:52.997747745 +0100 --- gdb-7.7.1.orig/gdb/tic6x-tdep.c 2014-05-09 19:24:18.705252773 +0200
+++ gdb-7.6.90.20140127/gdb/tic6x-tdep.c 2014-02-06 18:20:57.312752381 +0100 +++ gdb-7.7.1/gdb/tic6x-tdep.c 2014-05-09 20:02:09.633703771 +0200
@@ -896,7 +896,7 @@ tic6x_push_dummy_call (struct gdbarch *g @@ -896,7 +896,7 @@ tic6x_push_dummy_call (struct gdbarch *g
int argreg = 0; int argreg = 0;
int argnum; int argnum;
@ -1171,10 +1159,10 @@ Index: gdb-7.6.90.20140127/gdb/tic6x-tdep.c
addr = sp + stack_offset; addr = sp + stack_offset;
write_memory (addr, val, len); write_memory (addr, val, len);
Index: gdb-7.6.90.20140127/gdb/tilegx-tdep.c Index: gdb-7.7.1/gdb/tilegx-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/tilegx-tdep.c 2014-02-06 18:20:52.998747746 +0100 --- gdb-7.7.1.orig/gdb/tilegx-tdep.c 2014-05-09 19:24:18.705252773 +0200
+++ gdb-7.6.90.20140127/gdb/tilegx-tdep.c 2014-02-06 18:20:57.312752381 +0100 +++ gdb-7.7.1/gdb/tilegx-tdep.c 2014-05-09 20:02:09.633703771 +0200
@@ -290,7 +290,7 @@ tilegx_push_dummy_call (struct gdbarch * @@ -290,7 +290,7 @@ tilegx_push_dummy_call (struct gdbarch *
CORE_ADDR stack_dest = sp; CORE_ADDR stack_dest = sp;
int argreg = TILEGX_R0_REGNUM; int argreg = TILEGX_R0_REGNUM;
@ -1184,10 +1172,10 @@ Index: gdb-7.6.90.20140127/gdb/tilegx-tdep.c
static const gdb_byte four_zero_words[16] = { 0 }; static const gdb_byte four_zero_words[16] = { 0 };
/* If struct_return is 1, then the struct return address will /* If struct_return is 1, then the struct return address will
Index: gdb-7.6.90.20140127/gdb/v850-tdep.c Index: gdb-7.7.1/gdb/v850-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/v850-tdep.c 2014-02-06 18:20:52.998747746 +0100 --- gdb-7.7.1.orig/gdb/v850-tdep.c 2014-05-09 19:24:18.705252773 +0200
+++ gdb-7.6.90.20140127/gdb/v850-tdep.c 2014-02-06 18:20:57.313752383 +0100 +++ gdb-7.7.1/gdb/v850-tdep.c 2014-05-09 20:02:09.634703771 +0200
@@ -1021,7 +1021,7 @@ v850_push_dummy_call (struct gdbarch *gd @@ -1021,7 +1021,7 @@ v850_push_dummy_call (struct gdbarch *gd
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int argreg; int argreg;
@ -1206,10 +1194,10 @@ Index: gdb-7.6.90.20140127/gdb/v850-tdep.c
gdb_byte *val; gdb_byte *val;
gdb_byte valbuf[v850_reg_size]; gdb_byte valbuf[v850_reg_size];
Index: gdb-7.6.90.20140127/gdb/vax-tdep.c Index: gdb-7.7.1/gdb/vax-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/vax-tdep.c 2014-02-06 18:20:52.998747746 +0100 --- gdb-7.7.1.orig/gdb/vax-tdep.c 2014-05-09 19:24:18.706252773 +0200
+++ gdb-7.6.90.20140127/gdb/vax-tdep.c 2014-02-06 18:20:57.313752383 +0100 +++ gdb-7.7.1/gdb/vax-tdep.c 2014-05-09 20:02:09.634703771 +0200
@@ -115,7 +115,7 @@ vax_store_arguments (struct regcache *re @@ -115,7 +115,7 @@ vax_store_arguments (struct regcache *re
struct gdbarch *gdbarch = get_regcache_arch (regcache); struct gdbarch *gdbarch = get_regcache_arch (regcache);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
@ -1228,10 +1216,10 @@ Index: gdb-7.6.90.20140127/gdb/vax-tdep.c
sp -= (len + 3) & ~3; sp -= (len + 3) & ~3;
count += (len + 3) / 4; count += (len + 3) / 4;
Index: gdb-7.6.90.20140127/gdb/xstormy16-tdep.c Index: gdb-7.7.1/gdb/xstormy16-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/xstormy16-tdep.c 2014-02-06 18:20:52.999747748 +0100 --- gdb-7.7.1.orig/gdb/xstormy16-tdep.c 2014-05-09 19:24:18.706252773 +0200
+++ gdb-7.6.90.20140127/gdb/xstormy16-tdep.c 2014-02-06 18:20:57.313752383 +0100 +++ gdb-7.7.1/gdb/xstormy16-tdep.c 2014-05-09 20:02:09.634703771 +0200
@@ -235,8 +235,9 @@ xstormy16_push_dummy_call (struct gdbarc @@ -235,8 +235,9 @@ xstormy16_push_dummy_call (struct gdbarc
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
CORE_ADDR stack_dest = sp; CORE_ADDR stack_dest = sp;
@ -1244,10 +1232,10 @@ Index: gdb-7.6.90.20140127/gdb/xstormy16-tdep.c
const gdb_byte *val; const gdb_byte *val;
gdb_byte buf[xstormy16_pc_size]; gdb_byte buf[xstormy16_pc_size];
Index: gdb-7.6.90.20140127/gdb/xtensa-tdep.c Index: gdb-7.7.1/gdb/xtensa-tdep.c
=================================================================== ===================================================================
--- gdb-7.6.90.20140127.orig/gdb/xtensa-tdep.c 2014-02-06 18:20:53.000747749 +0100 --- gdb-7.7.1.orig/gdb/xtensa-tdep.c 2014-05-09 19:24:18.707252773 +0200
+++ gdb-7.6.90.20140127/gdb/xtensa-tdep.c 2014-02-06 18:20:57.314752384 +0100 +++ gdb-7.7.1/gdb/xtensa-tdep.c 2014-05-09 20:02:09.634703771 +0200
@@ -1652,8 +1652,7 @@ xtensa_store_return_value (struct type * @@ -1652,8 +1652,7 @@ xtensa_store_return_value (struct type *
if (len > (callsize > 8 ? 8 : 16)) if (len > (callsize > 8 ? 8 : 16))

View File

@ -47,11 +47,11 @@ Content-Type: text/x-patch
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=f77-bounds.patch Content-Disposition: attachment; filename=f77-bounds.patch
Index: gdb-7.5.50.20130118/gdb/f-lang.h Index: gdb-7.7.90.20140613/gdb/f-lang.h
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/f-lang.h 2013-01-18 23:39:40.209500968 +0100 --- gdb-7.7.90.20140613.orig/gdb/f-lang.h 2014-06-16 22:45:00.404470944 +0200
+++ gdb-7.5.50.20130118/gdb/f-lang.h 2013-01-18 23:40:04.010531177 +0100 +++ gdb-7.7.90.20140613/gdb/f-lang.h 2014-06-16 22:45:10.352477761 +0200
@@ -65,9 +65,9 @@ struct common_block @@ -62,9 +62,9 @@ struct common_block
struct symbol *contents[1]; struct symbol *contents[1];
}; };
@ -63,11 +63,11 @@ Index: gdb-7.5.50.20130118/gdb/f-lang.h
extern void f77_get_dynamic_array_length (struct type *); extern void f77_get_dynamic_array_length (struct type *);
Index: gdb-7.5.50.20130118/gdb/f-typeprint.c Index: gdb-7.7.90.20140613/gdb/f-typeprint.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/f-typeprint.c 2013-01-18 23:39:37.564497620 +0100 --- gdb-7.7.90.20140613.orig/gdb/f-typeprint.c 2014-06-16 22:45:00.404470944 +0200
+++ gdb-7.5.50.20130118/gdb/f-typeprint.c 2013-01-18 23:39:40.210500970 +0100 +++ gdb-7.7.90.20140613/gdb/f-typeprint.c 2014-06-16 22:45:10.353477761 +0200
@@ -180,7 +180,7 @@ f_type_print_varspec_suffix (struct type @@ -161,7 +161,7 @@ f_type_print_varspec_suffix (struct type
int show, int passed_a_ptr, int demangled_args, int show, int passed_a_ptr, int demangled_args,
int arrayprint_recurse_level) int arrayprint_recurse_level)
{ {
@ -76,25 +76,25 @@ Index: gdb-7.5.50.20130118/gdb/f-typeprint.c
/* No static variables are permitted as an error call may occur during /* No static variables are permitted as an error call may occur during
execution of this function. */ execution of this function. */
@@ -210,7 +210,7 @@ f_type_print_varspec_suffix (struct type @@ -195,7 +195,7 @@ f_type_print_varspec_suffix (struct type
lower_bound = f77_get_lowerbound (type); lower_bound = f77_get_lowerbound (type);
if (lower_bound != 1) /* Not the default. */ if (lower_bound != 1) /* Not the default. */
- fprintf_filtered (stream, "%d:", lower_bound); - fprintf_filtered (stream, "%d:", lower_bound);
+ fprintf_filtered (stream, "%s:", plongest (lower_bound)); + fprintf_filtered (stream, "%s:", plongest (lower_bound));
/* Make sure that, if we have an assumed size array, we /* Make sure that, if we have an assumed size array, we
print out a warning and print the upperbound as '*'. */ print out a warning and print the upperbound as '*'. */
@@ -220,7 +220,7 @@ f_type_print_varspec_suffix (struct type @@ -205,7 +205,7 @@ f_type_print_varspec_suffix (struct type
else else
{ {
upper_bound = f77_get_upperbound (type); upper_bound = f77_get_upperbound (type);
- fprintf_filtered (stream, "%d", upper_bound); - fprintf_filtered (stream, "%d", upper_bound);
+ fprintf_filtered (stream, "%s", plongest (upper_bound)); + fprintf_filtered (stream, "%s", plongest (upper_bound));
} }
if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_ARRAY) if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_ARRAY)
@@ -288,7 +288,7 @@ void @@ -274,7 +274,7 @@ void
f_type_print_base (struct type *type, struct ui_file *stream, int show, f_type_print_base (struct type *type, struct ui_file *stream, int show,
int level) int level)
{ {
@ -103,7 +103,7 @@ Index: gdb-7.5.50.20130118/gdb/f-typeprint.c
int index; int index;
QUIT; QUIT;
@@ -370,7 +370,7 @@ f_type_print_base (struct type *type, st @@ -356,7 +356,7 @@ f_type_print_base (struct type *type, st
else else
{ {
upper_bound = f77_get_upperbound (type); upper_bound = f77_get_upperbound (type);
@ -112,20 +112,20 @@ Index: gdb-7.5.50.20130118/gdb/f-typeprint.c
} }
break; break;
Index: gdb-7.5.50.20130118/gdb/f-valprint.c Index: gdb-7.7.90.20140613/gdb/f-valprint.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/f-valprint.c 2013-01-18 23:39:37.564497620 +0100 --- gdb-7.7.90.20140613.orig/gdb/f-valprint.c 2014-06-16 22:45:34.901495069 +0200
+++ gdb-7.5.50.20130118/gdb/f-valprint.c 2013-01-18 23:39:40.210500970 +0100 +++ gdb-7.7.90.20140613/gdb/f-valprint.c 2014-06-16 22:45:44.933502067 +0200
@@ -57,7 +57,7 @@ LONGEST f77_array_offset_tbl[MAX_FORTRAN @@ -46,7 +46,7 @@ LONGEST f77_array_offset_tbl[MAX_FORTRAN
/* Array which holds offsets to be applied to get a row's elements
#define F77_DIM_BYTE_STRIDE(n) (f77_array_offset_tbl[n][0]) for a given array. Array also holds the size of each subarray. */
-int -int
+LONGEST +LONGEST
f77_get_lowerbound (struct type *type) f77_get_lowerbound (struct type *type)
{ {
f_object_address_data_valid_or_error (type); if (TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED (type))
@@ -68,7 +68,7 @@ f77_get_lowerbound (struct type *type) @@ -55,7 +55,7 @@ f77_get_lowerbound (struct type *type)
return TYPE_ARRAY_LOWER_BOUND_VALUE (type); return TYPE_ARRAY_LOWER_BOUND_VALUE (type);
} }
@ -133,24 +133,4 @@ Index: gdb-7.5.50.20130118/gdb/f-valprint.c
+LONGEST +LONGEST
f77_get_upperbound (struct type *type) f77_get_upperbound (struct type *type)
{ {
f_object_address_data_valid_or_error (type); if (TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (type))
@@ -92,8 +92,8 @@ f77_get_upperbound (struct type *type)
static void
f77_get_dynamic_length_of_aggregate (struct type *type)
{
- int upper_bound = -1;
- int lower_bound = 1;
+ LONGEST upper_bound = -1;
+ LONGEST lower_bound = 1;
/* Recursively go all the way down into a possibly multi-dimensional
F77 array and get the bounds. For simple arrays, this is pretty
@@ -128,7 +128,7 @@ f77_create_arrayprint_offset_tbl (struct
struct type *tmp_type;
LONGEST eltlen;
int ndimen = 1;
- int upper, lower;
+ LONGEST upper, lower;
tmp_type = type;

View File

@ -1,431 +0,0 @@
Some functionality is available on RHEL-5.4+ only with gcc44 and gfortran44 as
the default gcc and gfortran binaries are from gcc-4.1.
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.base/vla.exp
===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.base/vla.exp 2014-02-06 18:26:05.115083077 +0100
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.base/vla.exp 2014-02-06 18:26:06.689084765 +0100
@@ -16,7 +16,25 @@
set testfile vla
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+# Temporarily provide compiler=gcc44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists compiler] {
+ set old_compiler [board_info $board compiler]
+ unset_board_info compiler
+} elseif [info exists old_compiler] {
+ unset old_compiler
+}
+set_board_info compiler gcc44
+
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug quiet}]
+
+unset_board_info compiler
+if [info exists old_compiler] {
+ set_board_info compiler $old_compiler
+}
+
+if { $err != "" } {
untested "Couldn't compile test program"
return -1
}
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.base/break-interp.exp
===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.base/break-interp.exp 2014-02-06 18:26:05.116083078 +0100
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.base/break-interp.exp 2014-02-06 18:26:06.689084765 +0100
@@ -34,9 +34,29 @@ if [get_compiler_info] {
return -1
}
+# Temporarily provide compiler=gcc44 saving the original value around.
+# RHEL-5 workaround of its:
+# gcc: -soname: linker input file unused because linking not done
+
+set board [target_info name]
+if [board_info $board exists compiler] {
+ set old_compiler [board_info $board compiler]
+ unset_board_info compiler
+} elseif [info exists old_compiler] {
+ unset old_compiler
+}
+set_board_info compiler gcc44
+
# Use -soname so that the new library gets copied by build_executable_own_libs.
-if {[gdb_compile_shlib ${srcdir}/${subdir}/${srcfile_lib} ${binfile_lib} [list debug ldflags=-Wl,-soname,${test}.so]] != ""} {
+set err [gdb_compile_shlib ${srcdir}/${subdir}/${srcfile_lib} ${binfile_lib} [list debug ldflags=-Wl,-soname,${test}.so]]
+
+unset_board_info compiler
+if [info exists old_compiler] {
+ set_board_info compiler $old_compiler
+}
+
+if { $err != "" } {
return -1
}
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/common-block.exp
===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/common-block.exp 2014-02-06 18:26:05.116083078 +0100
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/common-block.exp 2014-02-06 18:26:06.690084760 +0100
@@ -22,8 +22,25 @@ if {[skip_fortran_tests]} {
standard_testfile .f90
-if {[prepare_for_testing ${testfile}.exp ${testfile} \
- $srcfile {debug f90 quiet}]} {
+# Temporarily provide f90compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f90compiler] {
+ set old_f90compiler [board_info $board f90compiler]
+ unset_board_info f90compiler
+} elseif [info exists old_f90compiler] {
+ unset old_f90compiler
+}
+set_board_info f90compiler gfortran44
+
+set err [prepare_for_testing ${testfile}.exp ${testfile} $srcfile {debug f90 quiet}]
+
+unset_board_info f90compiler
+if [info exists old_f90compiler] {
+ set_board_info f90compiler $old_f90compiler
+}
+
+if {$err} {
return -1
}
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/dwarf-stride.exp
===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/dwarf-stride.exp 2014-02-06 18:26:05.117083079 +0100
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/dwarf-stride.exp 2014-02-06 18:26:06.690084760 +0100
@@ -27,7 +27,25 @@
set testfile dwarf-stride
set srcfile ${testfile}.f90
-if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f90}] } {
+# Temporarily provide f90compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f90compiler] {
+ set old_f90compiler [board_info $board f90compiler]
+ unset_board_info f90compiler
+} elseif [info exists old_f90compiler] {
+ unset old_f90compiler
+}
+set_board_info f90compiler gfortran44
+
+set err [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f90}]
+
+unset_board_info f90compiler
+if [info exists old_f90compiler] {
+ set_board_info f90compiler $old_f90compiler
+}
+
+if $err {
return -1
}
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/dynamic.exp
===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/dynamic.exp 2014-02-06 18:26:05.117083079 +0100
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/dynamic.exp 2014-02-06 18:26:06.690084760 +0100
@@ -25,7 +25,25 @@ set testfile "dynamic"
set srcfile ${testfile}.f90
set binfile ${objdir}/${subdir}/${testfile}
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f90 quiet}] != "" } {
+# Temporarily provide f90compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f90compiler] {
+ set old_f90compiler [board_info $board f90compiler]
+ unset_board_info f90compiler
+} elseif [info exists old_f90compiler] {
+ unset old_f90compiler
+}
+set_board_info f90compiler gfortran44
+
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f90 quiet}]
+
+unset_board_info f90compiler
+if [info exists old_f90compiler] {
+ set_board_info f90compiler $old_f90compiler
+}
+
+if { $err != "" } {
untested "Couldn't compile ${srcfile}"
return -1
}
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/library-module.exp
===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/library-module.exp 2014-02-06 18:26:05.117083079 +0100
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/library-module.exp 2014-02-06 18:26:06.690084760 +0100
@@ -23,16 +23,34 @@ if [get_compiler_info] {
return -1
}
-if { [gdb_compile_shlib "${srcdir}/${subdir}/${srclibfile}" $libfile {debug f90}] != "" } {
- untested "Couldn't compile ${srclibfile}"
- return -1
+# Temporarily provide f90compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f90compiler] {
+ set old_f90compiler [board_info $board f90compiler]
+ unset_board_info f90compiler
+} elseif [info exists old_f90compiler] {
+ unset old_f90compiler
}
+set_board_info f90compiler gfortran44
# prepare_for_testing cannot be used as linking with $libfile cannot be passed
# just for the linking phase (and not the source compilation phase). And any
# warnings on ignored $libfile abort the process.
-if { [gdb_compile $srcdir/$subdir/$srcfile $binfile executable [list debug f90 shlib=$libfile]] != "" } {
+set err1 [gdb_compile_shlib "${srcdir}/${subdir}/${srclibfile}" $libfile {debug f90}]
+set err2 [gdb_compile $srcdir/$subdir/$srcfile $binfile executable [list debug f90 shlib=$libfile]]
+
+unset_board_info f90compiler
+if [info exists old_f90compiler] {
+ set_board_info f90compiler $old_f90compiler
+}
+
+if { $err1 != "" } {
+ untested "Couldn't compile ${srclibfile}"
+ return -1
+}
+if { $err2 != "" } {
untested "Couldn't compile ${srcfile}"
return -1
}
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/module.exp
===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/module.exp 2014-02-06 18:26:05.118083080 +0100
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/module.exp 2014-02-06 18:26:06.690084760 +0100
@@ -15,7 +15,25 @@
standard_testfile .f90
-if { [prepare_for_testing $testfile.exp $testfile $srcfile {debug f90}] } {
+# Temporarily provide f90compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f90compiler] {
+ set old_f90compiler [board_info $board f90compiler]
+ unset_board_info f90compiler
+} elseif [info exists old_f90compiler] {
+ unset old_f90compiler
+}
+set_board_info f90compiler gfortran44
+
+set err [prepare_for_testing $testfile.exp $testfile $srcfile {debug f90}]
+
+unset_board_info f90compiler
+if [info exists old_f90compiler] {
+ set_board_info f90compiler $old_f90compiler
+}
+
+if $err {
return -1
}
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/string.exp
===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/string.exp 2014-02-06 18:26:05.118083080 +0100
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/string.exp 2014-02-06 18:26:06.691084763 +0100
@@ -23,7 +23,25 @@ set testfile "string"
set srcfile ${testfile}.f90
set binfile ${objdir}/${subdir}/${testfile}
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f90 quiet}] != "" } {
+# Temporarily provide f90compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f90compiler] {
+ set old_f90compiler [board_info $board f90compiler]
+ unset_board_info f90compiler
+} elseif [info exists old_f90compiler] {
+ unset old_f90compiler
+}
+set_board_info f90compiler gfortran44
+
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f90 quiet}]
+
+unset_board_info f90compiler
+if [info exists old_f90compiler] {
+ set_board_info f90compiler $old_f90compiler
+}
+
+if { $err != "" } {
untested "Couldn't compile ${srcfile}"
return -1
}
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/omp-step.exp
===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/omp-step.exp 2014-02-06 18:26:05.118083080 +0100
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/omp-step.exp 2014-02-06 18:26:06.691084763 +0100
@@ -15,7 +15,26 @@
set testfile "omp-step"
set srcfile ${testfile}.f90
-if { [prepare_for_testing $testfile.exp $testfile $srcfile {debug f90 additional_flags=-fopenmp}] } {
+
+# Temporarily provide f90compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f90compiler] {
+ set old_f90compiler [board_info $board f90compiler]
+ unset_board_info f90compiler
+} elseif [info exists old_f90compiler] {
+ unset old_f90compiler
+}
+set_board_info f90compiler gfortran44
+
+set err [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f90 additional_flags=-fopenmp}]
+
+unset_board_info f90compiler
+if [info exists old_f90compiler] {
+ set_board_info f90compiler $old_f90compiler
+}
+
+if $err {
return -1
}
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/derived-type.exp
===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/derived-type.exp 2014-02-06 18:26:05.119083082 +0100
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/derived-type.exp 2014-02-06 18:26:06.691084763 +0100
@@ -22,7 +22,25 @@ if { [skip_fortran_tests] } { return -1
standard_testfile .f90
-if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug f90}]} {
+# Temporarily provide f90compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f90compiler] {
+ set old_f90compiler [board_info $board f90compiler]
+ unset_board_info f90compiler
+} elseif [info exists old_f90compiler] {
+ unset old_f90compiler
+}
+set_board_info f90compiler gfortran44
+
+set err [prepare_for_testing $testfile.exp $testfile $srcfile {debug f90}]
+
+unset_board_info f90compiler
+if [info exists old_f90compiler] {
+ set_board_info f90compiler $old_f90compiler
+}
+
+if $err {
return -1
}
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/subarray.exp
===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/subarray.exp 2014-02-06 18:26:05.119083082 +0100
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/subarray.exp 2014-02-06 18:26:06.691084763 +0100
@@ -22,7 +22,25 @@ if { [skip_fortran_tests] } { return -1
standard_testfile .f
-if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug f90}]} {
+# Temporarily provide f90compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f90compiler] {
+ set old_f90compiler [board_info $board f90compiler]
+ unset_board_info f90compiler
+} elseif [info exists old_f90compiler] {
+ unset old_f90compiler
+}
+set_board_info f90compiler gfortran44
+
+set err [prepare_for_testing $testfile.exp $testfile $srcfile {debug f90}]
+
+unset_board_info f90compiler
+if [info exists old_f90compiler] {
+ set_board_info f90compiler $old_f90compiler
+}
+
+if $err {
return -1
}
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.threads/tls-sepdebug.exp
===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.threads/tls-sepdebug.exp 2014-02-06 18:26:05.119083082 +0100
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.threads/tls-sepdebug.exp 2014-02-06 18:26:06.691084763 +0100
@@ -32,7 +32,25 @@ set binshareddebugfile ${objdir}/${subdi
# FIXME: gcc dependency (-Wl,-soname).
-if { [gdb_compile_shlib "${srcdir}/${subdir}/${srcsharedfile}" "${binsharedfile}" [list debug additional_flags=-Wl,-soname=${binsharedbase}]] != "" } {
+# Temporarily provide compiler=gcc44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists compiler] {
+ set old_compiler [board_info $board compiler]
+ unset_board_info compiler
+} elseif [info exists old_compiler] {
+ unset old_compiler
+}
+set_board_info compiler gcc44
+
+set err [gdb_compile_shlib "${srcdir}/${subdir}/${srcsharedfile}" "${binsharedfile}" [list debug additional_flags=-Wl,-soname=${binsharedbase}]]
+
+unset_board_info compiler
+if [info exists old_compiler] {
+ set_board_info compiler $old_compiler
+}
+
+if { $err != "" } {
untested "Couldn't compile test library"
return -1
}
Index: gdb-7.6.90.20140127/gdb/testsuite/lib/prelink-support.exp
===================================================================
--- gdb-7.6.90.20140127.orig/gdb/testsuite/lib/prelink-support.exp 2014-02-06 18:26:06.692084767 +0100
+++ gdb-7.6.90.20140127/gdb/testsuite/lib/prelink-support.exp 2014-02-06 18:27:44.960190192 +0100
@@ -118,9 +118,31 @@ proc file_copy {src dest} {
proc build_executable_own_libs {testname executable sources options {interp ""} {dir ""}} {
global subdir
- if {[build_executable $testname $executable $sources $options] == -1} {
- return ""
+ # Temporarily provide compiler=gcc44 saving the original value around.
+ # RHEL-5 workaround of its:
+ # gcc: -rpath: linker input file unused because linking not done
+ # gcc: --dynamic-linker: linker input file unused because linking not done
+
+ set board [target_info name]
+ if [board_info $board exists compiler] {
+ set old_compiler [board_info $board compiler]
+ unset_board_info compiler
+ } elseif [info exists old_compiler] {
+ unset old_compiler
+ }
+ set_board_info compiler gcc44
+
+ set err [build_executable $testname $executable $sources $options]
+
+ unset_board_info compiler
+ if [info exists old_compiler] {
+ set_board_info compiler $old_compiler
}
+
+ if { $err == -1 } {
+ return ""
+ }
+
set binfile [standard_output_file ${executable}]
set ldd [gdb_find_ldd]

6
gdb-rpmlintrc Normal file
View File

@ -0,0 +1,6 @@
# This line is mandatory to access the configuration functions
from Config import *
# The testresult logs contain part of the build log and thus
# necessarily mention the buildroot
addFilter ("gdb-testresults.*file-contains-buildroot")

View File

@ -1,50 +0,0 @@
http://sourceware.org/ml/gdb-patches/2014-02/msg00158.html
Subject: [patch] testsuite: Fix "ERROR: no fileid for"
--azLHFNyN32YCQGCU
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Hi,
a35cfb4007cee8cb84106412cd17f4e12f13345b is the first bad commit
commit a35cfb4007cee8cb84106412cd17f4e12f13345b
Author: Maciej W. Rozycki <macro@codesourcery.com>
Date: Thu Oct 24 23:32:30 2013 +0100
$ runtest gdb.base/solib-disc.exp
Running ./gdb.base/solib-disc.exp ...
ERROR: no fileid for host1
[...]
Jan
--azLHFNyN32YCQGCU
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename="gdbfinish.patch"
gdb/testsuite/
2014-02-06 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix "ERROR: no fileid for" in the testsuite.
* lib/gdb.exp (gdb_finish): Check gdb_spawn_id.
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 533b81b..5c53cdf 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -3708,7 +3708,8 @@ proc gdb_finish { } {
global cleanfiles
# Give persistent gdbserver a chance to terminate before GDB is killed.
- if {[info exists gdbserver_reconnect_p] && $gdbserver_reconnect_p} {
+ if {[info exists gdbserver_reconnect_p] && $gdbserver_reconnect_p
+ && [info exists gdb_spawn_id]} {
send_gdb "kill\n";
gdb_expect 10 {
-re "y or n" {
--azLHFNyN32YCQGCU--

View File

@ -1,66 +1,67 @@
http://sourceware.org/ml/gdb-patches/2014-02/msg00179.html http://sourceware.org/ml/gdb-patches/2014-07/msg00274.html
Subject: [obv] testsuite: Fix i386-sse-stack-align.exp regression since GDB_PARALLEL Subject: [obv] Fix false argv0-symlink.exp FAIL running under a very long directory name
Hi,
--u3/rZRmxL6MmkK24 checked in as obvious:
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Hi Tom, Starting program: /home/jkratoch/redhat/gdb-test-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/gdb/testsuite/gdb.base/argv0-symlink-filelink ^M
$ make check//unix/-m32 RUNTESTFLAGS="gdb.arch/i386-sse-stack-align.exp GDB_PARALLEL=1"
[...] [...]
Running /home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp ... (gdb) print argv[0]^M
ERROR: (/home/jkratoch/redhat/gdb-clean/gdb/testsuite.unix.-m32/outputs/gdb.arch/i386-sse-stack-align/i386-sse-stack-align) No such file or directory $1 = 0x7fffffffda39 "/home/jkratoch/redhat/gdb-test-", 'f' <repeats 169 times>...^M
(gdb) FAIL: gdb.base/argv0-symlink.exp: kept file symbolic link name
after "set print repeats 10000":
Checked in. print argv[0]^M
$1 = 0x7fffffffda39 "/home/jkratoch/redhat/gdb-test-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"...^M
(gdb) FAIL: gdb.base/argv0-symlink.exp: kept file symbolic link name
after "set print elements 10000":
Jan print argv[0]^M
$1 = 0x7fffffffda39 "/home/jkratoch/redhat/gdb-test-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/gdb/testsuite/gdb.base/argv0-symlink-filelink"^M
(gdb) PASS: gdb.base/argv0-symlink.exp: kept file symbolic link name
--u3/rZRmxL6MmkK24 commit 218c2655603748b844dcaf103e34fd14d8ee8aef
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename=1
commit 3c77faf33dc4c7bb693f05f44077ed687e9f8217
Author: Jan Kratochvil <jan.kratochvil@redhat.com> Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 6 23:14:20 2014 +0100 Date: Fri Jul 11 17:26:42 2014 +0200
Fix i386-sse-stack-align.exp regression since GDB_PARALLEL.
gdb/testsuite/
2014-02-06 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix i386-sse-stack-align.exp regression since GDB_PARALLEL.
* gdb.arch/i386-sse-stack-align.exp: Use standard_output_file.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 8c846b8..13ccaf3 100644 index 74f7bce..253eeeb 100644
### a/gdb/testsuite/ChangeLog ### a/gdb/testsuite/ChangeLog
### b/gdb/testsuite/ChangeLog ### b/gdb/testsuite/ChangeLog
## -1,3 +1,8 @@ ## -1,3 +1,9 @@
+2014-02-06 Jan Kratochvil <jan.kratochvil@redhat.com> +2014-07-11 Jan Kratochvil <jan.kratochvil@redhat.com>
+ +
+ Fix i386-sse-stack-align.exp regression since GDB_PARALLEL. + Fix false FAIL running under a very long directory name.
+ * gdb.arch/i386-sse-stack-align.exp: Use standard_output_file. + * gdb.base/argv0-symlink.exp: Add "set print repeats 10000"
+ and "set print elements 10000". Twice.
+ +
2014-02-06 Doug Evans <xdje42@gmail.com> 2014-07-11 Yao Qi <yao@codesourcery.com>
* gdb.python/py-breakpoint.exp (test_bkpt_eval_funcs): Update expected * gdb.base/exprs.exp: "set print symbol off".
diff --git a/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp b/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp diff --git a/gdb/testsuite/gdb.base/argv0-symlink.exp b/gdb/testsuite/gdb.base/argv0-symlink.exp
index b5a7e1e..462df1f 100644 index 0e0202d..d849b4c 100644
--- a/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp --- a/gdb/testsuite/gdb.base/argv0-symlink.exp
+++ b/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp +++ b/gdb/testsuite/gdb.base/argv0-symlink.exp
@@ -22,7 +22,7 @@ set testfile "i386-sse-stack-align" @@ -36,6 +36,9 @@ if ![runto_main] {
set srcfile ${testfile}.S return -1
set csrcfile ${testfile}.c }
set executable ${testfile}
-set binfile ${objdir}/${subdir}/${executable}
+set binfile [standard_output_file ${executable}]
set opts {}
if [info exists COMPILE] { +gdb_test_no_output "set print repeats 10000"
+gdb_test_no_output "set print elements 10000"
+
gdb_test {print argv[0]} "/$filelink\"" $test
--u3/rZRmxL6MmkK24-- # For a link named /PATH/TO/DIR/LINK, we want to check the output
@@ -67,6 +70,9 @@ if ![runto_main] {
return -1
}
+gdb_test_no_output "set print repeats 10000"
+gdb_test_no_output "set print elements 10000"
+
# gdbserver does not have this issue.
if ![is_remote target] {
setup_kfail "*-*-*" gdb/15934

View File

@ -0,0 +1,42 @@
Re: [PATCH 04/23] vla: make dynamic fortran arrays functional.
https://sourceware.org/ml/gdb-patches/2014-06/msg00570.html
Index: gdb-7.7.90.20140627/gdb/valarith.c
===================================================================
--- gdb-7.7.90.20140627.orig/gdb/valarith.c 2014-07-07 20:44:03.136394525 +0200
+++ gdb-7.7.90.20140627/gdb/valarith.c 2014-07-07 20:45:41.588536459 +0200
@@ -195,10 +195,17 @@ value_subscripted_rvalue (struct value *
struct type *array_type = check_typedef (value_type (array));
struct type *elt_type = check_typedef (TYPE_TARGET_TYPE (array_type));
unsigned int elt_size = TYPE_LENGTH (elt_type);
- unsigned int elt_offs = longest_to_int (index - lowerbound);
+ unsigned int elt_offs;
LONGEST elt_stride = TYPE_BYTE_STRIDE (TYPE_INDEX_TYPE (array_type));
struct value *v;
+ if (TYPE_NOT_ASSOCIATED (array_type))
+ error (_("no such vector element because not associated"));
+ if (TYPE_NOT_ALLOCATED (array_type))
+ error (_("no such vector element because not allocated"));
+
+ elt_offs = longest_to_int (index - lowerbound);
+
if (elt_stride > 0)
elt_offs *= elt_stride;
else if (elt_stride < 0)
@@ -212,14 +219,7 @@ value_subscripted_rvalue (struct value *
if (index < lowerbound || (!TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (array_type)
&& elt_offs >= TYPE_LENGTH (array_type)))
- {
- if (TYPE_NOT_ASSOCIATED (array_type))
- error (_("no such vector element because not associated"));
- else if (TYPE_NOT_ALLOCATED (array_type))
- error (_("no such vector element because not allocated"));
- else
- error (_("no such vector element"));
- }
+ error (_("no such vector element"));
if (VALUE_LVAL (array) == lval_memory && value_lazy (array))
v = allocate_value_lazy (elt_type);

View File

@ -0,0 +1,165 @@
http://sourceware.org/ml/gdb-patches/2014-08/msg00025.html
Subject: [patch 1/2] Re: Crash regression(?) printing Fortran strings in bt [Re: [V2 00/23] Fortran dynamic array support]
--FCuugMFkClbJLl1L
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Fri, 01 Aug 2014 09:20:19 +0200, Keven Boell wrote:
> I just tried it on Fedora 20 i686. Applied the patch, you mentioned, on top of
> the Fortran VLA series and executed your dynamic-other-frame test. Everything
> is working fine here, I cannot reproduce the crash.
I have it reproducible on Fedora 20 i686 with plain
CFLAGS=-g ./configure;make;cd gdb/testsuite;make site.exp;runtest gdb.fortran/dynamic-other-frame.exp
Besides that I have updated the testcase with
gdb_test_no_output "set print frame-arguments all"
so that there is no longer needed the patch:
[patch] Display Fortran strings in backtraces
https://sourceware.org/ml/gdb-patches/2014-07/msg00709.html
The fix below has no regressions for me. Unfortunately I do not see why you
cannot reproduce it.
Thanks,
Jan
--FCuugMFkClbJLl1L
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename="vlastringonly.patch"
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index 53cae2c..cf7ac26 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -1659,6 +1659,7 @@ is_dynamic_type_internal (struct type *type, int top_level)
return !has_static_range (TYPE_RANGE_DATA (type));
case TYPE_CODE_ARRAY:
+ case TYPE_CODE_STRING:
{
gdb_assert (TYPE_NFIELDS (type) == 1);
diff --git a/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90 b/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90
new file mode 100644
index 0000000..261ce17
--- /dev/null
+++ b/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90
@@ -0,0 +1,24 @@
+! Copyright 2010 Free Software Foundation, Inc.
+!
+! This program is free software; you can redistribute it and/or modify
+! it under the terms of the GNU General Public License as published by
+! the Free Software Foundation; either version 2 of the License, or
+! (at your option) any later version.
+!
+! This program is distributed in the hope that it will be useful,
+! but WITHOUT ANY WARRANTY; without even the implied warranty of
+! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+! GNU General Public License for more details.
+!
+! 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.
+!
+! Ihis file is the Fortran source file for dynamic.exp.
+! Original file written by Jakub Jelinek <jakub@redhat.com>.
+! Modified for the GDB testcase by Jan Kratochvil <jan.kratochvil@redhat.com>.
+
+subroutine bar
+ real :: dummy
+ dummy = 1
+end subroutine bar
diff --git a/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp b/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp
new file mode 100644
index 0000000..570a28c
--- /dev/null
+++ b/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp
@@ -0,0 +1,39 @@
+# Copyright 2010 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# 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.
+
+set testfile "dynamic-other-frame"
+set srcfile1 ${testfile}.f90
+set srcfile2 ${testfile}-stub.f90
+set objfile2 [standard_output_file ${testfile}-stub.o]
+set executable ${testfile}
+set binfile [standard_output_file ${executable}]
+
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${objfile2}" object {f90}] != ""
+ || [gdb_compile "${srcdir}/${subdir}/${srcfile1} ${objfile2}" "${binfile}" executable {debug f90}] != "" } {
+ untested "Couldn't compile ${srcfile1} or ${srcfile2}"
+ return -1
+}
+
+clean_restart ${executable}
+
+gdb_test_no_output "set print frame-arguments all"
+
+if ![runto bar_] then {
+ perror "couldn't run to bar_"
+ continue
+}
+
+gdb_test "bt" {foo \(string='hello'.*}
diff --git a/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90 b/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90
new file mode 100644
index 0000000..2bc637d
--- /dev/null
+++ b/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90
@@ -0,0 +1,36 @@
+! Copyright 2010 Free Software Foundation, Inc.
+!
+! This program is free software; you can redistribute it and/or modify
+! it under the terms of the GNU General Public License as published by
+! the Free Software Foundation; either version 2 of the License, or
+! (at your option) any later version.
+!
+! This program is distributed in the hope that it will be useful,
+! but WITHOUT ANY WARRANTY; without even the implied warranty of
+! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+! GNU General Public License for more details.
+!
+! 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.
+!
+! Ihis file is the Fortran source file for dynamic.exp.
+! Original file written by Jakub Jelinek <jakub@redhat.com>.
+! Modified for the GDB testcase by Jan Kratochvil <jan.kratochvil@redhat.com>.
+
+subroutine foo (string)
+ interface
+ subroutine bar
+ end subroutine
+ end interface
+ character string*(*)
+ call bar ! stop-here
+end subroutine foo
+program test
+ interface
+ subroutine foo (string)
+ character string*(*)
+ end subroutine
+ end interface
+ call foo ('hello')
+end
--FCuugMFkClbJLl1L--

3235
gdb-vla-intel.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,80 @@
-------------------------------------------------------------------
Wed Aug 13 07:54:35 UTC 2014 - rguenther@suse.com
- Enable running the testsuite and store results in a gdb-testresults
package.
- Add gdb-rpmlintrc to filter errors about the buildroot mentioned
in testresult logs.
-------------------------------------------------------------------
Fri Aug 8 12:22:24 UTC 2014 - rguenther@suse.com
- Use patchlist.pl to merge with gdb-7.8-16.fc22, a rebase to FSF GDB 4.8.
The GDB 4.8 features are:
* Guile scripting support.
* Python scripting enhancements.
* New commands:
** guile
** guile-repl
** info auto-load guile-scripts [REGEXP]
* New options:
** maint ada set ignore-descriptive-types (on|off)
** maint set target-async (on|off)
** set|show auto-load guile-scripts (on|off)
** set|show auto-connect-native-target
** set|show guile print-stack (none|message|full)
** set|show mi-async (on|off)
** set|show print symbol-loading (off|brief|full)
** set|show record btrace replay-memory-access (read-only|read-write)
* Remote Protocol:
** The qXfer:btrace:read packet supports a new annex 'delta'.
* GDB/MI:
** A new option "-gdb-set mi-async" replaces "-gdb-set target-async".
* New target configurations:
** PowerPC64 GNU/Linux little-endian
* btrace enhancements:
** The btrace record target now supports the 'record goto' command.
** The btrace record target supports limited reverse execution and
replay.
* ISO C99 variable length automatic arrays support.
* It is no longer required to "set target-async on" in order to use
background execution commands (e.g., "c&", "s&", etc.).
* "catch syscall" now implemented on s390*-linux* targets.
* The "compare-sections" command now works on all targets.
* The "target native" command now connects to the native target, and
can be used to launch native programs, even if "set
auto-connect-native-target" is set to off.
* More robust backtraces. [bnc#891040]
- Obsoletes patch gdb-7.7-bnc877566.patch
- Obsoletes patch gdb-fix-s390-build.patch
- Obsoletes patch gdb-ppc64le.patch
- Drop gdb-ia64-tdep.patch, disable building the IA64 target
- Modifies gdb-6.3-test-pie-20050107.patch,
gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch,
gdb-6.6-buildid-locate-core-as-arg.patch,
gdb-6.6-buildid-locate-rpm.patch, gdb-6.6-buildid-locate.patch,
gdb-6.6-scheduler_locking-step-is-default.patch,
gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch,
gdb-6.8-attach-signalled-detach-stopped.patch,
gdb-6.8-quit-never-aborts.patch,
gdb-archer-pie-addons-keep-disabled.patch, gdb-archer-pie-addons.patch,
gdb-archer.patch, gdb-attach-fail-reasons-5of5.patch,
gdb-glibc-strstr-workaround.patch, gdb-rhbz795424-bitpos-20of25.patch,
gdb-rhbz795424-bitpos-21of25.patch, gdb-rhbz795424-bitpos-22of25.patch,
gdb-rhbz795424-bitpos-23of25.patch, gdb-rhbz795424-bitpos-25of25.patch,
gdb-upstream.patch
- Adds gdb-archer-vla-tests.patch, gdb-bz533176-fortran-omp-step.patch,
gdb-bz541866-rwatch-before-run.patch
gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch,
gdb-babeltrace-configure.patch, gdb-btrobust.patch,
gdb-dts-rhel6-python-compat.patch, gdb-fortran-frame-string.patch,
gdb-gnat-dwarf-crash-3of3.patch, gdb-python-completer-1of2.patch,
gdb-python-completer-2of2.patch, gdb-readline-6.3.5.patch,
gdb-vla-intel-04of23-fix.patch, gdb-vla-intel-stringbt-fix.patch,
gdb-vla-intel.patch
- Removes gdb-rhel5-gcc44.patch, gdb-6.6-bfd-vdso8k.patch,
gdb-testsuite-nohostid.patch, gdb-python-stacksmash.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Jun 26 14:00:26 UTC 2014 - rguenther@suse.com Thu Jun 26 14:00:26 UTC 2014 - rguenther@suse.com

286
gdb.spec
View File

@ -17,6 +17,8 @@
# #
%define _with_testsuite 1
Summary: A GNU source-level debugger for C, C++, Fortran and other languages Summary: A GNU source-level debugger for C, C++, Fortran and other languages
License: GPL-3.0+ and GPL-3.0-with-GCC-exception and LGPL-2.1+ and LGPL-3.0+ License: GPL-3.0+ and GPL-3.0-with-GCC-exception and LGPL-2.1+ and LGPL-3.0+
Group: Development/Tools/Debuggers Group: Development/Tools/Debuggers
@ -25,7 +27,7 @@ Name: gdb
%global snap 20130731 %global snap 20130731
# See timestamp of source gnulib installed into gdb/gnulib/ . # See timestamp of source gnulib installed into gdb/gnulib/ .
%global snapgnulib 20121213 %global snapgnulib 20121213
Version: 7.7 Version: 7.8
Release: 0 Release: 0
# The release always contains a leading reserved number, start it at 1. # The release always contains a leading reserved number, start it at 1.
@ -86,122 +88,128 @@ Source6: gdbtui
Source10: patchlist.pl Source10: patchlist.pl
Source11: patchname_get.sh Source11: patchname_get.sh
Source12: baselibs.conf Source12: baselibs.conf
Source13: gdb-rpmlintrc
#Fedora Packages begin #Fedora Packages begin
Patch1: gdb-6.3-rh-testversion-20041202.patch Patch1: gdb-6.3-rh-testversion-20041202.patch
Patch2: gdb-archer.patch Patch2: gdb-archer.patch
Patch3: gdb-upstream.patch Patch3: gdb-upstream.patch
Patch4: gdb-6.3-rh-dummykfail-20041202.patch Patch4: gdb-vla-intel.patch
Patch5: gdb-6.3-ppc64syscall-20040622.patch Patch5: gdb-vla-intel-04of23-fix.patch
Patch6: gdb-6.3-ppc64displaysymbol-20041124.patch Patch6: gdb-vla-intel-stringbt-fix.patch
Patch7: gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch Patch7: gdb-6.3-rh-dummykfail-20041202.patch
Patch8: gdb-6.3-gstack-20050411.patch Patch8: gdb-6.3-ppc64syscall-20040622.patch
Patch9: gdb-6.3-test-pie-20050107.patch Patch9: gdb-6.3-ppc64displaysymbol-20041124.patch
Patch10: gdb-6.3-test-self-20050110.patch Patch10: gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch
Patch11: gdb-6.3-test-dtorfix-20050121.patch Patch11: gdb-6.3-gstack-20050411.patch
Patch12: gdb-6.3-test-movedir-20050125.patch Patch12: gdb-6.3-test-pie-20050107.patch
Patch13: gdb-6.3-threaded-watchpoints2-20050225.patch Patch13: gdb-6.3-test-self-20050110.patch
Patch14: gdb-6.3-inferior-notification-20050721.patch Patch14: gdb-6.3-test-dtorfix-20050121.patch
Patch15: gdb-6.3-inheritancetest-20050726.patch Patch15: gdb-6.3-test-movedir-20050125.patch
Patch16: gdb-6.3-readnever-20050907.patch Patch16: gdb-6.3-threaded-watchpoints2-20050225.patch
Patch17: gdb-6.5-bz203661-emit-relocs.patch Patch17: gdb-6.3-inferior-notification-20050721.patch
Patch18: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch Patch18: gdb-6.3-inheritancetest-20050726.patch
Patch19: gdb-6.5-sharedlibrary-path.patch Patch19: gdb-6.3-readnever-20050907.patch
Patch20: gdb-6.5-bz190810-gdbserver-arch-advice.patch Patch20: gdb-6.5-bz203661-emit-relocs.patch
Patch21: gdb-6.5-BEA-testsuite.patch Patch21: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
Patch22: gdb-6.5-last-address-space-byte-test.patch Patch22: gdb-6.5-sharedlibrary-path.patch
Patch23: gdb-6.5-readline-long-line-crash-test.patch Patch23: gdb-6.5-bz190810-gdbserver-arch-advice.patch
Patch24: gdb-6.5-bz216711-clone-is-outermost.patch Patch24: gdb-6.5-BEA-testsuite.patch
Patch25: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch Patch25: gdb-6.5-last-address-space-byte-test.patch
Patch26: gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch Patch26: gdb-6.5-readline-long-line-crash-test.patch
Patch27: gdb-6.5-bz109921-DW_AT_decl_file-test.patch Patch27: gdb-6.5-bz216711-clone-is-outermost.patch
Patch28: gdb-6.3-bz140532-ppc-unwinding-test.patch Patch28: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
Patch29: gdb-6.3-bz202689-exec-from-pthread-test.patch Patch29: gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
Patch30: gdb-6.6-bz230000-power6-disassembly-test.patch Patch30: gdb-6.5-bz109921-DW_AT_decl_file-test.patch
Patch31: gdb-6.3-bz231832-obstack-2gb.patch Patch31: gdb-6.3-bz140532-ppc-unwinding-test.patch
Patch32: gdb-6.6-bz229517-gcore-without-terminal.patch Patch32: gdb-6.3-bz202689-exec-from-pthread-test.patch
Patch33: gdb-6.6-bz235197-fork-detach-info.patch Patch33: gdb-6.6-bz230000-power6-disassembly-test.patch
Patch34: gdb-6.6-testsuite-timeouts.patch Patch34: gdb-6.3-bz231832-obstack-2gb.patch
Patch35: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch Patch35: gdb-6.6-bz229517-gcore-without-terminal.patch
Patch36: gdb-6.6-scheduler_locking-step-is-default.patch Patch36: gdb-6.6-bz235197-fork-detach-info.patch
Patch37: gdb-6.3-attach-see-vdso-test.patch Patch37: gdb-6.6-testsuite-timeouts.patch
Patch38: gdb-6.5-bz243845-stale-testing-zombie-test.patch Patch38: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
Patch39: gdb-6.6-buildid-locate.patch Patch39: gdb-6.6-scheduler_locking-step-is-default.patch
Patch40: gdb-6.6-buildid-locate-solib-missing-ids.patch Patch40: gdb-6.3-attach-see-vdso-test.patch
Patch41: gdb-6.6-buildid-locate-rpm.patch Patch41: gdb-6.5-bz243845-stale-testing-zombie-test.patch
Patch42: gdb-6.6-bfd-vdso8k.patch Patch42: gdb-6.6-buildid-locate.patch
Patch43: gdb-6.7-charsign-test.patch Patch43: gdb-6.6-buildid-locate-solib-missing-ids.patch
Patch44: gdb-6.7-ppc-clobbered-registers-O2-test.patch Patch44: gdb-6.6-buildid-locate-rpm.patch
Patch45: gdb-6.5-ia64-libunwind-leak-test.patch Patch45: gdb-6.7-charsign-test.patch
Patch46: gdb-6.5-missed-trap-on-step-test.patch Patch46: gdb-6.7-ppc-clobbered-registers-O2-test.patch
Patch47: gdb-6.7-bz426600-DW_TAG_interface_type-test.patch Patch47: gdb-6.5-ia64-libunwind-leak-test.patch
Patch48: gdb-6.5-gcore-buffer-limit-test.patch Patch48: gdb-6.5-missed-trap-on-step-test.patch
Patch49: gdb-6.6-threads-static-test.patch Patch49: gdb-6.7-bz426600-DW_TAG_interface_type-test.patch
Patch50: gdb-6.3-mapping-zero-inode-test.patch Patch50: gdb-6.5-gcore-buffer-limit-test.patch
Patch51: gdb-6.3-focus-cmd-prev-test.patch Patch51: gdb-6.6-threads-static-test.patch
Patch52: gdb-6.8-bz442765-threaded-exec-test.patch Patch52: gdb-6.3-mapping-zero-inode-test.patch
Patch53: gdb-6.8-sparc64-silence-memcpy-check.patch Patch53: gdb-6.3-focus-cmd-prev-test.patch
Patch54: gdb-6.5-section-num-fixup-test.patch Patch54: gdb-6.8-bz442765-threaded-exec-test.patch
Patch55: gdb-6.8-bz436037-reg-no-longer-active.patch Patch55: gdb-6.8-sparc64-silence-memcpy-check.patch
Patch56: gdb-6.8-watchpoint-conditionals-test.patch Patch56: gdb-6.5-section-num-fixup-test.patch
Patch57: gdb-6.8-bz466901-backtrace-full-prelinked.patch Patch57: gdb-6.8-bz436037-reg-no-longer-active.patch
Patch58: gdb-6.8-bz457187-largefile-test.patch Patch58: gdb-6.8-watchpoint-conditionals-test.patch
Patch59: gdb-simultaneous-step-resume-breakpoint-test.patch Patch59: gdb-6.8-bz466901-backtrace-full-prelinked.patch
Patch60: gdb-core-open-vdso-warning.patch Patch60: gdb-6.8-bz457187-largefile-test.patch
Patch61: gdb-x86_64-i386-syscall-restart.patch Patch61: gdb-simultaneous-step-resume-breakpoint-test.patch
Patch62: gdb-bz533176-fortran-omp-step.patch Patch62: gdb-core-open-vdso-warning.patch
Patch63: gdb-follow-child-stale-parent.patch Patch63: gdb-x86_64-i386-syscall-restart.patch
Patch64: gdb-ccache-workaround.patch Patch64: gdb-bz533176-fortran-omp-step.patch
Patch65: gdb-archer-pie-addons.patch Patch65: gdb-follow-child-stale-parent.patch
Patch66: gdb-archer-pie-addons-keep-disabled.patch Patch66: gdb-ccache-workaround.patch
Patch67: gdb-lineno-makeup-test.patch Patch67: gdb-archer-pie-addons.patch
Patch68: gdb-ppc-power7-test.patch Patch68: gdb-archer-pie-addons-keep-disabled.patch
Patch69: gdb-bz541866-rwatch-before-run.patch Patch69: gdb-lineno-makeup-test.patch
Patch70: gdb-moribund-utrace-workaround.patch Patch70: gdb-ppc-power7-test.patch
Patch71: gdb-archer-next-over-throw-cxx-exec.patch Patch71: gdb-bz541866-rwatch-before-run.patch
Patch72: gdb-bz601887-dwarf4-rh-test.patch Patch72: gdb-moribund-utrace-workaround.patch
Patch73: gdb-6.6-buildid-locate-core-as-arg.patch Patch73: gdb-archer-next-over-throw-cxx-exec.patch
Patch74: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch Patch74: gdb-bz601887-dwarf4-rh-test.patch
Patch75: gdb-test-bt-cfi-without-die.patch Patch75: gdb-6.6-buildid-locate-core-as-arg.patch
Patch76: gdb-gdb-add-index-script.patch Patch76: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
Patch77: gdb-bz568248-oom-is-error.patch Patch77: gdb-test-bt-cfi-without-die.patch
Patch78: gdb-bz634108-solib_address.patch Patch78: gdb-gdb-add-index-script.patch
Patch79: gdb-test-pid0-core.patch Patch79: gdb-bz568248-oom-is-error.patch
Patch80: gdb-test-dw2-aranges.patch Patch80: gdb-bz634108-solib_address.patch
Patch81: gdb-test-expr-cumulative-archer.patch Patch81: gdb-test-pid0-core.patch
Patch82: gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch Patch82: gdb-test-dw2-aranges.patch
Patch83: gdb-glibc-vdso-workaround.patch Patch83: gdb-test-expr-cumulative-archer.patch
Patch84: gdb-runtest-pie-override.patch Patch84: gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
Patch85: gdb-attach-fail-reasons-5of5.patch Patch85: gdb-glibc-vdso-workaround.patch
Patch86: gdb-stale-frame_info.patch Patch86: gdb-runtest-pie-override.patch
Patch87: gdb-glibc-strstr-workaround.patch Patch87: gdb-attach-fail-reasons-5of5.patch
Patch88: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch Patch88: gdb-stale-frame_info.patch
Patch89: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch Patch89: gdb-glibc-strstr-workaround.patch
Patch90: gdb-rhbz795424-bitpos-20of25.patch Patch90: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
Patch91: gdb-rhbz795424-bitpos-21of25.patch Patch91: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
Patch92: gdb-rhbz795424-bitpos-22of25.patch Patch92: gdb-rhbz795424-bitpos-20of25.patch
Patch93: gdb-rhbz795424-bitpos-23of25.patch Patch93: gdb-rhbz795424-bitpos-21of25.patch
Patch94: gdb-rhbz795424-bitpos-25of25.patch Patch94: gdb-rhbz795424-bitpos-22of25.patch
Patch95: gdb-rhbz795424-bitpos-25of25-test.patch Patch95: gdb-rhbz795424-bitpos-23of25.patch
Patch96: gdb-rhbz795424-bitpos-lazyvalue.patch Patch96: gdb-rhbz795424-bitpos-25of25.patch
Patch97: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch Patch97: gdb-rhbz795424-bitpos-25of25-test.patch
Patch98: gdb-enable-count-crash.patch Patch98: gdb-rhbz795424-bitpos-lazyvalue.patch
Patch99: gdb-testsuite-nohostid.patch Patch99: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
Patch100: gdb-python-stacksmash.patch Patch100: gdb-enable-count-crash.patch
Patch101: gdb-rhel5-gcc44.patch Patch101: gdb-gnat-dwarf-crash-3of3.patch
Patch102: gdb-6.6-buildid-locate-rpm-scl.patch Patch102: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
Patch103: gdb-readline62-ask-more-rh.patch Patch103: gdb-archer-vla-tests.patch
Patch104: gdb-6.8-attach-signalled-detach-stopped.patch Patch104: gdb-readline-6.3.5.patch
Patch105: gdb-6.8-quit-never-aborts.patch Patch105: gdb-btrobust.patch
Patch106: gdb-rhel5-compat.patch Patch106: gdb-python-completer-1of2.patch
Patch107: gdb-python-completer-2of2.patch
Patch108: gdb-fortran-frame-string.patch
Patch109: gdb-babeltrace-configure.patch
Patch110: gdb-dts-rhel6-python-compat.patch
Patch111: gdb-6.6-buildid-locate-rpm-scl.patch
Patch112: gdb-readline62-ask-more-rh.patch
Patch113: gdb-6.8-attach-signalled-detach-stopped.patch
Patch114: gdb-6.8-quit-never-aborts.patch
Patch115: gdb-rhel5-compat.patch
#Fedora Packages end #Fedora Packages end
# Upstream patch to fix gcc -Werror # Upstream patch to fix gcc -Werror
Patch1002: gdb-6.6-buildid-locate-rpm-suse.patch Patch1002: gdb-6.6-buildid-locate-rpm-suse.patch
Patch1004: gdb-ia64-tdep.patch
Patch1006: gdb-ppc64le.patch
Patch1007: gdb-fix-s390-build.patch
Patch1008: gdb-7.7-bnc877566.patch
BuildRequires: bison BuildRequires: bison
BuildRequires: flex BuildRequires: flex
@ -261,12 +269,10 @@ BuildRequires: gcc-objc
%ifarch %{ix86} x86_64 ia64 ppc alpha %ifarch %{ix86} x86_64 ia64 ppc alpha
BuildRequires: gcc-ada BuildRequires: gcc-ada
%endif %endif
BuildRequires: glibc-devel-32bit
%if 0%{suse_version} > 1120 %if 0%{suse_version} > 1120
%ifarch x86_64 ppc64 s390x
BuildRequires: gcc-c++-32bit BuildRequires: gcc-c++-32bit
%endif %endif
%if 0%{!?rhel:1} || 0%{?rhel} > 6
BuildRequires: xz
%endif %endif
%endif # 0%{?_with_testsuite:1} %endif # 0%{?_with_testsuite:1}
@ -313,6 +319,13 @@ and printing their data.
This package provides INFO, HTML and PDF user manual for GDB. This package provides INFO, HTML and PDF user manual for GDB.
%package testresults
Summary: GDB testsuite results
License: SUSE-Public-Domain
Group: Development/Languages/C and C++
%description testresults
Results from running the GDB testsuite.
%prep %prep
%setup -q -n %{gdb_src} %setup -q -n %{gdb_src}
@ -431,25 +444,30 @@ find -name "*.info*"|xargs rm -f
%patch98 -p1 %patch98 -p1
%patch99 -p1 %patch99 -p1
%patch100 -p1 %patch100 -p1
#%%patch101 -p1 %patch101 -p1
#%%patch101 -p1 -R %patch102 -p1
#%%patch102 -p1 %patch103 -p1
#%%patch102 -p1 -R %patch104 -p1
#%%patch103 -p1 %patch105 -p1
#%%patch103 -p1 -R %patch106 -p1
#%%patch104 -p1 %patch107 -p1
#%%patch104 -p1 -R %patch108 -p1
#%%patch105 -p1 %patch109 -p1
#%%patch105 -p1 -R %patch110 -p1
#%%patch106 -p1 %patch110 -p1 -R
#%%patch106 -p1 -R %patch111 -p1
%patch111 -p1 -R
%patch112 -p1
%patch112 -p1 -R
%patch113 -p1
%patch114 -p1
%patch115 -p1
%patch115 -p1 -R
%patch114 -p1 -R
%patch113 -p1 -R
#Fedora patching end #Fedora patching end
%patch1002 -p1 %patch1002 -p1
%patch1004 -p1
%patch1006 -p1
%patch1007 -p1
%patch1008 -p1
find -name "*.orig" | xargs rm -f find -name "*.orig" | xargs rm -f
! find -name "*.rej" # Should not happen. ! find -name "*.rej" # Should not happen.
@ -492,7 +510,8 @@ fi
%else %else
%define build_multitarget 0 %define build_multitarget 0
%endif %endif
%define target_list i686 ia64 powerpc powerpc64 powerpc64le s390 s390x x86_64 arm aarch64 m68k # For now disable ia64 until ia64-tdep.c is fixed
%define target_list i686 powerpc powerpc64 powerpc64le s390 s390x x86_64 arm aarch64 m68k
%define DIST %(echo '%distribution' | sed 's, /.*,,') %define DIST %(echo '%distribution' | sed 's, /.*,,')
%if %build_multitarget %if %build_multitarget
EXTRA_TARGETS="%(printf ,%%s-suse-linux %target_list)" EXTRA_TARGETS="%(printf ,%%s-suse-linux %target_list)"
@ -710,8 +729,8 @@ do
done done
done done
# `tar | bzip2 | uuencode' may have some piping problems in Brew. # `tar | bzip2 | uuencode' may have some piping problems in Brew.
tar cjf gdb-%{_target_platform}.tar.bz2 gdb-%{_target_platform}*.{sum,log} #tar cjf gdb-%{_target_platform}.tar.bz2 gdb-%{_target_platform}*.{sum,log}
uuencode gdb-%{_target_platform}.tar.bz2 gdb-%{_target_platform}.tar.bz2 #uuencode gdb-%{_target_platform}.tar.bz2 gdb-%{_target_platform}.tar.bz2
cd ../.. cd ../..
echo ====================TESTING END===================== echo ====================TESTING END=====================
%endif %endif
@ -889,6 +908,13 @@ fi
%endif %endif
%endif %endif
%if 0%{?_with_testsuite:1}
%files testresults
%defattr(-,root,root)
%doc %{gdb_build}/gdb/gdb-*.sum
%doc %{gdb_build}/gdb/gdb-*.log
%endif
# don't include the files in include, they are part of binutils # don't include the files in include, they are part of binutils
%if %{suse_version} > 1010 %if %{suse_version} > 1010