- Rebase to gdb 7.99.90 (prerelease of gdb 8)

- Updated libstdc++ pretty printers to
  gdb-libstdc++-v3-python-6.3.1-20170212.tar.bz2.
- Added patches from fedora:
  gdb-release-werror.patch
  gdb-rhbz1398387-tab-crash-test.patch

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gdb?expand=0&rev=159
This commit is contained in:
Michael Matz 2017-05-01 01:04:39 +00:00 committed by Git OBS Bridge
parent a77728baf0
commit 50918c72d5
40 changed files with 2510 additions and 1940 deletions

View File

@ -256,8 +256,8 @@ diff -u -ruNp gdb-6.3-unpatched/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.exp
+ fail "powerpc arch test" + fail "powerpc arch test"
+ return + return
+} +}
+set objfile2 ${objdir}/${subdir}/${testfile}-asm.o +set objfile2 [standard_output_file ${testfile}-asm.o]
+set binfile ${objdir}/${subdir}/${testfile} +set binfile [standard_output_file ${testfile}]
+ +
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile1} ${srcdir}/${subdir}/${srcfile2}" ${binfile} executable $flags] != ""} { +if { [gdb_compile "${srcdir}/${subdir}/${srcfile1} ${srcdir}/${subdir}/${srcfile2}" ${binfile} executable $flags] != ""} {
+ return -1 + return -1

View File

@ -1,6 +1,8 @@
--- /dev/null 2008-03-23 13:41:46.072650180 +0100 Index: gdb-7.12.50.20170226/gdb/testsuite/gdb.base/focus-cmd-prev.exp
+++ gdb-6.3/gdb/testsuite/gdb.base/focus-cmd-prev.exp 2008-03-23 23:46:45.000000000 +0100 ===================================================================
@@ -0,0 +1,25 @@ --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12.50.20170226/gdb/testsuite/gdb.base/focus-cmd-prev.exp 2017-03-02 09:39:14.508461085 +0100
@@ -0,0 +1,40 @@
+# Copyright 2008 Free Software Foundation, Inc. +# Copyright 2008 Free Software Foundation, Inc.
+ +
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -24,5 +26,20 @@
+gdb_exit +gdb_exit
+gdb_start +gdb_start
+ +
+gdb_test "focus cmd" +# Do not use gdb_test or \r\n there since:
+gdb_test "focus prev" +# commit d7e747318f4d04af033f16325f9b6d74f67079ec
+# Eliminate make_cleanup_ui_file_delete / make ui_file a class hierarchy
+
+set test "focus cmd"
+gdb_test_multiple $test $test {
+ -re "$gdb_prompt $" {
+ pass $test
+ }
+}
+
+set test "focus prev"
+gdb_test_multiple $test $test {
+ -re "$gdb_prompt $" {
+ pass $test
+ }
+}

View File

@ -62,10 +62,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.exp
+} +}
+set timeout $oldtimeout +set timeout $oldtimeout
+ +
+set escapedfilename [string_to_regexp ${objdir}/${subdir}/gcore-shmid0.test] +set escapedfilename [string_to_regexp [standard_output_file gcore-shmid0.test]]
+ +
+set test "save a corefile" +set test "save a corefile"
+gdb_test_multiple "gcore ${objdir}/${subdir}/gcore-shmid0.test" $test { +gdb_test_multiple "gcore [standard_output_file gcore-shmid0.test]" $test {
+ -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" { + -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
+ pass $test + pass $test
+ } + }
@ -80,7 +80,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.exp
+gdb_continue_to_end "finish" +gdb_continue_to_end "finish"
+ +
+set test "core-file command" +set test "core-file command"
+gdb_test_multiple "core-file $objdir/$subdir/gcore-shmid0.test" $test { +gdb_test_multiple "core-file [standard_output_file gcore-shmid0.test]" $test {
+ -re ".* program is being debugged already.*y or n. $" { + -re ".* program is being debugged already.*y or n. $" {
+ # gdb_load may connect us to a gdbserver. + # gdb_load may connect us to a gdbserver.
+ send_gdb "y\n" + send_gdb "y\n"

View File

@ -11,11 +11,11 @@
* gdb.texinfo (File Options): Document --readnever. * gdb.texinfo (File Options): Document --readnever.
Index: gdb-7.10.50.20151022/gdb/doc/gdb.texinfo Index: gdb-7.99.90.20170420/gdb/doc/gdb.texinfo
=================================================================== ===================================================================
--- gdb-7.10.50.20151022.orig/gdb/doc/gdb.texinfo 2015-10-22 22:16:50.483482288 +0200 --- gdb-7.99.90.20170420.orig/gdb/doc/gdb.texinfo 2017-04-20 22:29:39.179740076 +0200
+++ gdb-7.10.50.20151022/gdb/doc/gdb.texinfo 2015-10-22 22:28:22.042554142 +0200 +++ gdb-7.99.90.20170420/gdb/doc/gdb.texinfo 2017-04-20 22:29:40.924751096 +0200
@@ -1032,6 +1032,12 @@ Read each symbol file's entire symbol ta @@ -1037,6 +1037,12 @@
the default, which is to read it incrementally as it is needed. the default, which is to read it incrementally as it is needed.
This makes startup slower, but makes future operations faster. This makes startup slower, but makes future operations faster.
@ -28,11 +28,11 @@ Index: gdb-7.10.50.20151022/gdb/doc/gdb.texinfo
@end table @end table
@node Mode Options @node Mode Options
Index: gdb-7.10.50.20151022/gdb/main.c Index: gdb-7.99.90.20170420/gdb/main.c
=================================================================== ===================================================================
--- gdb-7.10.50.20151022.orig/gdb/main.c 2015-10-22 22:16:50.485482299 +0200 --- gdb-7.99.90.20170420.orig/gdb/main.c 2017-04-20 22:29:39.182740095 +0200
+++ gdb-7.10.50.20151022/gdb/main.c 2015-10-22 22:28:22.042554142 +0200 +++ gdb-7.99.90.20170420/gdb/main.c 2017-04-20 22:29:40.925751103 +0200
@@ -604,6 +604,7 @@ captured_main (void *data) @@ -615,6 +615,7 @@
{"tui", no_argument, 0, OPT_TUI}, {"tui", no_argument, 0, OPT_TUI},
{"dbx", no_argument, &dbx_commands, 1}, {"dbx", no_argument, &dbx_commands, 1},
{"readnow", no_argument, &readnow_symbol_files, 1}, {"readnow", no_argument, &readnow_symbol_files, 1},
@ -40,7 +40,7 @@ Index: gdb-7.10.50.20151022/gdb/main.c
{"r", no_argument, &readnow_symbol_files, 1}, {"r", no_argument, &readnow_symbol_files, 1},
{"quiet", no_argument, &quiet, 1}, {"quiet", no_argument, &quiet, 1},
{"q", no_argument, &quiet, 1}, {"q", no_argument, &quiet, 1},
@@ -1253,6 +1254,7 @@ Selection of debuggee and its files:\n\n @@ -1254,6 +1255,7 @@
--se=FILE Use FILE as symbol file and executable file.\n\ --se=FILE Use FILE as symbol file and executable file.\n\
--symbols=SYMFILE Read symbols from SYMFILE.\n\ --symbols=SYMFILE Read symbols from SYMFILE.\n\
--readnow Fully read symbol files on first access.\n\ --readnow Fully read symbol files on first access.\n\
@ -48,11 +48,11 @@ Index: gdb-7.10.50.20151022/gdb/main.c
--write Set writing into executable and core files.\n\n\ --write Set writing into executable and core files.\n\n\
"), stream); "), stream);
fputs_unfiltered (_("\ fputs_unfiltered (_("\
Index: gdb-7.10.50.20151022/gdb/symfile.c Index: gdb-7.99.90.20170420/gdb/symfile.c
=================================================================== ===================================================================
--- gdb-7.10.50.20151022.orig/gdb/symfile.c 2015-10-22 22:16:50.486482305 +0200 --- gdb-7.99.90.20170420.orig/gdb/symfile.c 2017-04-20 22:29:39.183740101 +0200
+++ gdb-7.10.50.20151022/gdb/symfile.c 2015-10-22 22:28:22.043554148 +0200 +++ gdb-7.99.90.20170420/gdb/symfile.c 2017-04-20 22:29:40.926751109 +0200
@@ -80,6 +80,7 @@ static void clear_symtab_users_cleanup ( @@ -79,6 +79,7 @@
/* Global variables owned by this file. */ /* Global variables owned by this file. */
int readnow_symbol_files; /* Read full symbols immediately. */ int readnow_symbol_files; /* Read full symbols immediately. */
@ -60,19 +60,19 @@ Index: gdb-7.10.50.20151022/gdb/symfile.c
/* Functions this file defines. */ /* Functions this file defines. */
Index: gdb-7.10.50.20151022/gdb/dwarf2read.c Index: gdb-7.99.90.20170420/gdb/dwarf2read.c
=================================================================== ===================================================================
--- gdb-7.10.50.20151022.orig/gdb/dwarf2read.c 2015-10-22 22:28:22.046554165 +0200 --- gdb-7.99.90.20170420.orig/gdb/dwarf2read.c 2017-04-20 22:29:39.190740145 +0200
+++ gdb-7.10.50.20151022/gdb/dwarf2read.c 2015-10-22 22:29:17.664881642 +0200 +++ gdb-7.99.90.20170420/gdb/dwarf2read.c 2017-04-20 22:29:57.973858766 +0200
@@ -70,6 +70,7 @@ @@ -73,6 +73,7 @@
#include "filestuff.h" #include "common/function-view.h"
#include "build-id.h" #include "common/gdb_optional.h"
#include "namespace.h" #include "common/underlying.h"
+#include "top.h" +#include "top.h"
#include <fcntl.h> #include <fcntl.h>
#include <sys/types.h> #include <sys/types.h>
@@ -2059,7 +2060,8 @@ dwarf2_has_info (struct objfile *objfile @@ -2208,7 +2209,8 @@
(void *) names); (void *) names);
dwarf2_per_objfile->objfile = objfile; dwarf2_per_objfile->objfile = objfile;
} }
@ -82,11 +82,11 @@ Index: gdb-7.10.50.20151022/gdb/dwarf2read.c
&& dwarf2_per_objfile->info.s.section != NULL && dwarf2_per_objfile->info.s.section != NULL
&& !dwarf2_per_objfile->abbrev.is_virtual && !dwarf2_per_objfile->abbrev.is_virtual
&& dwarf2_per_objfile->abbrev.s.section != NULL); && dwarf2_per_objfile->abbrev.s.section != NULL);
Index: gdb-7.10.50.20151022/gdb/top.h Index: gdb-7.99.90.20170420/gdb/top.h
=================================================================== ===================================================================
--- gdb-7.10.50.20151022.orig/gdb/top.h 2015-10-22 22:16:50.490482329 +0200 --- gdb-7.99.90.20170420.orig/gdb/top.h 2017-04-20 22:29:39.191740152 +0200
+++ gdb-7.10.50.20151022/gdb/top.h 2015-10-22 22:28:22.047554171 +0200 +++ gdb-7.99.90.20170420/gdb/top.h 2017-04-20 22:29:40.932751147 +0200
@@ -74,6 +74,7 @@ extern int gdb_in_secondary_prompt_p (vo @@ -269,6 +269,7 @@
/* From random places. */ /* From random places. */
extern int readnow_symbol_files; extern int readnow_symbol_files;

View File

@ -3,11 +3,11 @@
* gdb.gdb/selftest.exp: Add matching on specific Red Hat only version * gdb.gdb/selftest.exp: Add matching on specific Red Hat only version
string. string.
Index: gdb-7.1.90.20100711/gdb/testsuite/gdb.gdb/selftest.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.gdb/selftest.exp
=================================================================== ===================================================================
--- gdb-7.1.90.20100711.orig/gdb/testsuite/gdb.gdb/selftest.exp 2010-06-26 08:44:47.000000000 +0200 --- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.gdb/selftest.exp 2017-02-07 19:47:06.472874620 +0100
+++ gdb-7.1.90.20100711/gdb/testsuite/gdb.gdb/selftest.exp 2010-07-12 09:59:42.000000000 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.gdb/selftest.exp 2017-02-07 19:48:12.593380575 +0100
@@ -342,6 +342,9 @@ proc test_with_self { executable } { @@ -53,6 +53,9 @@
-re ".\[0-9\]+ = +.+ +0x.*\[0-9.\]+.*$gdb_prompt $" { -re ".\[0-9\]+ = +.+ +0x.*\[0-9.\]+.*$gdb_prompt $" {
pass "printed version with cast" pass "printed version with cast"
} }
@ -16,4 +16,4 @@ Index: gdb-7.1.90.20100711/gdb/testsuite/gdb.gdb/selftest.exp
+ } + }
} }
do_steps_and_nexts # start the "xgdb" process

View File

@ -34,11 +34,11 @@ glibc-debuginfo-2.7-2.x86_64: /usr/lib/debug/lib64/libc.so.6.debug:
<81a2> DW_AT_name : (indirect string, offset: 0x280e): __errno_location <81a2> DW_AT_name : (indirect string, offset: 0x280e): __errno_location
<81a8> DW_AT_MIPS_linkage_name: (indirect string, offset: 0x2808): *__GI___errno_location <81a8> DW_AT_MIPS_linkage_name: (indirect string, offset: 0x2808): *__GI___errno_location
Index: gdb-7.10.90.20160211/gdb/printcmd.c Index: gdb-7.12.50.20170207/gdb/printcmd.c
=================================================================== ===================================================================
--- gdb-7.10.90.20160211.orig/gdb/printcmd.c 2016-02-15 23:29:53.062420893 +0100 --- gdb-7.12.50.20170207.orig/gdb/printcmd.c 2017-02-07 21:06:20.196593884 +0100
+++ gdb-7.10.90.20160211/gdb/printcmd.c 2016-02-15 23:33:31.068968762 +0100 +++ gdb-7.12.50.20170207/gdb/printcmd.c 2017-02-07 21:07:10.230973906 +0100
@@ -1003,6 +1003,10 @@ @@ -1258,6 +1258,10 @@
if (exp && *exp) if (exp && *exp)
{ {
@ -46,13 +46,13 @@ Index: gdb-7.10.90.20160211/gdb/printcmd.c
+ function descriptors. */ + function descriptors. */
+ if (target_has_execution && strcmp (exp, "errno") == 0) + if (target_has_execution && strcmp (exp, "errno") == 0)
+ exp = "*(*(int *(*)(void)) __errno_location) ()"; + exp = "*(*(int *(*)(void)) __errno_location) ()";
expr = parse_expression (exp); expression_up expr = parse_expression (exp);
make_cleanup (free_current_contents, &expr); val = evaluate_expression (expr.get ());
val = evaluate_expression (expr); }
Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-errno.c Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-errno.c 2016-02-15 23:30:20.703617148 +0100 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno.c 2017-02-07 21:06:20.196593884 +0100
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -82,10 +82,10 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-errno.c
+ +
+ return 0; /* breakpoint */ + return 0; /* breakpoint */
+} +}
Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-errno.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-errno.exp 2016-02-15 23:35:25.582781821 +0100 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno.exp 2017-02-07 21:06:20.196593884 +0100
@@ -0,0 +1,60 @@ @@ -0,0 +1,60 @@
+# Copyright 2007 Free Software Foundation, Inc. +# Copyright 2007 Free Software Foundation, Inc.
+ +
@ -147,10 +147,10 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-errno.exp
+ +
+# TODO: Test the error on resolving ERRNO with only libc loaded. +# TODO: Test the error on resolving ERRNO with only libc loaded.
+# Just how to find the current libc filename? +# Just how to find the current libc filename?
Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-errno2.c Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno2.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-errno2.c 2016-02-15 23:30:20.703617148 +0100 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno2.c 2017-02-07 21:06:20.196593884 +0100
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -180,10 +180,10 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-errno2.c
+ +
+ return 0; /* breakpoint */ + return 0; /* breakpoint */
+} +}
Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-errno2.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno2.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-errno2.exp 2016-02-15 23:35:25.582781821 +0100 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno2.exp 2017-02-07 21:06:20.197593892 +0100
@@ -0,0 +1,71 @@ @@ -0,0 +1,71 @@
+# Copyright 2007 Free Software Foundation, Inc. +# Copyright 2007 Free Software Foundation, Inc.
+ +

View File

@ -58,10 +58,10 @@ 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.9.50.20150531/gdb/exec.c Index: gdb-7.12.50.20170226/gdb/exec.c
=================================================================== ===================================================================
--- gdb-7.9.50.20150531.orig/gdb/exec.c 2015-05-31 03:48:29.000000000 +0200 --- gdb-7.12.50.20170226.orig/gdb/exec.c 2017-02-27 22:18:00.945026211 +0100
+++ gdb-7.9.50.20150531/gdb/exec.c 2015-05-31 20:07:35.092878685 +0200 +++ gdb-7.12.50.20170226/gdb/exec.c 2017-02-27 22:18:08.111076350 +0100
@@ -35,6 +35,7 @@ @@ -35,6 +35,7 @@
#include "progspace.h" #include "progspace.h"
#include "gdb_bfd.h" #include "gdb_bfd.h"
@ -70,7 +70,7 @@ Index: gdb-7.9.50.20150531/gdb/exec.c
#include <fcntl.h> #include <fcntl.h>
#include "readline/readline.h" #include "readline/readline.h"
@@ -298,12 +299,27 @@ exec_file_attach (const char *filename, @@ -359,12 +360,27 @@
if (!bfd_check_format_matches (exec_bfd, bfd_object, &matching)) if (!bfd_check_format_matches (exec_bfd, bfd_object, &matching))
{ {
@ -101,13 +101,13 @@ Index: gdb-7.9.50.20150531/gdb/exec.c
} }
if (build_section_table (exec_bfd, &sections, &sections_end)) if (build_section_table (exec_bfd, &sections, &sections_end))
Index: gdb-7.9.50.20150531/gdb/main.c Index: gdb-7.12.50.20170226/gdb/main.c
=================================================================== ===================================================================
--- gdb-7.9.50.20150531.orig/gdb/main.c 2015-05-31 20:07:34.183872824 +0200 --- gdb-7.12.50.20170226.orig/gdb/main.c 2017-02-27 22:18:00.945026211 +0100
+++ gdb-7.9.50.20150531/gdb/main.c 2015-05-31 20:10:05.095845935 +0200 +++ gdb-7.12.50.20170226/gdb/main.c 2017-02-27 22:18:08.112076357 +0100
@@ -435,6 +435,37 @@ typedef struct cmdarg { @@ -459,6 +459,37 @@
/* Define type VEC (cmdarg_s). */ char *string;
DEF_VEC_O (cmdarg_s); };
+/* Call exec_file_attach. If it detected FILENAME is a core file call +/* Call exec_file_attach. If it detected FILENAME is a core file call
+ core_file_command. Print the original exec_file_attach error only if + core_file_command. Print the original exec_file_attach error only if
@ -140,10 +140,10 @@ Index: gdb-7.9.50.20150531/gdb/main.c
+ END_CATCH + END_CATCH
+} +}
+ +
static int static void
captured_main (void *data) captured_main_1 (struct captured_main_args *context, int &python_script)
{ {
@@ -923,6 +954,8 @@ captured_main (void *data) @@ -910,6 +941,8 @@
{ {
symarg = argv[optind]; symarg = argv[optind];
execarg = argv[optind]; execarg = argv[optind];
@ -152,7 +152,7 @@ Index: gdb-7.9.50.20150531/gdb/main.c
optind++; optind++;
} }
@@ -1080,11 +1113,25 @@ captured_main (void *data) @@ -1060,11 +1093,25 @@
&& symarg != NULL && symarg != NULL
&& strcmp (execarg, symarg) == 0) && strcmp (execarg, symarg) == 0)
{ {
@ -178,14 +178,14 @@ Index: gdb-7.9.50.20150531/gdb/main.c
+ as a core file. */ + as a core file. */
+ if (catch_command_errors_const (func, execarg, !batch_flag) + if (catch_command_errors_const (func, execarg, !batch_flag)
+ && core_bfd == NULL) + && core_bfd == NULL)
catch_command_errors_const (symbol_file_add_main, symarg, catch_command_errors_const (symbol_file_add_main_adapter, symarg,
!batch_flag); !batch_flag);
} }
Index: gdb-7.9.50.20150531/gdb/common/common-exceptions.h Index: gdb-7.12.50.20170226/gdb/common/common-exceptions.h
=================================================================== ===================================================================
--- gdb-7.9.50.20150531.orig/gdb/common/common-exceptions.h 2015-05-31 03:48:29.000000000 +0200 --- gdb-7.12.50.20170226.orig/gdb/common/common-exceptions.h 2017-02-27 22:18:00.946026218 +0100
+++ gdb-7.9.50.20150531/gdb/common/common-exceptions.h 2015-05-31 20:07:35.093878692 +0200 +++ gdb-7.12.50.20170226/gdb/common/common-exceptions.h 2017-02-27 22:18:08.112076357 +0100
@@ -105,6 +105,9 @@ enum errors { @@ -106,6 +106,9 @@
"_ERROR" is appended to the name. */ "_ERROR" is appended to the name. */
MAX_COMPLETIONS_REACHED_ERROR, MAX_COMPLETIONS_REACHED_ERROR,

View File

@ -15,10 +15,10 @@ Comments by Sergio Durigan Junior <sergiodj@redhat.com>:
NULL after it is free'd, otherwise the code below thinks that it is still 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 ..."). valid and doesn't print the necessary warning ("Try: yum install ...").
Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning.exp 2016-02-15 23:31:06.327941085 +0100 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning.exp 2017-02-26 19:14:58.492609659 +0100
@@ -0,0 +1,97 @@ @@ -0,0 +1,97 @@
+# Copyright (C) 2014 Free Software Foundation, Inc. +# Copyright (C) 2014 Free Software Foundation, Inc.
+ +
@ -117,10 +117,10 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-ins
+ +
+# Leaving the link there will cause breakage in the next run. +# Leaving the link there will cause breakage in the next run.
+remote_exec build "rm -f [standard_output_file ${build_id_without_debug}]" +remote_exec build "rm -f [standard_output_file ${build_id_without_debug}]"
Index: gdb-7.10.90.20160211/gdb/build-id.c Index: gdb-7.12.50.20170207/gdb/build-id.c
=================================================================== ===================================================================
--- gdb-7.10.90.20160211.orig/gdb/build-id.c 2016-02-15 23:30:55.389863424 +0100 --- gdb-7.12.50.20170207.orig/gdb/build-id.c 2017-02-26 19:14:51.943562799 +0100
+++ gdb-7.10.90.20160211/gdb/build-id.c 2016-02-15 23:30:55.778866186 +0100 +++ gdb-7.12.50.20170207/gdb/build-id.c 2017-02-26 19:14:58.492609659 +0100
@@ -589,7 +589,10 @@ @@ -589,7 +589,10 @@
do_cleanups (inner); do_cleanups (inner);
@ -131,5 +131,5 @@ Index: gdb-7.10.90.20160211/gdb/build-id.c
+ continue; + continue;
+ } + }
if (build_id_verify (abfd, build_id_len, build_id)) if (build_id_verify (abfd.get(), build_id_len, build_id))
break; break;

View File

@ -1,7 +1,7 @@
Index: gdb-7.11.50.20160630/gdb/corelow.c Index: gdb-7.99.90.20170420/gdb/corelow.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/corelow.c 2016-07-03 14:33:28.130205528 +0200 --- gdb-7.99.90.20170420.orig/gdb/corelow.c 2017-04-20 23:00:35.415584426 +0200
+++ gdb-7.11.50.20160630/gdb/corelow.c 2016-07-03 14:34:32.022753582 +0200 +++ gdb-7.99.90.20170420/gdb/corelow.c 2017-04-20 23:00:43.358629183 +0200
@@ -45,6 +45,10 @@ @@ -45,6 +45,10 @@
#include "gdb_bfd.h" #include "gdb_bfd.h"
#include "completer.h" #include "completer.h"
@ -13,7 +13,7 @@ Index: gdb-7.11.50.20160630/gdb/corelow.c
#ifndef O_LARGEFILE #ifndef O_LARGEFILE
#define O_LARGEFILE 0 #define O_LARGEFILE 0
@@ -266,6 +270,53 @@ @@ -266,6 +270,54 @@
inferior_ptid = ptid; /* Yes, make it current. */ inferior_ptid = ptid; /* Yes, make it current. */
} }
@ -52,7 +52,8 @@ Index: gdb-7.11.50.20160630/gdb/corelow.c
+ { + {
+ make_cleanup (xfree, execfilename); + make_cleanup (xfree, execfilename);
+ exec_file_attach (execfilename, from_tty); + exec_file_attach (execfilename, from_tty);
+ symbol_file_add_main (execfilename, from_tty); + symbol_file_add_main (execfilename,
+ symfile_add_flag (!from_tty ? 0 : SYMFILE_VERBOSE));
+ if (symfile_objfile != NULL) + if (symfile_objfile != NULL)
+ symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED; + symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED;
+ } + }
@ -67,7 +68,7 @@ Index: gdb-7.11.50.20160630/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
@@ -404,6 +455,14 @@ @@ -402,6 +454,14 @@
switch_to_thread (thread->ptid); switch_to_thread (thread->ptid);
} }
@ -82,7 +83,7 @@ Index: gdb-7.11.50.20160630/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
@@ -1068,4 +1127,11 @@ @@ -1079,4 +1139,11 @@
init_core_ops (); init_core_ops ();
add_target_with_completer (&core_ops, filename_completer); add_target_with_completer (&core_ops, filename_completer);
@ -94,11 +95,11 @@ Index: gdb-7.11.50.20160630/gdb/corelow.c
+ NULL, NULL, NULL, + NULL, NULL, NULL,
+ &setlist, &showlist); + &setlist, &showlist);
} }
Index: gdb-7.11.50.20160630/gdb/doc/gdb.texinfo Index: gdb-7.99.90.20170420/gdb/doc/gdb.texinfo
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/doc/gdb.texinfo 2016-07-03 14:33:28.130205528 +0200 --- gdb-7.99.90.20170420.orig/gdb/doc/gdb.texinfo 2017-04-20 23:00:35.415584426 +0200
+++ gdb-7.11.50.20160630/gdb/doc/gdb.texinfo 2016-07-03 14:34:32.030753651 +0200 +++ gdb-7.99.90.20170420/gdb/doc/gdb.texinfo 2017-04-20 23:00:43.366629228 +0200
@@ -18916,6 +18916,27 @@ @@ -18987,6 +18987,27 @@
@end table @end table
@ -126,10 +127,10 @@ Index: gdb-7.11.50.20160630/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.11.50.20160630/gdb/solib-svr4.c Index: gdb-7.99.90.20170420/gdb/solib-svr4.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/solib-svr4.c 2016-07-03 14:33:28.130205528 +0200 --- gdb-7.99.90.20170420.orig/gdb/solib-svr4.c 2017-04-20 23:00:35.415584426 +0200
+++ gdb-7.11.50.20160630/gdb/solib-svr4.c 2016-07-03 14:34:32.031753659 +0200 +++ gdb-7.99.90.20170420/gdb/solib-svr4.c 2017-04-20 23:00:43.367629234 +0200
@@ -45,6 +45,7 @@ @@ -45,6 +45,7 @@
#include "auxv.h" #include "auxv.h"
#include "gdb_bfd.h" #include "gdb_bfd.h"
@ -138,7 +139,7 @@ Index: gdb-7.11.50.20160630/gdb/solib-svr4.c
static struct link_map_offsets *svr4_fetch_link_map_offsets (void); static struct link_map_offsets *svr4_fetch_link_map_offsets (void);
static int svr4_have_link_map_offsets (void); static int svr4_have_link_map_offsets (void);
@@ -1416,9 +1417,52 @@ @@ -1420,9 +1421,52 @@
continue; continue;
} }
@ -194,41 +195,37 @@ Index: gdb-7.11.50.20160630/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.11.50.20160630/gdb/elfread.c Index: gdb-7.99.90.20170420/gdb/elfread.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/elfread.c 2016-07-03 14:33:28.130205528 +0200 --- gdb-7.99.90.20170420.orig/gdb/elfread.c 2017-04-20 23:00:35.415584426 +0200
+++ gdb-7.11.50.20160630/gdb/elfread.c 2016-07-03 14:34:32.031753659 +0200 +++ gdb-7.99.90.20170420/gdb/elfread.c 2017-04-20 23:00:43.367629234 +0200
@@ -1259,9 +1259,10 @@ @@ -1265,8 +1265,9 @@
&& objfile->separate_debug_objfile == NULL && objfile->separate_debug_objfile == NULL
&& objfile->separate_debug_objfile_backlink == NULL) && objfile->separate_debug_objfile_backlink == NULL)
{ {
- char *debugfile; + gdb::unique_xmalloc_ptr<char> build_id_filename;
+ char *debugfile, *build_id_filename; gdb::unique_xmalloc_ptr<char> debugfile
- (find_separate_debug_file_by_buildid (objfile));
- debugfile = find_separate_debug_file_by_buildid (objfile); + (find_separate_debug_file_by_buildid (objfile, &build_id_filename));
+ debugfile = find_separate_debug_file_by_buildid (objfile,
+ &build_id_filename);
if (debugfile == NULL) if (debugfile == NULL)
debugfile = find_separate_debug_file_by_debuglink (objfile); debugfile.reset (find_separate_debug_file_by_debuglink (objfile));
@@ -1275,6 +1276,12 @@ @@ -1278,6 +1279,10 @@
symbol_file_add_separate (abfd, debugfile, symfile_flags, objfile); symbol_file_add_separate (abfd.get (), debugfile.get (),
do_cleanups (cleanup); symfile_flags, objfile);
} }
+ /* Check if any separate debug info has been extracted out. */ + /* Check if any separate debug info has been extracted out. */
+ else if (bfd_get_section_by_name (objfile->obfd, ".gnu_debuglink") + else if (bfd_get_section_by_name (objfile->obfd, ".gnu_debuglink")
+ != NULL) + != NULL)
+ debug_print_missing (objfile_name (objfile), build_id_filename); + debug_print_missing (objfile_name (objfile), build_id_filename.get ());
+
+ xfree (build_id_filename);
} }
} }
Index: gdb-7.11.50.20160630/gdb/symfile.h Index: gdb-7.99.90.20170420/gdb/symfile.h
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/symfile.h 2016-07-03 14:33:28.130205528 +0200 --- gdb-7.99.90.20170420.orig/gdb/symfile.h 2017-04-20 23:00:35.415584426 +0200
+++ gdb-7.11.50.20160630/gdb/symfile.h 2016-07-03 14:34:32.032753668 +0200 +++ gdb-7.99.90.20170420/gdb/symfile.h 2017-04-20 23:00:43.368629240 +0200
@@ -589,6 +589,10 @@ @@ -567,6 +567,10 @@
void map_symbol_filenames (symbol_filename_ftype *fun, void *data, void map_symbol_filenames (symbol_filename_ftype *fun, void *data,
int need_fullname); int need_fullname);
@ -239,11 +236,11 @@ Index: gdb-7.11.50.20160630/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.11.50.20160630/gdb/testsuite/lib/gdb.exp Index: gdb-7.99.90.20170420/gdb/testsuite/lib/gdb.exp
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/testsuite/lib/gdb.exp 2016-07-03 14:33:28.130205528 +0200 --- gdb-7.99.90.20170420.orig/gdb/testsuite/lib/gdb.exp 2017-04-20 23:00:35.415584426 +0200
+++ gdb-7.11.50.20160630/gdb/testsuite/lib/gdb.exp 2016-07-03 14:34:32.033753676 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/lib/gdb.exp 2017-04-20 23:00:43.369629245 +0200
@@ -1641,6 +1641,16 @@ @@ -1646,6 +1646,16 @@
warning "Couldn't set the width to 0." warning "Couldn't set the width to 0."
} }
} }
@ -260,11 +257,11 @@ Index: gdb-7.11.50.20160630/gdb/testsuite/lib/gdb.exp
return 0 return 0
} }
Index: gdb-7.11.50.20160630/gdb/testsuite/lib/mi-support.exp Index: gdb-7.99.90.20170420/gdb/testsuite/lib/mi-support.exp
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/testsuite/lib/mi-support.exp 2016-07-03 14:33:28.130205528 +0200 --- gdb-7.99.90.20170420.orig/gdb/testsuite/lib/mi-support.exp 2017-04-20 23:00:35.415584426 +0200
+++ gdb-7.11.50.20160630/gdb/testsuite/lib/mi-support.exp 2016-07-03 14:34:32.033753676 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/lib/mi-support.exp 2017-04-20 23:00:43.369629245 +0200
@@ -309,6 +309,16 @@ proc default_mi_gdb_start { args } { @@ -309,6 +309,16 @@
warning "Couldn't set the width to 0." warning "Couldn't set the width to 0."
} }
} }
@ -281,9 +278,11 @@ Index: gdb-7.11.50.20160630/gdb/testsuite/lib/mi-support.exp
if { $separate_inferior_pty } { if { $separate_inferior_pty } {
mi_create_inferior_pty mi_create_inferior_pty
--- gdb-7.11.90.20160907/gdb/testsuite/gdb.base/new-ui-pending-input.exp-orig 2016-09-07 04:01:15.000000000 +0200 Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.base/new-ui-pending-input.exp
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.base/new-ui-pending-input.exp 2016-09-07 22:35:35.818534069 +0200 ===================================================================
@@ -62,6 +62,7 @@ proc test_command_line_new_ui_pending_in --- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.base/new-ui-pending-input.exp 2017-04-20 23:00:35.415584426 +0200
+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.base/new-ui-pending-input.exp 2017-04-20 23:00:43.369629245 +0200
@@ -62,6 +62,7 @@
set options "" set options ""
append options " -iex \"set height 0\"" append options " -iex \"set height 0\""
append options " -iex \"set width 0\"" append options " -iex \"set width 0\""
@ -291,25 +290,25 @@ Index: gdb-7.11.50.20160630/gdb/testsuite/lib/mi-support.exp
append options " -iex \"new-ui console $extra_tty_name\"" append options " -iex \"new-ui console $extra_tty_name\""
append options " -ex \"b $bpline\"" append options " -ex \"b $bpline\""
append options " -ex \"run\"" append options " -ex \"run\""
Index: gdb-7.11.50.20160630/gdb/objfiles.h Index: gdb-7.99.90.20170420/gdb/objfiles.h
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/objfiles.h 2016-07-03 14:33:28.130205528 +0200 --- gdb-7.99.90.20170420.orig/gdb/objfiles.h 2017-04-20 23:00:35.415584426 +0200
+++ gdb-7.11.50.20160630/gdb/objfiles.h 2016-07-03 14:34:32.034753685 +0200 +++ gdb-7.99.90.20170420/gdb/objfiles.h 2017-04-20 23:00:43.370629251 +0200
@@ -489,6 +489,10 @@ @@ -444,6 +444,10 @@
htab_t static_links;
#define OBJF_NOT_FILENAME (1 << 6) };
+/* This file was loaded according to the BUILD_ID_CORE_LOADS rules. */ +/* This file was loaded according to the BUILD_ID_CORE_LOADS rules. */
+ +
+#define OBJF_BUILD_ID_CORE_LOADED (1 << 12) +#define OBJF_BUILD_ID_CORE_LOADED static_cast<enum objfile_flag>(1 << 12)
+ +
/* 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,
Index: gdb-7.11.50.20160630/gdb/testsuite/gdb.base/corefile.exp Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.base/corefile.exp
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/testsuite/gdb.base/corefile.exp 2016-07-03 14:33:28.130205528 +0200 --- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.base/corefile.exp 2017-04-20 23:00:35.415584426 +0200
+++ gdb-7.11.50.20160630/gdb/testsuite/gdb.base/corefile.exp 2016-07-03 14:34:32.034753685 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.base/corefile.exp 2017-04-20 23:00:43.370629251 +0200
@@ -293,3 +293,33 @@ @@ -293,3 +293,33 @@
pass $test pass $test
} }
@ -344,10 +343,10 @@ Index: gdb-7.11.50.20160630/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.11.50.20160630/gdb/build-id.c Index: gdb-7.99.90.20170420/gdb/build-id.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/build-id.c 2016-07-03 14:33:28.130205528 +0200 --- gdb-7.99.90.20170420.orig/gdb/build-id.c 2017-04-20 23:00:35.415584426 +0200
+++ gdb-7.11.50.20160630/gdb/build-id.c 2016-07-03 14:36:50.124938187 +0200 +++ gdb-7.99.90.20170420/gdb/build-id.c 2017-04-20 23:03:00.060399474 +0200
@@ -26,11 +26,67 @@ @@ -26,11 +26,67 @@
#include "objfiles.h" #include "objfiles.h"
#include "filenames.h" #include "filenames.h"
@ -775,7 +774,7 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
if (found == NULL) if (found == NULL)
warning (_("File \"%s\" has no build-id, file skipped"), warning (_("File \"%s\" has no build-id, file skipped"),
@@ -65,23 +463,56 @@ @@ -65,23 +463,54 @@
return retval; return retval;
} }
@ -797,17 +796,15 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
+ target = xstrdup (buf); + target = xstrdup (buf);
+ else + else
+ { + {
+ char *dir = ldirname (symlink); + const std::string dir (ldirname (symlink));
+ +
+ if (dir == NULL)
+ return xstrdup (symlink);
+ target = xstrprintf ("%s" + target = xstrprintf ("%s"
+#ifndef HAVE_DOS_BASED_FILE_SYSTEM +#ifndef HAVE_DOS_BASED_FILE_SYSTEM
+ "/" + "/"
+#else /* HAVE_DOS_BASED_FILE_SYSTEM */ +#else /* HAVE_DOS_BASED_FILE_SYSTEM */
+ "\\" + "\\"
+#endif /* HAVE_DOS_BASED_FILE_SYSTEM */ +#endif /* HAVE_DOS_BASED_FILE_SYSTEM */
+ "%s", dir, buf); + "%s", dir.c_str(), buf);
+ } + }
+ +
+ retval = link_resolve (target, level + 1); + retval = link_resolve (target, level + 1);
@ -817,7 +814,7 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
+ +
/* See build-id.h. */ /* See build-id.h. */
bfd * gdb_bfd_ref_ptr
-build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id) -build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id)
+build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id, +build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id,
+ char **link_return, int add_debug_suffix) + char **link_return, int add_debug_suffix)
@ -827,7 +824,7 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
VEC (char_ptr) *debugdir_vec; VEC (char_ptr) *debugdir_vec;
struct cleanup *back_to; struct cleanup *back_to;
int ix; int ix;
bfd *abfd = NULL; gdb_bfd_ref_ptr abfd;
- int alloc_len; - int alloc_len;
/* DEBUG_FILE_DIRECTORY/.build-id/ab/cdef */ /* DEBUG_FILE_DIRECTORY/.build-id/ab/cdef */
@ -839,7 +836,7 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
/* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will /* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will
cause "/.build-id/..." lookups. */ cause "/.build-id/..." lookups. */
@@ -94,9 +525,12 @@ @@ -94,9 +523,12 @@
size_t debugdir_len = strlen (debugdir); size_t debugdir_len = strlen (debugdir);
const gdb_byte *data = build_id; const gdb_byte *data = build_id;
size_t size = build_id_len; size_t size = build_id_len;
@ -853,7 +850,7 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
memcpy (link, debugdir, debugdir_len); memcpy (link, debugdir, debugdir_len);
s = &link[debugdir_len]; s = &link[debugdir_len];
@@ -110,47 +544,281 @@ @@ -110,45 +542,290 @@
*s++ = '/'; *s++ = '/';
while (size-- > 0) while (size-- > 0)
s += sprintf (s, "%02x", (unsigned) *data++); s += sprintf (s, "%02x", (unsigned) *data++);
@ -903,38 +900,36 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
+ inner = make_cleanup (xfree, filename); + inner = make_cleanup (xfree, filename);
+ abfd = gdb_bfd_open (filename, gnutarget, -1); + abfd = gdb_bfd_open (filename, gnutarget, -1);
+ do_cleanups (inner); + do_cleanups (inner);
+
+ if (abfd == NULL)
+ continue;
- if (filename == NULL) - if (filename == NULL)
- continue; - continue;
+ if (abfd == NULL) + if (build_id_verify (abfd.get(), build_id_len, build_id))
+ continue; + break;
- /* We expect to be silent on the non-existing files. */ - /* We expect to be silent on the non-existing files. */
- inner = make_cleanup (xfree, filename); - inner = make_cleanup (xfree, filename);
- abfd = gdb_bfd_open (filename, gnutarget, -1); - abfd = gdb_bfd_open (filename, gnutarget, -1);
- do_cleanups (inner); - do_cleanups (inner);
+ if (build_id_verify (abfd, build_id_len, build_id)) + abfd.release ();
+ break;
- if (abfd == NULL) - if (abfd == NULL)
- continue; - continue;
+ gdb_bfd_unref (abfd);
+ abfd = NULL;
- if (build_id_verify (abfd, build_id_len, build_id))
- break;
+ filename = NULL; + filename = NULL;
+ } + }
- gdb_bfd_unref (abfd); - if (build_id_verify (abfd.get(), build_id_len, build_id))
- abfd = NULL; - break;
+ if (filename != NULL) + if (filename != NULL)
+ { + {
+ /* LINK_ALL is not used below in this non-NULL FILENAME case. */ + /* LINK_ALL is not used below in this non-NULL FILENAME case. */
+ xfree (link0); + xfree (link0);
+ break; + break;
+ } + }
+
- abfd.release ();
+ /* If the symlink has target request to install the target. + /* If the symlink has target request to install the target.
+ BASE-debuginfo.rpm contains the symlink but BASE.rpm may be missing. + BASE-debuginfo.rpm contains the symlink but BASE.rpm may be missing.
+ https://bugzilla.redhat.com/show_bug.cgi?id=981154 */ + https://bugzilla.redhat.com/show_bug.cgi?id=981154 */
@ -982,7 +977,7 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
+char * +char *
+build_id_to_filename (const struct bfd_build_id *build_id, char **link_return) +build_id_to_filename (const struct bfd_build_id *build_id, char **link_return)
+{ +{
+ bfd *abfd; + gdb_bfd_ref_ptr abfd;
+ char *result; + char *result;
+ +
+ abfd = build_id_to_debug_bfd (build_id->size, build_id->data, link_return, 0); + abfd = build_id_to_debug_bfd (build_id->size, build_id->data, link_return, 0);
@ -990,7 +985,7 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
+ return NULL; + return NULL;
+ +
+ result = xstrdup (bfd_get_filename (abfd)); + result = xstrdup (bfd_get_filename (abfd));
+ gdb_bfd_unref (abfd); + abfd.release ();
+ return result; + return result;
+} +}
+ +
@ -1135,7 +1130,7 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
char * char *
-find_separate_debug_file_by_buildid (struct objfile *objfile) -find_separate_debug_file_by_buildid (struct objfile *objfile)
+find_separate_debug_file_by_buildid (struct objfile *objfile, +find_separate_debug_file_by_buildid (struct objfile *objfile,
+ char **build_id_filename_return) + gdb::unique_xmalloc_ptr<char> *build_id_filename_return)
{ {
const struct bfd_build_id *build_id; const struct bfd_build_id *build_id;
@ -1146,15 +1141,25 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
+ build_id = build_id_bfd_shdr_get (objfile->obfd); + build_id = build_id_bfd_shdr_get (objfile->obfd);
if (build_id != NULL) if (build_id != NULL)
{ {
bfd *abfd; + char *build_id_filename_cstr = NULL;
gdb_bfd_ref_ptr abfd (build_id_to_debug_bfd (build_id->size,
- abfd = build_id_to_debug_bfd (build_id->size, build_id->data); - build_id->data));
+ abfd = build_id_to_debug_bfd (build_id->size, build_id->data, + build_id->data,
+ build_id_filename_return, 1); + (!build_id_filename_return ? NULL : &build_id_filename_cstr), 1));
+ if (build_id_filename_return)
+ {
+ if (!build_id_filename_cstr)
+ gdb_assert (!*build_id_filename_return);
+ else
+ {
+ *build_id_filename_return = gdb::unique_xmalloc_ptr<char> (build_id_filename_cstr);
+ build_id_filename_cstr = NULL;
+ }
+ }
/* Prevent looping on a stripped .debug file. */ /* Prevent looping on a stripped .debug file. */
if (abfd != NULL if (abfd != NULL
&& filename_cmp (bfd_get_filename (abfd), && filename_cmp (bfd_get_filename (abfd.get ()),
@@ -170,3 +838,21 @@ @@ -160,3 +837,21 @@
} }
return NULL; return NULL;
} }
@ -1176,13 +1181,13 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
+ +
+ observer_attach_executable_changed (debug_print_executable_changed); + observer_attach_executable_changed (debug_print_executable_changed);
+} +}
Index: gdb-7.11.50.20160630/gdb/build-id.h Index: gdb-7.99.90.20170420/gdb/build-id.h
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/build-id.h 2016-07-03 14:33:28.130205528 +0200 --- gdb-7.99.90.20170420.orig/gdb/build-id.h 2017-04-20 23:00:35.415584426 +0200
+++ gdb-7.11.50.20160630/gdb/build-id.h 2016-07-03 14:34:32.035753694 +0200 +++ gdb-7.99.90.20170420/gdb/build-id.h 2017-04-20 23:00:43.371629257 +0200
@@ -20,9 +20,10 @@ @@ -22,9 +22,10 @@
#ifndef BUILD_ID_H
#define BUILD_ID_H #include "gdb_bfd.h"
-/* Locate NT_GNU_BUILD_ID from ABFD and return its content. */ -/* Locate NT_GNU_BUILD_ID from ABFD and return its content. */
+/* Separate debuginfo files have corrupted PHDR but SHDR is correct there. +/* Separate debuginfo files have corrupted PHDR but SHDR is correct there.
@ -1193,13 +1198,14 @@ Index: gdb-7.11.50.20160630/gdb/build-id.h
/* Return true if ABFD has NT_GNU_BUILD_ID matching the CHECK value. /* Return true if ABFD has NT_GNU_BUILD_ID matching the CHECK value.
Otherwise, issue a warning and return false. */ Otherwise, issue a warning and return false. */
@@ -36,13 +37,18 @@ @@ -38,13 +39,19 @@
the caller. */ the caller. */
extern bfd *build_id_to_debug_bfd (size_t build_id_len, extern gdb_bfd_ref_ptr build_id_to_debug_bfd (size_t build_id_len,
- const bfd_byte *build_id); - const bfd_byte *build_id);
+ const bfd_byte *build_id, char **link_return, + const bfd_byte *build_id,
+ int add_debug_suffix); + char **link_return,
+ int add_debug_suffix);
+ +
+extern char *build_id_to_filename (const struct bfd_build_id *build_id, +extern char *build_id_to_filename (const struct bfd_build_id *build_id,
+ char **link_return); + char **link_return);
@ -1211,14 +1217,14 @@ Index: gdb-7.11.50.20160630/gdb/build-id.h
-extern char *find_separate_debug_file_by_buildid (struct objfile *objfile); -extern char *find_separate_debug_file_by_buildid (struct objfile *objfile);
+extern char *find_separate_debug_file_by_buildid (struct objfile *objfile, +extern char *find_separate_debug_file_by_buildid (struct objfile *objfile,
+ char **build_id_filename_return); + gdb::unique_xmalloc_ptr<char> *build_id_filename_return);
#endif /* BUILD_ID_H */ #endif /* BUILD_ID_H */
Index: gdb-7.11.50.20160630/gdb/dwarf2read.c Index: gdb-7.99.90.20170420/gdb/dwarf2read.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/dwarf2read.c 2016-07-03 14:33:28.130205528 +0200 --- gdb-7.99.90.20170420.orig/gdb/dwarf2read.c 2017-04-20 23:00:35.415584426 +0200
+++ gdb-7.11.50.20160630/gdb/dwarf2read.c 2016-07-03 14:34:32.040753736 +0200 +++ gdb-7.99.90.20170420/gdb/dwarf2read.c 2017-04-20 23:00:43.375629279 +0200
@@ -2535,7 +2535,7 @@ @@ -2671,7 +2671,7 @@
} }
if (dwz_bfd == NULL) if (dwz_bfd == NULL)
@ -1227,11 +1233,11 @@ Index: gdb-7.11.50.20160630/gdb/dwarf2read.c
if (dwz_bfd == NULL) if (dwz_bfd == NULL)
error (_("could not find '.gnu_debugaltlink' file for %s"), error (_("could not find '.gnu_debugaltlink' file for %s"),
Index: gdb-7.11.50.20160630/gdb/python/py-objfile.c Index: gdb-7.99.90.20170420/gdb/python/py-objfile.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/python/py-objfile.c 2016-07-03 14:33:28.130205528 +0200 --- gdb-7.99.90.20170420.orig/gdb/python/py-objfile.c 2017-04-20 23:00:35.415584426 +0200
+++ gdb-7.11.50.20160630/gdb/python/py-objfile.c 2016-07-03 14:34:32.040753736 +0200 +++ gdb-7.99.90.20170420/gdb/python/py-objfile.c 2017-04-20 23:00:43.375629279 +0200
@@ -136,7 +136,7 @@ @@ -137,7 +137,7 @@
TRY TRY
{ {
@ -1240,7 +1246,7 @@ Index: gdb-7.11.50.20160630/gdb/python/py-objfile.c
} }
CATCH (except, RETURN_MASK_ALL) CATCH (except, RETURN_MASK_ALL)
{ {
@@ -547,7 +547,7 @@ @@ -544,7 +544,7 @@
/* Don't return separate debug files. */ /* Don't return separate debug files. */
if (objfile->separate_debug_objfile_backlink != NULL) if (objfile->separate_debug_objfile_backlink != NULL)
continue; continue;
@ -1249,11 +1255,11 @@ Index: gdb-7.11.50.20160630/gdb/python/py-objfile.c
if (obfd_build_id == NULL) if (obfd_build_id == NULL)
continue; continue;
if (objfpy_build_id_matches (obfd_build_id, build_id)) if (objfpy_build_id_matches (obfd_build_id, build_id))
Index: gdb-7.11.50.20160630/gdb/coffread.c Index: gdb-7.99.90.20170420/gdb/coffread.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/coffread.c 2016-07-03 14:33:28.130205528 +0200 --- gdb-7.99.90.20170420.orig/gdb/coffread.c 2017-04-20 23:00:35.415584426 +0200
+++ gdb-7.11.50.20160630/gdb/coffread.c 2016-07-03 14:34:32.041753745 +0200 +++ gdb-7.99.90.20170420/gdb/coffread.c 2017-04-20 23:00:43.376629285 +0200
@@ -737,7 +737,7 @@ @@ -734,7 +734,7 @@
{ {
char *debugfile; char *debugfile;

View File

@ -209,7 +209,7 @@ Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/atomic-seq-threaded.exp
+ +
+set testfile atomic-seq-threaded +set testfile atomic-seq-threaded
+set srcfile ${testfile}.c +set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile} +set binfile [standard_output_file ${testfile}]
+ +
+foreach opts {{} {compiler=gcc4} {FAIL}} { +foreach opts {{} {compiler=gcc4} {FAIL}} {
+ if {$opts eq "FAIL"} { + if {$opts eq "FAIL"} {

View File

@ -1,7 +1,7 @@
Index: gdb-7.11.90.20160904/gdb/infrun.c Index: gdb-7.12.50.20170207/gdb/infrun.c
=================================================================== ===================================================================
--- gdb-7.11.90.20160904.orig/gdb/infrun.c 2016-09-04 17:57:12.733853848 +0200 --- gdb-7.12.50.20170207.orig/gdb/infrun.c 2017-02-07 21:07:40.321202448 +0100
+++ gdb-7.11.90.20160904/gdb/infrun.c 2016-09-04 17:57:45.568145391 +0200 +++ gdb-7.12.50.20170207/gdb/infrun.c 2017-02-07 21:07:42.680220365 +0100
@@ -2218,7 +2218,7 @@ @@ -2218,7 +2218,7 @@
schedlock_replay, schedlock_replay,
NULL NULL
@ -11,10 +11,10 @@ Index: gdb-7.11.90.20160904/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.11.90.20160904/gdb/testsuite/gdb.mi/mi-cli.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi-cli.exp
=================================================================== ===================================================================
--- gdb-7.11.90.20160904.orig/gdb/testsuite/gdb.mi/mi-cli.exp 2016-09-04 17:57:12.733853848 +0200 --- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.mi/mi-cli.exp 2017-02-07 21:07:40.322202455 +0100
+++ gdb-7.11.90.20160904/gdb/testsuite/gdb.mi/mi-cli.exp 2016-09-04 17:57:45.569145399 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi-cli.exp 2017-02-07 21:07:42.680220365 +0100
@@ -199,7 +199,7 @@ @@ -199,7 +199,7 @@
# 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.
@ -24,32 +24,32 @@ Index: gdb-7.11.90.20160904/gdb/testsuite/gdb.mi/mi-cli.exp
"34 next: run" "34 next: run"
# Test that the new current source line is output to the console # Test that the new current source line is output to the console
Index: gdb-7.11.90.20160904/gdb/testsuite/gdb.mi/mi-logging.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi-logging.exp
=================================================================== ===================================================================
--- gdb-7.11.90.20160904.orig/gdb/testsuite/gdb.mi/mi-logging.exp 2016-09-04 17:57:12.733853848 +0200 --- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.mi/mi-logging.exp 2017-02-07 21:07:42.681220372 +0100
+++ gdb-7.11.90.20160904/gdb/testsuite/gdb.mi/mi-logging.exp 2016-09-04 17:57:45.569145399 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi-logging.exp 2017-02-07 21:09:36.950088269 +0100
@@ -53,7 +53,7 @@ @@ -53,7 +53,7 @@
set mi_log_prompt "\[(\]gdb\[)\] \[\r\n\]+" set mi_log_prompt "\[(\]gdb\[)\] \[\r\n\]+"
-if [regexp "\\^done\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] { -if [regexp "\\^done\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
+if [regexp "\\^done\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] { +if [regexp "\\^done\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
pass "Log file contents" pass "log file contents"
} else { } else {
fail "Log file contents" fail "log file contents"
@@ -76,7 +76,7 @@ @@ -76,7 +76,7 @@
set logcontent [read $chan] set logcontent [read $chan]
close $chan close $chan
-if [regexp "1001\\^done\[\r\n\]+$mi_log_prompt.*1002\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt.*1003\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] { -if [regexp "1001\\^done\[\r\n\]+$mi_log_prompt.*1002\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt.*1003\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
+if [regexp "1001\\^done\[\r\n\]+$mi_log_prompt.*1002\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt.*1003\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] { +if [regexp "1001\\^done\[\r\n\]+$mi_log_prompt.*1002\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt.*1003\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
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.11.90.20160904/gdb/testsuite/gdb.mi/mi-console.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi-console.exp
=================================================================== ===================================================================
--- gdb-7.11.90.20160904.orig/gdb/testsuite/gdb.mi/mi-console.exp 2016-09-04 17:57:12.733853848 +0200 --- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.mi/mi-console.exp 2017-02-07 21:07:40.323202463 +0100
+++ gdb-7.11.90.20160904/gdb/testsuite/gdb.mi/mi-console.exp 2016-09-04 17:57:45.569145399 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi-console.exp 2017-02-07 21:07:42.681220372 +0100
@@ -60,6 +60,9 @@ @@ -60,6 +60,9 @@
mi_run_to_main mi_run_to_main
@ -60,10 +60,10 @@ Index: gdb-7.11.90.20160904/gdb/testsuite/gdb.mi/mi-console.exp
# The output we get from the target depends on how it is hosted. If # The output we get from the target depends on how it is hosted. If
# we are semihosted (e.g., the sim or a remote target that supports # we are semihosted (e.g., the sim or a remote target that supports
# the File I/O remote protocol extension), we see the target I/O # the File I/O remote protocol extension), we see the target I/O
Index: gdb-7.11.90.20160904/gdb/testsuite/gdb.opt/inline-cmds.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/inline-cmds.exp
=================================================================== ===================================================================
--- gdb-7.11.90.20160904.orig/gdb/testsuite/gdb.opt/inline-cmds.exp 2016-09-04 17:59:44.600202299 +0200 --- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.opt/inline-cmds.exp 2017-02-07 21:07:40.323202463 +0100
+++ gdb-7.11.90.20160904/gdb/testsuite/gdb.opt/inline-cmds.exp 2016-09-04 18:00:04.616380027 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/inline-cmds.exp 2017-02-07 21:07:42.681220372 +0100
@@ -331,7 +331,7 @@ @@ -331,7 +331,7 @@
send_gdb "interpreter-exec console \"step\"\n" send_gdb "interpreter-exec console \"step\"\n"

View File

@ -1,8 +1,8 @@
Index: gdb-7.4.50.20111219/gdb/testsuite/gdb.threads/staticthreads.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.threads/staticthreads.exp
=================================================================== ===================================================================
--- gdb-7.4.50.20111219.orig/gdb/testsuite/gdb.threads/staticthreads.exp 2011-12-19 21:07:01.436475201 +0100 --- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.threads/staticthreads.exp 2017-02-26 17:24:48.392316045 +0100
+++ gdb-7.4.50.20111219/gdb/testsuite/gdb.threads/staticthreads.exp 2011-12-19 22:08:55.444514127 +0100 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.threads/staticthreads.exp 2017-02-26 17:25:38.649677595 +0100
@@ -45,6 +45,13 @@ gdb_test_no_output "set print sevenbit-s @@ -41,6 +41,13 @@
# See if the static multi-threaded program runs. # See if the static multi-threaded program runs.
runto_main runto_main
@ -14,5 +14,5 @@ Index: gdb-7.4.50.20111219/gdb/testsuite/gdb.threads/staticthreads.exp
+gdb_test "info threads" "^info threads\r\n\[ \t\]*Id\[ \t\]+Target Id\[ \t\]+Frame\[ \t\]*\r\n\[^\r\n\]* Thread \[^\r\n\]*" "info threads on start" +gdb_test "info threads" "^info threads\r\n\[ \t\]*Id\[ \t\]+Target Id\[ \t\]+Frame\[ \t\]*\r\n\[^\r\n\]* Thread \[^\r\n\]*" "info threads on start"
+ +
gdb_test "break sem_post" gdb_test "break sem_post"
set test "Continue to main's call of sem_post" set test "continue to main's call of sem_post"
gdb_test_multiple "continue" "$test" { gdb_test_multiple "continue" "$test" {

View File

@ -1,7 +1,7 @@
Index: gdb-7.11.50.20160716/gdb/infrun.c Index: gdb-7.99.90.20170420/gdb/infrun.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/infrun.c 2016-07-16 14:37:09.317178150 +0200 --- gdb-7.99.90.20170420.orig/gdb/infrun.c 2017-04-20 23:19:16.056434309 +0200
+++ gdb-7.11.50.20160716/gdb/infrun.c 2016-07-16 14:37:10.636188765 +0200 +++ gdb-7.99.90.20170420/gdb/infrun.c 2017-04-20 23:19:22.932480367 +0200
@@ -620,6 +620,13 @@ @@ -620,6 +620,13 @@
target_pid_to_str (process_ptid)); target_pid_to_str (process_ptid));
} }
@ -16,10 +16,10 @@ Index: gdb-7.11.50.20160716/gdb/infrun.c
target_detach (NULL, 0); target_detach (NULL, 0);
} }
Index: gdb-7.11.50.20160716/gdb/linux-nat.c Index: gdb-7.99.90.20170420/gdb/linux-nat.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/linux-nat.c 2016-07-16 14:37:09.320178174 +0200 --- gdb-7.99.90.20170420.orig/gdb/linux-nat.c 2017-04-20 23:19:16.058434322 +0200
+++ gdb-7.11.50.20160716/gdb/linux-nat.c 2016-07-16 14:38:09.574663094 +0200 +++ gdb-7.99.90.20170420/gdb/linux-nat.c 2017-04-20 23:19:22.933480373 +0200
@@ -194,6 +194,11 @@ @@ -194,6 +194,11 @@
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;
@ -32,7 +32,7 @@ Index: gdb-7.11.50.20160716/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 *);
@@ -1047,6 +1052,9 @@ @@ -1055,6 +1060,9 @@
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");
@ -42,7 +42,7 @@ Index: gdb-7.11.50.20160716/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 /
@@ -1404,6 +1412,25 @@ @@ -1412,6 +1420,25 @@
return gdb_signal_to_host (signo); return gdb_signal_to_host (signo);
} }
@ -68,7 +68,7 @@ Index: gdb-7.11.50.20160716/gdb/linux-nat.c
return 0; return 0;
} }
@@ -1562,6 +1589,10 @@ @@ -1570,6 +1597,10 @@
detach_one_lwp (main_lwp, &signo); detach_one_lwp (main_lwp, &signo);
inf_ptrace_detach_success (ops); inf_ptrace_detach_success (ops);
@ -77,9 +77,9 @@ Index: gdb-7.11.50.20160716/gdb/linux-nat.c
+ pid_was_stopped = 0; + pid_was_stopped = 0;
+#endif +#endif
} }
delete_lwp (main_lwp->ptid);
} }
@@ -1823,6 +1854,16 @@
@@ -1830,6 +1861,16 @@
return; return;
} }
@ -96,7 +96,7 @@ Index: gdb-7.11.50.20160716/gdb/linux-nat.c
if (resume_many) if (resume_many)
iterate_over_lwps (ptid, linux_nat_resume_callback, lp); iterate_over_lwps (ptid, linux_nat_resume_callback, lp);
@@ -3819,6 +3860,10 @@ @@ -3826,6 +3867,10 @@
/* 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);
@ -107,10 +107,10 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/testsuite/gdb.threads/attach-stopped.exp Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.threads/attach-stopped.exp
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2016-07-16 14:37:09.321178182 +0200 --- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2017-04-20 23:19:16.059434329 +0200
+++ gdb-7.11.50.20160716/gdb/testsuite/gdb.threads/attach-stopped.exp 2016-07-16 14:37:10.640188797 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.threads/attach-stopped.exp 2017-04-20 23:19:22.933480373 +0200
@@ -56,7 +56,65 @@ @@ -56,7 +56,65 @@
gdb_reinitialize_dir $srcdir/$subdir gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile} gdb_load ${binfile}

View File

@ -1,17 +1,22 @@
Index: gdb-6.8.50.20090803/gdb/valops.c Index: gdb-7.12.50.20170207/gdb/valops.c
=================================================================== ===================================================================
--- gdb-6.8.50.20090803.orig/gdb/valops.c 2009-08-04 06:30:45.000000000 +0200 --- gdb-7.12.50.20170207.orig/gdb/valops.c 2017-02-26 17:26:43.839146565 +0100
+++ gdb-6.8.50.20090803/gdb/valops.c 2009-08-04 06:33:05.000000000 +0200 +++ gdb-7.12.50.20170207/gdb/valops.c 2017-02-26 17:28:40.840988272 +0100
@@ -926,10 +926,18 @@ value_assign (struct value *toval, struc @@ -1112,6 +1112,8 @@
struct gdbarch *gdbarch; struct gdbarch *gdbarch;
int value_reg; int value_reg;
- /* Figure out which frame this is in currently. */ + value_reg = VALUE_REGNUM (toval);
- frame = frame_find_by_id (VALUE_FRAME_ID (toval)); +
value_reg = VALUE_REGNUM (toval); /* Figure out which frame this is in currently.
+ /* Figure out which frame this is in currently. */ We use VALUE_FRAME_ID for obtaining the value's frame id instead of
+ frame = frame_find_by_id (VALUE_FRAME_ID (toval)); @@ -1121,8 +1123,14 @@
frame. */
frame = frame_find_by_id (VALUE_FRAME_ID (toval));
- value_reg = VALUE_REGNUM (toval);
-
+ /* "set $reg+=1" should work on programs with no debug info, + /* "set $reg+=1" should work on programs with no debug info,
+ but frame_find_by_id returns NULL here (RH bug 436037). + but frame_find_by_id returns NULL here (RH bug 436037).
+ Use current frame, it represents CPU state in this case. + Use current frame, it represents CPU state in this case.

View File

@ -5,11 +5,11 @@ 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.11.50.20160630/gdb/defs.h Index: gdb-7.12.50.20170207/gdb/defs.h
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/defs.h 2016-07-03 16:40:43.423078926 +0200 --- gdb-7.12.50.20170207.orig/gdb/defs.h 2017-02-26 21:11:35.654350580 +0100
+++ gdb-7.11.50.20160630/gdb/defs.h 2016-07-03 16:41:08.568271741 +0200 +++ gdb-7.12.50.20170207/gdb/defs.h 2017-02-26 21:11:52.932473129 +0100
@@ -175,6 +175,10 @@ @@ -169,6 +169,10 @@
/* Flag that function quit should call quit_force. */ /* Flag that function quit should call quit_force. */
extern volatile int sync_quit_force_run; extern volatile int sync_quit_force_run;
@ -20,10 +20,10 @@ Index: gdb-7.11.50.20160630/gdb/defs.h
extern void quit (void); extern void quit (void);
/* Helper for the QUIT macro. */ /* Helper for the QUIT macro. */
Index: gdb-7.11.50.20160630/gdb/extension.c Index: gdb-7.12.50.20170207/gdb/extension.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/extension.c 2016-07-03 16:40:41.723065890 +0200 --- gdb-7.12.50.20170207.orig/gdb/extension.c 2017-02-26 21:11:35.655350587 +0100
+++ gdb-7.11.50.20160630/gdb/extension.c 2016-07-03 16:41:44.896550309 +0200 +++ gdb-7.12.50.20170207/gdb/extension.c 2017-02-26 21:11:52.933473136 +0100
@@ -830,6 +830,11 @@ @@ -830,6 +830,11 @@
int i, result = 0; int i, result = 0;
const struct extension_language_defn *extlang; const struct extension_language_defn *extlang;
@ -36,12 +36,12 @@ Index: gdb-7.11.50.20160630/gdb/extension.c
ALL_ENABLED_EXTENSION_LANGUAGES (i, extlang) ALL_ENABLED_EXTENSION_LANGUAGES (i, extlang)
{ {
if (extlang->ops->check_quit_flag != NULL) if (extlang->ops->check_quit_flag != NULL)
Index: gdb-7.11.50.20160630/gdb/top.c Index: gdb-7.12.50.20170207/gdb/top.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/top.c 2016-07-03 16:40:41.724065898 +0200 --- gdb-7.12.50.20170207.orig/gdb/top.c 2017-02-26 21:11:35.655350587 +0100
+++ gdb-7.11.50.20160630/gdb/top.c 2016-07-03 16:40:43.424078934 +0200 +++ gdb-7.12.50.20170207/gdb/top.c 2017-02-26 21:11:52.933473136 +0100
@@ -1617,7 +1617,13 @@ @@ -1619,7 +1619,13 @@
qt.args = args; qt.args = NULL;
qt.from_tty = from_tty; qt.from_tty = from_tty;
+#ifndef NEED_DETACH_SIGSTOP +#ifndef NEED_DETACH_SIGSTOP
@ -54,11 +54,11 @@ Index: gdb-7.11.50.20160630/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. */
TRY TRY
Index: gdb-7.11.50.20160630/gdb/utils.c Index: gdb-7.12.50.20170207/gdb/utils.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/utils.c 2016-07-03 16:40:41.725065905 +0200 --- gdb-7.12.50.20170207.orig/gdb/utils.c 2017-02-26 21:11:35.657350601 +0100
+++ gdb-7.11.50.20160630/gdb/utils.c 2016-07-03 16:41:38.961504799 +0200 +++ gdb-7.12.50.20170207/gdb/utils.c 2017-02-26 21:11:52.934473143 +0100
@@ -109,6 +109,13 @@ @@ -106,6 +106,13 @@
int job_control; int job_control;

View File

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

View File

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

View File

@ -1,8 +1,8 @@
Index: gdb-7.11.90.20160829/gdb/breakpoint.c Index: gdb-7.99.90.20170420/gdb/breakpoint.c
=================================================================== ===================================================================
--- gdb-7.11.90.20160829.orig/gdb/breakpoint.c 2016-08-29 09:41:57.054875810 +0200 --- gdb-7.99.90.20170420.orig/gdb/breakpoint.c 2017-04-20 23:04:39.627960523 +0200
+++ gdb-7.11.90.20160829/gdb/breakpoint.c 2016-08-29 09:45:04.166612376 +0200 +++ gdb-7.99.90.20170420/gdb/breakpoint.c 2017-04-20 23:07:29.854919725 +0200
@@ -16176,6 +16176,50 @@ @@ -16086,6 +16086,50 @@
static struct cmd_list_element *enablebreaklist = NULL; static struct cmd_list_element *enablebreaklist = NULL;
void void
@ -45,19 +45,19 @@ Index: gdb-7.11.90.20160829/gdb/breakpoint.c
+ } + }
+ +
+ if (changed) + if (changed)
+ qsort (bp_location, bp_location_count, sizeof (*bp_location), + qsort (bp_locations, bp_locations_count, sizeof (*bp_locations),
+ bp_location_compare); + bp_locations_compare);
+} +}
+ +
+void +void
_initialize_breakpoint (void) _initialize_breakpoint (void)
{ {
struct cmd_list_element *c; struct cmd_list_element *c;
Index: gdb-7.11.90.20160829/gdb/breakpoint.h Index: gdb-7.99.90.20170420/gdb/breakpoint.h
=================================================================== ===================================================================
--- gdb-7.11.90.20160829.orig/gdb/breakpoint.h 2016-08-29 09:41:57.054875810 +0200 --- gdb-7.99.90.20170420.orig/gdb/breakpoint.h 2017-04-20 23:04:39.627960523 +0200
+++ gdb-7.11.90.20160829/gdb/breakpoint.h 2016-08-29 09:42:24.370129320 +0200 +++ gdb-7.99.90.20170420/gdb/breakpoint.h 2017-04-20 23:04:48.331009563 +0200
@@ -1644,4 +1644,7 @@ @@ -1646,4 +1646,7 @@
UIOUT iff debugging multiple threads. */ UIOUT iff debugging multiple threads. */
extern void maybe_print_thread_hit_breakpoint (struct ui_out *uiout); extern void maybe_print_thread_hit_breakpoint (struct ui_out *uiout);
@ -65,11 +65,11 @@ Index: gdb-7.11.90.20160829/gdb/breakpoint.h
+ struct section_offsets *delta); + struct section_offsets *delta);
+ +
#endif /* !defined (BREAKPOINT_H) */ #endif /* !defined (BREAKPOINT_H) */
Index: gdb-7.11.90.20160829/gdb/objfiles.c Index: gdb-7.99.90.20170420/gdb/objfiles.c
=================================================================== ===================================================================
--- gdb-7.11.90.20160829.orig/gdb/objfiles.c 2016-08-29 09:41:57.054875810 +0200 --- gdb-7.99.90.20170420.orig/gdb/objfiles.c 2017-04-20 23:04:39.627960523 +0200
+++ gdb-7.11.90.20160829/gdb/objfiles.c 2016-08-29 09:42:24.370129320 +0200 +++ gdb-7.99.90.20170420/gdb/objfiles.c 2017-04-20 23:04:48.332009569 +0200
@@ -916,6 +916,11 @@ @@ -909,6 +909,11 @@
obj_section_addr (s)); obj_section_addr (s));
} }

View File

@ -42,30 +42,6 @@ Index: gdb-7.9.50.20150520/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.9.50.20150520/gdb/jv-lang.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/jv-lang.c 2015-05-31 16:55:29.724475491 +0200
+++ gdb-7.9.50.20150520/gdb/jv-lang.c 2015-05-31 16:55:30.820482408 +0200
@@ -427,7 +427,8 @@ java_link_class_type (struct gdbarch *gd
fields = NULL;
nfields--; /* First set up dummy "class" field. */
- SET_FIELD_PHYSADDR (TYPE_FIELD (type, nfields), value_address (clas));
+ SET_FIELD_PHYSADDR (TYPE_FIELD (type, nfields), value_address (clas)
+ - (TYPE_OBJFILE (type) == NULL ? 0 : ANOFFSET (TYPE_OBJFILE (type)->section_offsets, SECT_OFF_TEXT (TYPE_OBJFILE (type)))));
TYPE_FIELD_NAME (type, nfields) = "class";
TYPE_FIELD_TYPE (type, nfields) = value_type (clas);
SET_TYPE_FIELD_PRIVATE (type, nfields);
@@ -475,7 +476,8 @@ java_link_class_type (struct gdbarch *gd
SET_TYPE_FIELD_PROTECTED (type, i);
}
if (accflags & 0x0008) /* ACC_STATIC */
- SET_FIELD_PHYSADDR (TYPE_FIELD (type, i), boffset);
+ SET_FIELD_PHYSADDR (TYPE_FIELD (type, i), boffset
+ - (TYPE_OBJFILE (type) == NULL ? 0 : ANOFFSET (TYPE_OBJFILE (type)->section_offsets, SECT_OFF_TEXT (TYPE_OBJFILE (type)))));
else
SET_FIELD_BITPOS (TYPE_FIELD (type, i), 8 * boffset);
if (accflags & 0x8000) /* FIELD_UNRESOLVED_FLAG */
Index: gdb-7.9.50.20150520/gdb/value.c Index: gdb-7.9.50.20150520/gdb/value.c
=================================================================== ===================================================================
--- gdb-7.9.50.20150520.orig/gdb/value.c 2015-05-31 16:55:29.725475497 +0200 --- gdb-7.9.50.20150520.orig/gdb/value.c 2015-05-31 16:55:29.725475497 +0200

View File

@ -1,7 +1,7 @@
Index: gdb-7.12/gdb/testsuite/gdb.ada/packed_array.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.ada/packed_array.exp
=================================================================== ===================================================================
--- gdb-7.12.orig/gdb/testsuite/gdb.ada/packed_array.exp 2016-08-01 17:50:21.000000000 +0200 --- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.ada/packed_array.exp 2017-02-26 19:15:28.552824751 +0100
+++ gdb-7.12/gdb/testsuite/gdb.ada/packed_array.exp 2016-10-22 09:45:15.849013467 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.ada/packed_array.exp 2017-02-26 19:15:36.597882316 +0100
@@ -56,5 +56,11 @@ @@ -56,5 +56,11 @@
# are. Observed with (FSF GNU Ada 4.5.3 20110124). # are. Observed with (FSF GNU Ada 4.5.3 20110124).
xfail $test xfail $test
@ -14,10 +14,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.ada/packed_array.exp
+ } + }
} }
Index: gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-pointer-foo.S Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-pointer-foo.S
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-pointer-foo.S 2016-10-22 09:50:38.510393903 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-pointer-foo.S 2017-02-26 19:15:36.598882323 +0100
@@ -0,0 +1,358 @@ @@ -0,0 +1,358 @@
+ .file "x86_64-vla-pointer.c" + .file "x86_64-vla-pointer.c"
+ .text + .text
@ -377,10 +377,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-pointer-foo.S
+ .string "array" + .string "array"
+ .ident "GCC: (GNU) 6.2.1 20160916 (Red Hat 6.2.1-2)" + .ident "GCC: (GNU) 6.2.1 20160916 (Red Hat 6.2.1-2)"
+ .section .note.GNU-stack,"",@progbits + .section .note.GNU-stack,"",@progbits
Index: gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-pointer.c Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-pointer.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-pointer.c 2016-10-22 09:50:40.335407367 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-pointer.c 2017-02-26 19:15:36.598882323 +0100
@@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -427,10 +427,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-pointer.c
+} +}
+ +
+#endif +#endif
Index: gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-pointer.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-pointer.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-pointer.exp 2016-10-22 21:10:56.210413346 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-pointer.exp 2017-02-26 19:15:36.598882323 +0100
@@ -0,0 +1,65 @@ @@ -0,0 +1,65 @@
+# Copyright 2009 Free Software Foundation, Inc. +# Copyright 2009 Free Software Foundation, Inc.
+ +
@ -497,10 +497,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-pointer.exp
+gdb_test "whatis array" "type = array_t" "second: whatis array" +gdb_test "whatis array" "type = array_t" "second: whatis array"
+gdb_test "whatis array_t" "type = char \\\[variable length\\\]" "second: whatis array_t" +gdb_test "whatis array_t" "type = char \\\[variable length\\\]" "second: whatis array_t"
+gdb_test "ptype array" "type = char \\\[78\\\]" "second: ptype array" +gdb_test "ptype array" "type = char \\\[78\\\]" "second: ptype array"
Index: gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-typedef-foo.S Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-typedef-foo.S
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-typedef-foo.S 2016-10-22 09:45:15.851013482 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-typedef-foo.S 2017-02-26 19:15:36.598882323 +0100
@@ -0,0 +1,455 @@ @@ -0,0 +1,455 @@
+ .file "x86_64-vla-typedef.c" + .file "x86_64-vla-typedef.c"
+ .section .debug_abbrev,"",@progbits + .section .debug_abbrev,"",@progbits
@ -957,10 +957,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-typedef-foo.S
+ .string "GNU C 4.3.2 20081105 (Red Hat 4.3.2-7)" + .string "GNU C 4.3.2 20081105 (Red Hat 4.3.2-7)"
+ .ident "GCC: (GNU) 4.3.2 20081105 (Red Hat 4.3.2-7)" + .ident "GCC: (GNU) 4.3.2 20081105 (Red Hat 4.3.2-7)"
+ .section .note.GNU-stack,"",@progbits + .section .note.GNU-stack,"",@progbits
Index: gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-typedef.c Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-typedef.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-typedef.c 2016-10-22 09:45:15.851013482 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-typedef.c 2017-02-26 19:15:36.599882330 +0100
@@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -1007,10 +1007,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-typedef.c
+} +}
+ +
+#endif +#endif
Index: gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-typedef.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-typedef.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-typedef.exp 2016-10-22 09:45:15.851013482 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-typedef.exp 2017-02-26 19:15:36.599882330 +0100
@@ -0,0 +1,64 @@ @@ -0,0 +1,64 @@
+# Copyright 2009 Free Software Foundation, Inc. +# Copyright 2009 Free Software Foundation, Inc.
+ +
@ -1076,10 +1076,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-typedef.exp
+gdb_test "whatis array" "type = array_t" "second: whatis array" +gdb_test "whatis array" "type = array_t" "second: whatis array"
+ +
+gdb_test "ptype array" "type = char \\\[78\\\]" "second: ptype array" +gdb_test "ptype array" "type = char \\\[78\\\]" "second: ptype array"
Index: gdb-7.12/gdb/testsuite/gdb.base/arrayidx.c Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/arrayidx.c
=================================================================== ===================================================================
--- gdb-7.12.orig/gdb/testsuite/gdb.base/arrayidx.c 2016-08-01 17:50:21.000000000 +0200 --- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.base/arrayidx.c 2017-02-26 19:15:28.555824772 +0100
+++ gdb-7.12/gdb/testsuite/gdb.base/arrayidx.c 2016-10-22 09:45:15.851013482 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/arrayidx.c 2017-02-26 19:15:36.599882330 +0100
@@ -17,6 +17,13 @@ @@ -17,6 +17,13 @@
int array[] = {1, 2, 3, 4}; int array[] = {1, 2, 3, 4};
@ -1094,13 +1094,13 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/arrayidx.c
int int
main (void) main (void)
{ {
Index: gdb-7.12/gdb/testsuite/gdb.base/arrayidx.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/arrayidx.exp
=================================================================== ===================================================================
--- gdb-7.12.orig/gdb/testsuite/gdb.base/arrayidx.exp 2016-08-01 17:50:21.000000000 +0200 --- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.base/arrayidx.exp 2017-02-26 19:15:28.555824772 +0100
+++ gdb-7.12/gdb/testsuite/gdb.base/arrayidx.exp 2016-10-22 09:45:15.851013482 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/arrayidx.exp 2017-02-26 19:15:36.599882330 +0100
@@ -49,4 +49,12 @@ @@ -49,4 +49,12 @@
"\\{\\\[0\\\] = 1, \\\[1\\\] = 2, \\\[2\\\] = 3, \\\[3\\\] = 4\\}" \ "\\{\\\[0\\\] = 1, \\\[1\\\] = 2, \\\[2\\\] = 3, \\\[3\\\] = 4\\}" \
"Print array with array-indexes on" "print array with array-indexes on"
- -
+set test "p unbound.a == &unbound.a\[0\]" +set test "p unbound.a == &unbound.a\[0\]"
@ -1112,10 +1112,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/arrayidx.exp
+ unsupported "$test (no GCC)" + unsupported "$test (no GCC)"
+ } + }
+} +}
Index: gdb-7.12/gdb/testsuite/gdb.base/internal-var-field-address.c Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/internal-var-field-address.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.base/internal-var-field-address.c 2016-10-22 09:45:15.852013490 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/internal-var-field-address.c 2017-02-26 19:15:36.599882330 +0100
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -1137,10 +1137,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/internal-var-field-address.c
+struct { +struct {
+ int field; + int field;
+} staticstruct = { 1 }; +} staticstruct = { 1 };
Index: gdb-7.12/gdb/testsuite/gdb.base/internal-var-field-address.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/internal-var-field-address.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.base/internal-var-field-address.exp 2016-10-22 09:45:15.852013490 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/internal-var-field-address.exp 2017-02-26 19:15:36.600882337 +0100
@@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
+# Copyright 2009 Free Software Foundation, Inc. +# Copyright 2009 Free Software Foundation, Inc.
+ +
@ -1168,10 +1168,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/internal-var-field-address.exp
+ +
+gdb_test {set $varstruct = staticstruct} +gdb_test {set $varstruct = staticstruct}
+gdb_test {p $varstruct.field} " = 1" +gdb_test {p $varstruct.field} " = 1"
Index: gdb-7.12/gdb/testsuite/gdb.base/vla-frame.c Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-frame.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.base/vla-frame.c 2016-10-22 09:45:15.852013490 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-frame.c 2017-02-26 19:15:36.600882337 +0100
@@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -1204,10 +1204,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/vla-frame.c
+ f (s); + f (s);
+ return 0; + return 0;
+} +}
Index: gdb-7.12/gdb/testsuite/gdb.base/vla-frame.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-frame.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.base/vla-frame.exp 2016-10-22 09:45:15.852013490 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-frame.exp 2017-02-26 19:15:36.600882337 +0100
@@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
+# Copyright 2011 Free Software Foundation, Inc. +# Copyright 2011 Free Software Foundation, Inc.
+# +#
@ -1247,10 +1247,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/vla-frame.exp
+} +}
+ +
+gdb_test "bt full" "\r\n +s = \"X\\\\000\"\r\n.*" +gdb_test "bt full" "\r\n +s = \"X\\\\000\"\r\n.*"
Index: gdb-7.12/gdb/testsuite/gdb.base/vla-overflow.c Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-overflow.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.base/vla-overflow.c 2016-10-22 09:45:15.852013490 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-overflow.c 2017-02-26 19:15:36.600882337 +0100
@@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -1282,10 +1282,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/vla-overflow.c
+ +
+ return 0; + return 0;
+} +}
Index: gdb-7.12/gdb/testsuite/gdb.base/vla-overflow.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-overflow.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.base/vla-overflow.exp 2016-10-22 09:45:15.852013490 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-overflow.exp 2017-02-26 19:15:36.600882337 +0100
@@ -0,0 +1,109 @@ @@ -0,0 +1,109 @@
+# Copyright 2008 Free Software Foundation, Inc. +# Copyright 2008 Free Software Foundation, Inc.
+ +
@ -1396,10 +1396,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/vla-overflow.exp
+gdb_test "bt" "in \[^ \]*abort \\(.* in main \\(.*" "Backtrace after abort()" +gdb_test "bt" "in \[^ \]*abort \\(.* in main \\(.*" "Backtrace after abort()"
+ +
+verbose -log "kb_found in bt after abort() = [expr [memory_v_pages_get] * $pagesize / 1024]" +verbose -log "kb_found in bt after abort() = [expr [memory_v_pages_get] * $pagesize / 1024]"
Index: gdb-7.12/gdb/testsuite/gdb.base/vla.c Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.base/vla.c 2016-10-22 09:45:15.852013490 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla.c 2017-02-26 19:15:36.600882337 +0100
@@ -0,0 +1,55 @@ @@ -0,0 +1,55 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -1456,10 +1456,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/vla.c
+ foo (78); + foo (78);
+ return 0; + return 0;
+} +}
Index: gdb-7.12/gdb/testsuite/gdb.base/vla.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.base/vla.exp 2016-10-22 09:45:15.853013497 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla.exp 2017-02-26 19:15:36.600882337 +0100
@@ -0,0 +1,62 @@ @@ -0,0 +1,62 @@
+# Copyright 2008 Free Software Foundation, Inc. +# Copyright 2008 Free Software Foundation, Inc.
+ +
@ -1523,10 +1523,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/vla.exp
+gdb_test "p temp1" " = '1' <repeats 78 times>" "second: print temp1" +gdb_test "p temp1" " = '1' <repeats 78 times>" "second: print temp1"
+gdb_test "p temp2" " = '2' <repeats 78 times>" "second: print temp2" +gdb_test "p temp2" " = '2' <repeats 78 times>" "second: print temp2"
+gdb_test "p temp3" " = '3' <repeats 48 times>" "second: print temp3" +gdb_test "p temp3" " = '3' <repeats 48 times>" "second: print temp3"
Index: gdb-7.12/gdb/testsuite/gdb.cp/gdb9593.cc Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.cp/gdb9593.cc
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.cp/gdb9593.cc 2016-10-22 09:45:15.853013497 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.cp/gdb9593.cc 2017-02-26 19:15:36.601882344 +0100
@@ -0,0 +1,180 @@ @@ -0,0 +1,180 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -1708,10 +1708,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.cp/gdb9593.cc
+ } + }
+} +}
+ +
Index: gdb-7.12/gdb/testsuite/gdb.cp/gdb9593.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.cp/gdb9593.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.cp/gdb9593.exp 2016-10-22 09:45:15.853013497 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.cp/gdb9593.exp 2017-02-26 19:15:36.601882344 +0100
@@ -0,0 +1,182 @@ @@ -0,0 +1,182 @@
+# Copyright 2008, 2009 Free Software Foundation, Inc. +# Copyright 2008, 2009 Free Software Foundation, Inc.
+ +
@ -1895,10 +1895,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.cp/gdb9593.exp
+gdb_test "advance $line" \ +gdb_test "advance $line" \
+ ".*catch (...).*" \ + ".*catch (...).*" \
+ "advance-over-throw" + "advance-over-throw"
Index: gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S 2016-10-22 09:45:15.853013497 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S 2017-02-26 19:15:36.601882344 +0100
@@ -0,0 +1,246 @@ @@ -0,0 +1,246 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -2146,10 +2146,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S
+ .string "char" + .string "char"
+.Luint_str: +.Luint_str:
+ .string "unsigned int" + .string "unsigned int"
Index: gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp 2016-10-22 09:45:15.854013504 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp 2017-02-26 19:15:36.602882352 +0100
@@ -0,0 +1,66 @@ @@ -0,0 +1,66 @@
+# Copyright 2010 Free Software Foundation, Inc. +# Copyright 2010 Free Software Foundation, Inc.
+ +
@ -2217,10 +2217,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp
+ +
+# The register contains unpredictable value - the array size. +# The register contains unpredictable value - the array size.
+gdb_test "ptype reg_string" {type = char \[-?[0-9]+\]} +gdb_test "ptype reg_string" {type = char \[-?[0-9]+\]}
Index: gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-stripped.c Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-stripped.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-stripped.c 2016-10-22 09:45:15.854013504 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-stripped.c 2017-02-26 19:15:36.602882352 +0100
@@ -0,0 +1,42 @@ @@ -0,0 +1,42 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -2264,10 +2264,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-stripped.c
+ func1 (1, 2); + func1 (1, 2);
+ return 0; + return 0;
+} +}
Index: gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp 2016-10-22 09:45:15.854013504 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp 2017-02-26 19:15:36.602882352 +0100
@@ -0,0 +1,79 @@ @@ -0,0 +1,79 @@
+# Copyright 2006 Free Software Foundation, Inc. +# Copyright 2006 Free Software Foundation, Inc.
+ +
@ -2348,10 +2348,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp
+gdb_test "step" \ +gdb_test "step" \
+ "func.* \\(.*\\) at .*" \ + "func.* \\(.*\\) at .*" \
+ "step" + "step"
Index: gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.S Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.S
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.S 2016-10-22 09:45:15.854013504 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.S 2017-02-26 19:15:36.602882352 +0100
@@ -0,0 +1,83 @@ @@ -0,0 +1,83 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -2436,10 +2436,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.S
+ +
+ .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */
+ .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */
Index: gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp 2016-10-22 09:45:15.854013504 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp 2017-02-26 19:15:36.602882352 +0100
@@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
+# Copyright 2009 Free Software Foundation, Inc. +# Copyright 2009 Free Software Foundation, Inc.
+ +
@ -2478,10 +2478,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp
+clean_restart $binfile +clean_restart $binfile
+ +
+gdb_test "ptype struct some_struct" "type = struct some_struct {\[\r\n \t\]*void field;\[\r\n \t\]*}" +gdb_test "ptype struct some_struct" "type = struct some_struct {\[\r\n \t\]*void field;\[\r\n \t\]*}"
Index: gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S 2016-10-22 09:45:15.854013504 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S 2017-02-26 19:15:36.602882352 +0100
@@ -0,0 +1,121 @@ @@ -0,0 +1,121 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -2604,10 +2604,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S
+ .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */
+ +
+ .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */
Index: gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.exp 2016-10-22 09:45:15.855013512 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.exp 2017-02-26 19:15:36.603882359 +0100
@@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
+# Copyright 2012 Free Software Foundation, Inc. +# Copyright 2012 Free Software Foundation, Inc.
+ +
@ -2648,10 +2648,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.exp
+ +
+gdb_test "ptype notype_string" {type = char \[129\]} +gdb_test "ptype notype_string" {type = char \[129\]}
+gdb_test "p notype_string" " = 'x' <repeats 129 times>" +gdb_test "p notype_string" " = 'x' <repeats 129 times>"
Index: gdb-7.12/gdb/testsuite/gdb.fortran/dwarf-stride.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dwarf-stride.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.fortran/dwarf-stride.exp 2016-10-22 09:45:15.855013512 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dwarf-stride.exp 2017-02-26 19:15:36.603882359 +0100
@@ -0,0 +1,42 @@ @@ -0,0 +1,42 @@
+# Copyright 2009 Free Software Foundation, Inc. +# Copyright 2009 Free Software Foundation, Inc.
+ +
@ -2695,10 +2695,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.fortran/dwarf-stride.exp
+gdb_continue_to_breakpoint "break-here" ".*break-here.*" +gdb_continue_to_breakpoint "break-here" ".*break-here.*"
+gdb_test "p c40pt(1)" " = '0-hello.*" +gdb_test "p c40pt(1)" " = '0-hello.*"
+gdb_test "p c40pt(2)" " = '1-hello.*" +gdb_test "p c40pt(2)" " = '1-hello.*"
Index: gdb-7.12/gdb/testsuite/gdb.fortran/dwarf-stride.f90 Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dwarf-stride.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.fortran/dwarf-stride.f90 2016-10-22 09:45:15.855013512 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dwarf-stride.f90 2017-02-26 19:15:36.603882359 +0100
@@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
+! Copyright 2009 Free Software Foundation, Inc. +! Copyright 2009 Free Software Foundation, Inc.
+! +!
@ -2740,10 +2740,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.fortran/dwarf-stride.f90
+ print *, c40pt ! break-here + print *, c40pt ! break-here
+ +
+end program repro +end program repro
Index: gdb-7.12/gdb/testsuite/gdb.fortran/dynamic.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dynamic.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.fortran/dynamic.exp 2016-10-22 09:45:15.855013512 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dynamic.exp 2017-02-26 19:15:36.603882359 +0100
@@ -0,0 +1,154 @@ @@ -0,0 +1,154 @@
+# Copyright 2007 Free Software Foundation, Inc. +# Copyright 2007 Free Software Foundation, Inc.
+ +
@ -2899,10 +2899,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.fortran/dynamic.exp
+gdb_test "p vart(3,8)" "\\$\[0-9\]* = 9" +gdb_test "p vart(3,8)" "\\$\[0-9\]* = 9"
+# maps to foo::vary(1,3) +# maps to foo::vary(1,3)
+gdb_test "p vart(2,9)" "\\$\[0-9\]* = 10" +gdb_test "p vart(2,9)" "\\$\[0-9\]* = 10"
Index: gdb-7.12/gdb/testsuite/gdb.fortran/dynamic.f90 Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dynamic.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.fortran/dynamic.f90 2016-10-22 09:45:15.855013512 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dynamic.f90 2017-02-26 19:15:36.603882359 +0100
@@ -0,0 +1,98 @@ @@ -0,0 +1,98 @@
+! Copyright 2007 Free Software Foundation, Inc. +! Copyright 2007 Free Software Foundation, Inc.
+! +!
@ -3002,10 +3002,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.fortran/dynamic.f90
+ if (x (1, 1) .ne. 8 .or. x (2, 2) .ne. 9 .or. x (1, 2) .ne. 4) call abort + if (x (1, 1) .ne. 8 .or. x (2, 2) .ne. 9 .or. x (1, 2) .ne. 4) call abort
+ if (x (3, 1) .ne. 10) call abort + if (x (3, 1) .ne. 10) call abort
+end +end
Index: gdb-7.12/gdb/testsuite/gdb.fortran/string.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/string.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.fortran/string.exp 2016-10-22 09:45:15.855013512 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/string.exp 2017-02-26 19:15:36.604882366 +0100
@@ -0,0 +1,59 @@ @@ -0,0 +1,59 @@
+# Copyright 2008 Free Software Foundation, Inc. +# Copyright 2008 Free Software Foundation, Inc.
+ +
@ -3066,10 +3066,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.fortran/string.exp
+gdb_continue_to_breakpoint "var-finish" +gdb_continue_to_breakpoint "var-finish"
+gdb_test "p e" "\\$\[0-9\]* = 'e '" "p e re-set" +gdb_test "p e" "\\$\[0-9\]* = 'e '" "p e re-set"
+gdb_test "p f" "\\$\[0-9\]* = \\(\\( 'f ', 'f ', 'f ', 'f ', 'f ', 'f ', 'f '\\) \\( 'f2 ', 'f ', 'f ', 'f ', 'f ', 'f ', 'f '\\) \\( 'f ', 'f ', 'f ', 'f ', 'f ', 'f ', 'f '\\) \\)" "p *f re-set" +gdb_test "p f" "\\$\[0-9\]* = \\(\\( 'f ', 'f ', 'f ', 'f ', 'f ', 'f ', 'f '\\) \\( 'f2 ', 'f ', 'f ', 'f ', 'f ', 'f ', 'f '\\) \\( 'f ', 'f ', 'f ', 'f ', 'f ', 'f ', 'f '\\) \\)" "p *f re-set"
Index: gdb-7.12/gdb/testsuite/gdb.fortran/string.f90 Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/string.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.fortran/string.f90 2016-10-22 09:45:15.856013519 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/string.f90 2017-02-26 19:15:36.604882366 +0100
@@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
+! Copyright 2008 Free Software Foundation, Inc. +! Copyright 2008 Free Software Foundation, Inc.
+! +!
@ -3108,10 +3108,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.fortran/string.f90
+ h = 'h' + h = 'h'
+ call foo (g, h) + call foo (g, h)
+end +end
Index: gdb-7.12/gdb/testsuite/gdb.fortran/subrange.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/subrange.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.fortran/subrange.exp 2016-10-22 09:45:15.856013519 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/subrange.exp 2017-02-26 19:15:36.604882366 +0100
@@ -0,0 +1,72 @@ @@ -0,0 +1,72 @@
+# Copyright 2011 Free Software Foundation, Inc. +# Copyright 2011 Free Software Foundation, Inc.
+ +
@ -3185,10 +3185,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.fortran/subrange.exp
+gdb_unload +gdb_unload
+setup_kfail "*-*-*" "vlaregression/9999" +setup_kfail "*-*-*" "vlaregression/9999"
+gdb_test {p $a (3, 2:2)} { = \(23\)} +gdb_test {p $a (3, 2:2)} { = \(23\)}
Index: gdb-7.12/gdb/testsuite/gdb.fortran/subrange.f90 Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/subrange.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.fortran/subrange.f90 2016-10-22 09:45:15.856013519 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/subrange.f90 2017-02-26 19:15:36.604882366 +0100
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
+! Copyright 2011 Free Software Foundation, Inc. +! Copyright 2011 Free Software Foundation, Inc.
+! +!
@ -3218,10 +3218,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.fortran/subrange.f90
+ ptr => a + ptr => a
+ write (*,*) a ! break-static + write (*,*) a ! break-static
+end +end
Index: gdb-7.12/gdb/testsuite/gdb.mi/mi2-var-stale-type.c Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi2-var-stale-type.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.mi/mi2-var-stale-type.c 2016-10-22 09:45:15.856013519 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi2-var-stale-type.c 2017-02-26 19:15:36.604882366 +0100
@@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
+/* Copyright 2011 Free Software Foundation, Inc. +/* Copyright 2011 Free Software Foundation, Inc.
+ +
@ -3249,10 +3249,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.mi/mi2-var-stale-type.c
+ +
+ return 0; + return 0;
+} +}
Index: gdb-7.12/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp 2016-10-22 09:45:15.856013519 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp 2017-02-26 19:15:36.604882366 +0100
@@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
+# Copyright 2011 Free Software Foundation, Inc. +# Copyright 2011 Free Software Foundation, Inc.
+# +#
@ -3311,10 +3311,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp
+mi_create_varobj "vla" "vla" "create local variable vla" +mi_create_varobj "vla" "vla" "create local variable vla"
+ +
+mi_gdb_test "-var-update *" "\\^done,changelist=.*" "-var-update *" +mi_gdb_test "-var-update *" "\\^done,changelist=.*" "-var-update *"
Index: gdb-7.12/gdb/testsuite/gdb.opt/array-from-register-func.c Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/array-from-register-func.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.opt/array-from-register-func.c 2016-10-22 09:45:15.856013519 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/array-from-register-func.c 2017-02-26 19:15:36.604882366 +0100
@@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
+/* This file is part of GDB, the GNU debugger. +/* This file is part of GDB, the GNU debugger.
+ +
@ -3338,10 +3338,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.opt/array-from-register-func.c
+{ +{
+ return arr[0]; + return arr[0];
+} +}
Index: gdb-7.12/gdb/testsuite/gdb.opt/array-from-register.c Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/array-from-register.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.opt/array-from-register.c 2016-10-22 09:45:15.856013519 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/array-from-register.c 2017-02-26 19:15:36.605882373 +0100
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
+/* This file is part of GDB, the GNU debugger. +/* This file is part of GDB, the GNU debugger.
+ +
@ -3371,10 +3371,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.opt/array-from-register.c
+ +
+ return 0; + return 0;
+} +}
Index: gdb-7.12/gdb/testsuite/gdb.opt/array-from-register.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/array-from-register.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.opt/array-from-register.exp 2016-10-22 09:45:15.857013527 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/array-from-register.exp 2017-02-26 19:15:36.605882373 +0100
@@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
+# Copyright 2009 Free Software Foundation, Inc. +# Copyright 2009 Free Software Foundation, Inc.
+# +#
@ -3409,10 +3409,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.opt/array-from-register.exp
+# Seen regression: +# Seen regression:
+# Address requested for identifier "arr" which is in register $rdi +# Address requested for identifier "arr" which is in register $rdi
+gdb_test "p arr\[0\]" "\\$\[0-9\]+ = 42" +gdb_test "p arr\[0\]" "\\$\[0-9\]+ = 42"
Index: gdb-7.12/gdb/testsuite/gdb.opt/fortran-string.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/fortran-string.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.opt/fortran-string.exp 2016-10-22 09:45:15.857013527 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/fortran-string.exp 2017-02-26 19:15:36.605882373 +0100
@@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
+# Copyright 2009 Free Software Foundation, Inc. +# Copyright 2009 Free Software Foundation, Inc.
+ +
@ -3453,10 +3453,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.opt/fortran-string.exp
+gdb_test "frame" ".*s='foo'.*" +gdb_test "frame" ".*s='foo'.*"
+gdb_test "ptype s" "type = character\\*3" +gdb_test "ptype s" "type = character\\*3"
+gdb_test "p s" "\\$\[0-9\]* = 'foo'" +gdb_test "p s" "\\$\[0-9\]* = 'foo'"
Index: gdb-7.12/gdb/testsuite/gdb.opt/fortran-string.f90 Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/fortran-string.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.opt/fortran-string.f90 2016-10-22 09:45:15.857013527 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/fortran-string.f90 2017-02-26 19:15:36.605882373 +0100
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
+! Copyright 2009 Free Software Foundation, Inc. +! Copyright 2009 Free Software Foundation, Inc.
+! +!
@ -3486,10 +3486,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.opt/fortran-string.f90
+ program main + program main
+ call f ('foo') + call f ('foo')
+ end + end
Index: gdb-7.12/gdb/testsuite/gdb.pascal/arrays.exp Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.pascal/arrays.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.pascal/arrays.exp 2016-10-22 09:45:15.857013527 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.pascal/arrays.exp 2017-02-26 19:15:36.605882373 +0100
@@ -0,0 +1,104 @@ @@ -0,0 +1,104 @@
+# Copyright 2008, 2009 Free Software Foundation, Inc. +# Copyright 2008, 2009 Free Software Foundation, Inc.
+# +#
@ -3595,10 +3595,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.pascal/arrays.exp
+} +}
+gdb_test "print DynArrChar" ".* = 'abcdefghijklm'" "Print dynamic array of char" +gdb_test "print DynArrChar" ".* = 'abcdefghijklm'" "Print dynamic array of char"
+ +
Index: gdb-7.12/gdb/testsuite/gdb.pascal/arrays.pas Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.pascal/arrays.pas
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.12/gdb/testsuite/gdb.pascal/arrays.pas 2016-10-22 09:45:15.857013527 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/gdb.pascal/arrays.pas 2017-02-26 19:15:36.605882373 +0100
@@ -0,0 +1,82 @@ @@ -0,0 +1,82 @@
+{ +{
+ Copyright 2008, 2009 Free Software Foundation, Inc. + Copyright 2008, 2009 Free Software Foundation, Inc.
@ -3682,11 +3682,11 @@ Index: gdb-7.12/gdb/testsuite/gdb.pascal/arrays.pas
+ s := 'test'#0'string'; + s := 'test'#0'string';
+ writeln(s); { set breakpoint 2 here } + writeln(s); { set breakpoint 2 here }
+end. +end.
Index: gdb-7.12/gdb/testsuite/lib/gdb.exp Index: gdb-7.12.50.20170207/gdb/testsuite/lib/gdb.exp
=================================================================== ===================================================================
--- gdb-7.12.orig/gdb/testsuite/lib/gdb.exp 2016-10-22 09:45:15.106007986 +0200 --- gdb-7.12.50.20170207.orig/gdb/testsuite/lib/gdb.exp 2017-02-26 19:15:28.564824836 +0100
+++ gdb-7.12/gdb/testsuite/lib/gdb.exp 2016-10-22 09:45:15.858013534 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/lib/gdb.exp 2017-02-26 19:15:36.607882387 +0100
@@ -173,6 +173,11 @@ @@ -178,6 +178,11 @@
send_gdb "y\n" send_gdb "y\n"
exp_continue exp_continue
} }
@ -3698,10 +3698,10 @@ Index: gdb-7.12/gdb/testsuite/lib/gdb.exp
-re "Discard symbol table from .*y or n.*$" { -re "Discard symbol table from .*y or n.*$" {
send_gdb "y\n" send_gdb "y\n"
exp_continue exp_continue
Index: gdb-7.12/gdb/testsuite/lib/pascal.exp Index: gdb-7.12.50.20170207/gdb/testsuite/lib/pascal.exp
=================================================================== ===================================================================
--- gdb-7.12.orig/gdb/testsuite/lib/pascal.exp 2016-08-01 17:50:21.000000000 +0200 --- gdb-7.12.50.20170207.orig/gdb/testsuite/lib/pascal.exp 2017-02-26 19:15:28.565824844 +0100
+++ gdb-7.12/gdb/testsuite/lib/pascal.exp 2016-10-22 09:45:15.859013541 +0200 +++ gdb-7.12.50.20170207/gdb/testsuite/lib/pascal.exp 2017-02-26 19:15:36.607882387 +0100
@@ -37,6 +37,9 @@ @@ -37,6 +37,9 @@
global pascal_compiler_is_fpc global pascal_compiler_is_fpc
global gpc_compiler global gpc_compiler

View File

@ -2,7 +2,7 @@ http://sourceware.org/gdb/wiki/ProjectArcher
http://sourceware.org/gdb/wiki/ArcherBranchManagement http://sourceware.org/gdb/wiki/ArcherBranchManagement
GIT snapshot: GIT snapshot:
commit cfee64ee869a6a6e4ab0b64af149d4cf59517d80 commit 718a1618b2f691a7f407213bb50f100ac59f91c3
tromey/python tromey/python
@ -16,10 +16,10 @@ index 0000000..173b8ea
+This branch originally held the Python code for gdb. It still exists +This branch originally held the Python code for gdb. It still exists
+because a small amount of code here has not yet been merged upstream. +because a small amount of code here has not yet been merged upstream.
diff --git a/gdb/Makefile.in b/gdb/Makefile.in diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 5af6103..9c69cb0 100644 index 291b1a0..150a8ef 100644
--- a/gdb/Makefile.in --- a/gdb/Makefile.in
+++ b/gdb/Makefile.in +++ b/gdb/Makefile.in
@@ -1553,6 +1553,12 @@ stamp-h: $(srcdir)/config.in config.status @@ -2350,6 +2350,12 @@ stamp-h: $(srcdir)/config.in config.status
CONFIG_LINKS= \ CONFIG_LINKS= \
$(SHELL) config.status $(SHELL) config.status
@ -33,21 +33,22 @@ index 5af6103..9c69cb0 100644
$(SHELL) config.status --recheck $(SHELL) config.status --recheck
diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
index 3f23516..b5d6390 100644 index 304d4b0..d2007a4 100644
--- a/gdb/data-directory/Makefile.in --- a/gdb/data-directory/Makefile.in
+++ b/gdb/data-directory/Makefile.in +++ b/gdb/data-directory/Makefile.in
@@ -66,7 +66,10 @@ PYTHON_FILE_LIST = \ @@ -77,7 +77,11 @@ PYTHON_FILE_LIST = \
gdb/types.py \
gdb/unwinder.py \ gdb/unwinder.py \
gdb/prompt.py \
gdb/xmethod.py \ gdb/xmethod.py \
+ gdb/types.py \ + gdb/types.py \
gdb/command/__init__.py \ gdb/command/__init__.py \
+ gdb/command/ignore_errors.py \ + gdb/command/ignore_errors.py \
+ gdb/command/pahole.py \ + gdb/command/pahole.py \
gdb/command/xmethods.py \ + gdb/command/xmethods.py \
gdb/command/explore.py \
gdb/command/frame_filters.py \ gdb/command/frame_filters.py \
gdb/command/unwinders.py \ gdb/command/pretty_printers.py \
@@ -78,6 +81,8 @@ PYTHON_FILE_LIST = \ @@ -89,6 +93,8 @@ PYTHON_FILE_LIST = \
gdb/function/as_string.py \ gdb/function/as_string.py \
gdb/function/caller_is.py \ gdb/function/caller_is.py \
gdb/function/strfns.py \ gdb/function/strfns.py \
@ -57,10 +58,10 @@ index 3f23516..b5d6390 100644
gdb/printer/bound_registers.py gdb/printer/bound_registers.py
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index f5dde61..1d92bd6 100644 index 300d78e..699f2cb 100644
--- a/gdb/doc/gdb.texinfo --- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo
@@ -1225,6 +1225,16 @@ for remote debugging. @@ -1230,6 +1230,16 @@ for remote debugging.
Run using @var{device} for your program's standard input and output. Run using @var{device} for your program's standard input and output.
@c FIXME: kingdon thinks there is more to -tty. Investigate. @c FIXME: kingdon thinks there is more to -tty. Investigate.
@ -78,7 +79,7 @@ index f5dde61..1d92bd6 100644
@item -tui @item -tui
@cindex @code{--tui} @cindex @code{--tui}
diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi
index a17e37d..c56068b 100644 index ce5810e..4ceb108 100644
--- a/gdb/doc/python.texi --- a/gdb/doc/python.texi
+++ b/gdb/doc/python.texi +++ b/gdb/doc/python.texi
@@ -88,8 +88,6 @@ containing @code{end}. For example: @@ -88,8 +88,6 @@ containing @code{end}. For example:
@ -111,7 +112,7 @@ index 05a38b2..9801fdf 100644
set variable $gdb_init_done = 1 set variable $gdb_init_done = 1
diff --git a/gdb/main.c b/gdb/main.c diff --git a/gdb/main.c b/gdb/main.c
index 5477379..b7e413f 100644 index df4b111..6aca8b0 100644
--- a/gdb/main.c --- a/gdb/main.c
+++ b/gdb/main.c +++ b/gdb/main.c
@@ -33,6 +33,7 @@ @@ -33,6 +33,7 @@
@ -122,16 +123,16 @@ index 5477379..b7e413f 100644
#include "source.h" #include "source.h"
#include "cli/cli-cmds.h" #include "cli/cli-cmds.h"
#include "objfiles.h" #include "objfiles.h"
@@ -459,6 +460,8 @@ captured_main (void *data) @@ -459,7 +460,7 @@ struct cmdarg
char *cdarg = NULL; };
char *ttyarg = NULL;
+ int python_script = 0; static void
+ -captured_main_1 (struct captured_main_args *context)
/* These are static so that we can take their address in an +captured_main_1 (struct captured_main_args *context, int &python_script)
initializer. */ {
static int print_help; int argc = context->argc;
@@ -663,10 +666,14 @@ captured_main (void *data) char **argv = context->argv;
@@ -676,10 +677,14 @@ captured_main_1 (struct captured_main_args *context)
{"args", no_argument, &set_args, 1}, {"args", no_argument, &set_args, 1},
{"l", required_argument, 0, 'l'}, {"l", required_argument, 0, 'l'},
{"return-child-result", no_argument, &return_child_result, 1}, {"return-child-result", no_argument, &return_child_result, 1},
@ -147,7 +148,7 @@ index 5477379..b7e413f 100644
{ {
int option_index; int option_index;
@@ -684,6 +691,9 @@ captured_main (void *data) @@ -697,6 +702,9 @@ captured_main_1 (struct captured_main_args *context)
case 0: case 0:
/* Long option that just sets a flag. */ /* Long option that just sets a flag. */
break; break;
@ -157,7 +158,7 @@ index 5477379..b7e413f 100644
case OPT_SE: case OPT_SE:
symarg = optarg; symarg = optarg;
execarg = optarg; execarg = optarg;
@@ -864,7 +874,31 @@ captured_main (void *data) @@ -855,7 +863,31 @@ captured_main_1 (struct captured_main_args *context)
/* Now that gdb_init has created the initial inferior, we're in /* Now that gdb_init has created the initial inferior, we're in
position to set args for that inferior. */ position to set args for that inferior. */
@ -190,7 +191,7 @@ index 5477379..b7e413f 100644
{ {
/* The remaining options are the command-line options for the /* The remaining options are the command-line options for the
inferior. The first one is the sym/exec file, and the rest inferior. The first one is the sym/exec file, and the rest
@@ -1127,7 +1161,8 @@ captured_main (void *data) @@ -1125,7 +1157,8 @@ captured_main_1 (struct captured_main_args *context)
/* Read in the old history after all the command files have been /* Read in the old history after all the command files have been
read. */ read. */
@ -200,9 +201,14 @@ index 5477379..b7e413f 100644
if (batch_flag) if (batch_flag)
{ {
@@ -1138,13 +1173,25 @@ captured_main (void *data) @@ -1138,16 +1171,29 @@ static void
/* Show time and/or space usage. */ captured_main (void *data)
do_cleanups (pre_stat_chain); {
struct captured_main_args *context = (struct captured_main_args *) data;
+ int python_script = 0;
- captured_main_1 (context);
+ captured_main_1 (context, python_script);
- /* NOTE: cagney/1999-11-07: There is probably no reason for not - /* NOTE: cagney/1999-11-07: There is probably no reason for not
- moving this loop and the code found in captured_command_loop() - moving this loop and the code found in captured_command_loop()
@ -211,16 +217,16 @@ index 5477379..b7e413f 100644
- while (1) - while (1)
+#if HAVE_PYTHON +#if HAVE_PYTHON
+ if (python_script) + if (python_script)
{ + {
- catch_errors (captured_command_loop, 0, "", RETURN_MASK_ALL);
+ extern int pagination_enabled; + extern int pagination_enabled;
+ pagination_enabled = 0; + pagination_enabled = 0;
+ run_python_script (argc - optind, &argv[optind]); + run_python_script (context->argc - optind, &context->argv[optind]);
+ return 1; + return;
+ } + }
+ else + else
+#endif +#endif
+ { {
- catch_errors (captured_command_loop, 0, "", RETURN_MASK_ALL);
+ /* NOTE: cagney/1999-11-07: There is probably no reason for not + /* NOTE: cagney/1999-11-07: There is probably no reason for not
+ moving this loop and the code found in captured_command_loop() + moving this loop and the code found in captured_command_loop()
+ into the command_loop() proper. The main thing holding back that + into the command_loop() proper. The main thing holding back that
@ -232,7 +238,7 @@ index 5477379..b7e413f 100644
} }
/* No exit -- exit is through quit_command. */ /* No exit -- exit is through quit_command. */
} }
@@ -1187,6 +1234,12 @@ print_gdb_help (struct ui_file *stream) @@ -1190,6 +1236,12 @@ print_gdb_help (struct ui_file *stream)
fputs_unfiltered (_("\ fputs_unfiltered (_("\
This is the GNU debugger. Usage:\n\n\ This is the GNU debugger. Usage:\n\n\
gdb [options] [executable-file [core-file or process-id]]\n\ gdb [options] [executable-file [core-file or process-id]]\n\
@ -245,7 +251,7 @@ index 5477379..b7e413f 100644
gdb [options] --args executable-file [inferior-arguments ...]\n\n\ gdb [options] --args executable-file [inferior-arguments ...]\n\n\
"), stream); "), stream);
fputs_unfiltered (_("\ fputs_unfiltered (_("\
@@ -1231,6 +1284,13 @@ Output and user interface control:\n\n\ @@ -1234,6 +1286,13 @@ Output and user interface control:\n\n\
#endif #endif
fputs_unfiltered (_("\ fputs_unfiltered (_("\
--dbx DBX compatibility mode.\n\ --dbx DBX compatibility mode.\n\
@ -442,8 +448,22 @@ index 0000000..8742680
+ return wanted == found + return wanted == found
+ +
+InScope () +InScope ()
diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h
index e84c8d2..69305b4 100644
--- a/gdb/python/python-internal.h
+++ b/gdb/python/python-internal.h
@@ -672,6 +672,9 @@ class gdbpy_enter_varobj : public gdbpy_enter
};
+struct cleanup *ensure_python_env (struct gdbarch *gdbarch,
+ const struct language_defn *language);
+
extern struct gdbarch *python_gdbarch;
extern const struct language_defn *python_language;
diff --git a/gdb/python/python.c b/gdb/python/python.c diff --git a/gdb/python/python.c b/gdb/python/python.c
index 621e201..703a1a0 100644 index 7e0c507..a67fbc3 100644
--- a/gdb/python/python.c --- a/gdb/python/python.c
+++ b/gdb/python/python.c +++ b/gdb/python/python.c
@@ -95,6 +95,8 @@ const struct extension_language_defn extension_language_python = @@ -95,6 +95,8 @@ const struct extension_language_defn extension_language_python =
@ -455,7 +475,37 @@ index 621e201..703a1a0 100644
#include "target.h" #include "target.h"
#include "gdbthread.h" #include "gdbthread.h"
#include "interps.h" #include "interps.h"
@@ -1263,6 +1265,92 @@ gdbpy_print_stack (void) @@ -242,6 +244,29 @@ gdbpy_enter::~gdbpy_enter ()
restore_active_ext_lang (m_previous_active);
}
+static void
+restore_python_env (void *p)
+{
+ gdbpy_enter *env = (gdbpy_enter *) p;
+
+ delete env;
+}
+
+/* Called before entering the Python interpreter to install the
+ current language and architecture to be used for Python values.
+ Also set the active extension language for GDB so that SIGINT's
+ are directed our way, and if necessary install the right SIGINT
+ handler. */
+
+struct cleanup *
+ensure_python_env (struct gdbarch *gdbarch,
+ const struct language_defn *language)
+{
+ gdbpy_enter *env = new gdbpy_enter (gdbarch, language);
+
+ return make_cleanup (restore_python_env, env);
+}
+
/* Set the quit flag. */
static void
@@ -1187,6 +1212,92 @@ gdbpy_print_stack (void)
/* Return the current Progspace. /* Return the current Progspace.
There always is one. */ There always is one. */
@ -473,7 +523,7 @@ index 621e201..703a1a0 100644
+ if (! running_python_script || in_cli) + if (! running_python_script || in_cli)
+ return PyErr_Format (PyExc_RuntimeError, "cannot invoke CLI recursively"); + return PyErr_Format (PyExc_RuntimeError, "cannot invoke CLI recursively");
+ +
+ if (ui_out_is_mi_like_p (current_uiout)) + if (current_uiout->is_mi_like_p ())
+ return PyErr_Format (PyExc_RuntimeError, _("Cannot invoke CLI from MI.")); + return PyErr_Format (PyExc_RuntimeError, _("Cannot invoke CLI from MI."));
+ +
+ in_cli = 1; + in_cli = 1;
@ -548,7 +598,7 @@ index 621e201..703a1a0 100644
static PyObject * static PyObject *
gdbpy_get_current_progspace (PyObject *unused1, PyObject *unused2) gdbpy_get_current_progspace (PyObject *unused1, PyObject *unused2)
@@ -1981,6 +2069,8 @@ PyMethodDef python_GdbMethods[] = @@ -1881,6 +1992,8 @@ PyMethodDef python_GdbMethods[] =
Evaluate command, a string, as a gdb CLI command. Optionally returns\n\ Evaluate command, a string, as a gdb CLI command. Optionally returns\n\
a Python String containing the output of the command if to_string is\n\ a Python String containing the output of the command if to_string is\n\
set to True." }, set to True." },
@ -558,7 +608,7 @@ index 621e201..703a1a0 100644
"Return a gdb parameter's value" }, "Return a gdb parameter's value" },
diff --git a/gdb/python/python.h b/gdb/python/python.h diff --git a/gdb/python/python.h b/gdb/python/python.h
index b810187..a3620ab 100644 index e407faa..fc1c632 100644
--- a/gdb/python/python.h --- a/gdb/python/python.h
+++ b/gdb/python/python.h +++ b/gdb/python/python.h
@@ -25,4 +25,6 @@ @@ -25,4 +25,6 @@
@ -568,23 +618,8 @@ index b810187..a3620ab 100644
+extern void run_python_script (int argc, char **argv); +extern void run_python_script (int argc, char **argv);
+ +
#endif /* GDB_PYTHON_H */ #endif /* GDB_PYTHON_H */
diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest.exp
index 2fdd9e3..391900d 100644
--- a/gdb/testsuite/gdb.gdb/selftest.exp
+++ b/gdb/testsuite/gdb.gdb/selftest.exp
@@ -87,6 +87,10 @@ proc do_steps_and_nexts {} {
set description "step over cmdarg_vec initialization"
set command "step"
}
+ -re ".*python_script = 0.*$gdb_prompt $" {
+ set description "step over python_script initialization"
+ set command "step"
+ }
-re ".*pre_stat_chain = make_command_stats_cleanup.*$gdb_prompt $" {
set description "next over make_command_stats_cleanup and everything it calls"
set command "next"
diff --git a/gdb/testsuite/gdb.python/py-frame.exp b/gdb/testsuite/gdb.python/py-frame.exp diff --git a/gdb/testsuite/gdb.python/py-frame.exp b/gdb/testsuite/gdb.python/py-frame.exp
index b5a4682..d5451a6 100644 index f5d4a3c..3546f7b 100644
--- a/gdb/testsuite/gdb.python/py-frame.exp --- a/gdb/testsuite/gdb.python/py-frame.exp
+++ b/gdb/testsuite/gdb.python/py-frame.exp +++ b/gdb/testsuite/gdb.python/py-frame.exp
@@ -95,6 +95,8 @@ gdb_test "python print ('result = %s' % f0.read_var ('a'))" " = 1" "test Frame.r @@ -95,6 +95,8 @@ gdb_test "python print ('result = %s' % f0.read_var ('a'))" " = 1" "test Frame.r
@ -597,10 +632,10 @@ index b5a4682..d5451a6 100644
gdb_test "python print ('result = %s' % (gdb.selected_frame ().read_register ('sp') == gdb.parse_and_eval ('\$sp')))" \ gdb_test "python print ('result = %s' % (gdb.selected_frame ().read_register ('sp') == gdb.parse_and_eval ('\$sp')))" \
" = True" \ " = True" \
diff --git a/gdb/testsuite/gdb.python/py-value.exp b/gdb/testsuite/gdb.python/py-value.exp diff --git a/gdb/testsuite/gdb.python/py-value.exp b/gdb/testsuite/gdb.python/py-value.exp
index 57a9ba1..d90d85a 100644 index 1781887..8a2ddd6 100644
--- a/gdb/testsuite/gdb.python/py-value.exp --- a/gdb/testsuite/gdb.python/py-value.exp
+++ b/gdb/testsuite/gdb.python/py-value.exp +++ b/gdb/testsuite/gdb.python/py-value.exp
@@ -397,6 +397,15 @@ proc test_value_after_death {} { @@ -384,6 +384,15 @@ proc test_value_after_death {} {
"print value's type" "print value's type"
} }
@ -616,11 +651,43 @@ index 57a9ba1..d90d85a 100644
# Regression test for invalid subscript operations. The bug was that # Regression test for invalid subscript operations. The bug was that
# the type of the value was not being checked before allowing a # the type of the value was not being checked before allowing a
# subscript operation to proceed. # subscript operation to proceed.
@@ -526,6 +535,7 @@ test_value_in_inferior @@ -512,6 +521,7 @@ if ![runto_main] then {
test_value_in_inferior
test_inferior_function_call test_inferior_function_call
test_lazy_strings
test_value_after_death test_value_after_death
+test_cast_regression +test_cast_regression
# Test either C or C++ values. # Test either C or C++ values.
diff --git a/gdb/varobj.c b/gdb/varobj.c
index 5f21d84..18506f1 100644
--- a/gdb/varobj.c
+++ b/gdb/varobj.c
@@ -226,6 +226,14 @@ is_root_p (const struct varobj *var)
}
#ifdef HAVE_PYTHON
+/* Helper function to install a Python environment suitable for
+ use during operations on VAR. */
+struct cleanup *
+varobj_ensure_python_env (const struct varobj *var)
+{
+ return ensure_python_env (var->root->exp->gdbarch,
+ var->root->exp->language_defn);
+}
/* See python-internal.h. */
gdbpy_enter_varobj::gdbpy_enter_varobj (const struct varobj *var)
diff --git a/gdb/varobj.h b/gdb/varobj.h
index e35c1b8..12339d1 100644
--- a/gdb/varobj.h
+++ b/gdb/varobj.h
@@ -320,6 +320,8 @@ extern int varobj_has_more (const struct varobj *var, int to);
extern int varobj_is_dynamic_p (const struct varobj *var);
+extern struct cleanup *varobj_ensure_python_env (const struct varobj *var);
+
extern int varobj_default_value_is_changeable_p (const struct varobj *var);
extern int varobj_value_is_changeable_p (const struct varobj *var);

View File

@ -37,13 +37,13 @@ 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.11.90.20160829/gdb/nat/linux-ptrace.c Index: gdb-7.12.50.20170226/gdb/nat/linux-ptrace.c
=================================================================== ===================================================================
--- gdb-7.11.90.20160829.orig/gdb/nat/linux-ptrace.c 2016-08-29 09:35:26.798230659 +0200 --- gdb-7.12.50.20170226.orig/gdb/nat/linux-ptrace.c 2017-02-26 21:27:14.780009449 +0100
+++ gdb-7.11.90.20160829/gdb/nat/linux-ptrace.c 2016-08-29 09:35:43.162384100 +0200 +++ gdb-7.12.50.20170226/gdb/nat/linux-ptrace.c 2017-02-26 21:27:18.838038193 +0100
@@ -25,6 +25,10 @@ @@ -27,6 +27,10 @@
#include "gdb_ptrace.h"
#include <sys/procfs.h> #include <sys/procfs.h>
#endif
+#ifdef HAVE_SELINUX_SELINUX_H +#ifdef HAVE_SELINUX_SELINUX_H
+# include <selinux/selinux.h> +# include <selinux/selinux.h>
@ -52,7 +52,7 @@ Index: gdb-7.11.90.20160829/gdb/nat/linux-ptrace.c
/* Stores the ptrace options supported by the running kernel. /* Stores the ptrace options supported by the running kernel.
A value of -1 means we did not check for features yet. A value A value of -1 means we did not check for features yet. A value
of 0 means there are no supported features. */ of 0 means there are no supported features. */
@@ -49,6 +53,8 @@ @@ -51,6 +55,8 @@
buffer_xml_printf (buffer, _("process %d is a zombie " buffer_xml_printf (buffer, _("process %d is a zombie "
"- the process has already terminated"), "- the process has already terminated"),
(int) pid); (int) pid);
@ -61,7 +61,7 @@ Index: gdb-7.11.90.20160829/gdb/nat/linux-ptrace.c
} }
/* See linux-ptrace.h. */ /* See linux-ptrace.h. */
@@ -592,6 +598,22 @@ @@ -594,6 +600,22 @@
linux_ptrace_test_ret_to_nx (); linux_ptrace_test_ret_to_nx ();
} }
@ -84,10 +84,10 @@ Index: gdb-7.11.90.20160829/gdb/nat/linux-ptrace.c
/* Extract extended ptrace event from wait status. */ /* Extract extended ptrace event from wait status. */
int int
Index: gdb-7.11.90.20160829/gdb/nat/linux-ptrace.h Index: gdb-7.12.50.20170226/gdb/nat/linux-ptrace.h
=================================================================== ===================================================================
--- gdb-7.11.90.20160829.orig/gdb/nat/linux-ptrace.h 2016-08-29 09:35:26.798230659 +0200 --- gdb-7.12.50.20170226.orig/gdb/nat/linux-ptrace.h 2017-02-26 21:27:14.780009449 +0100
+++ gdb-7.11.90.20160829/gdb/nat/linux-ptrace.h 2016-08-29 09:35:43.162384100 +0200 +++ gdb-7.12.50.20170226/gdb/nat/linux-ptrace.h 2017-02-26 21:27:18.838038193 +0100
@@ -185,6 +185,7 @@ @@ -185,6 +185,7 @@
extern char *linux_ptrace_attach_fail_reason_string (ptid_t ptid, int err); extern char *linux_ptrace_attach_fail_reason_string (ptid_t ptid, int err);
@ -96,11 +96,11 @@ Index: gdb-7.11.90.20160829/gdb/nat/linux-ptrace.h
extern void linux_check_ptrace_features (void); extern void linux_check_ptrace_features (void);
extern void linux_enable_event_reporting (pid_t pid, int attached); extern void linux_enable_event_reporting (pid_t pid, int attached);
extern void linux_disable_event_reporting (pid_t pid); extern void linux_disable_event_reporting (pid_t pid);
Index: gdb-7.11.90.20160829/gdb/configure.ac Index: gdb-7.12.50.20170226/gdb/configure.ac
=================================================================== ===================================================================
--- gdb-7.11.90.20160829.orig/gdb/configure.ac 2016-08-29 09:35:26.799230668 +0200 --- gdb-7.12.50.20170226.orig/gdb/configure.ac 2017-02-26 21:27:14.781009456 +0100
+++ gdb-7.11.90.20160829/gdb/configure.ac 2016-08-29 09:35:43.163384109 +0200 +++ gdb-7.12.50.20170226/gdb/configure.ac 2017-02-26 21:27:18.839038200 +0100
@@ -2108,6 +2108,10 @@ @@ -2092,6 +2092,10 @@
esac esac
AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.]) AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
@ -111,11 +111,11 @@ Index: gdb-7.11.90.20160829/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.11.90.20160829/gdb/gdbserver/configure.ac Index: gdb-7.12.50.20170226/gdb/gdbserver/configure.ac
=================================================================== ===================================================================
--- gdb-7.11.90.20160829.orig/gdb/gdbserver/configure.ac 2016-08-29 09:35:26.799230668 +0200 --- gdb-7.12.50.20170226.orig/gdb/gdbserver/configure.ac 2017-02-26 21:27:14.781009456 +0100
+++ gdb-7.11.90.20160829/gdb/gdbserver/configure.ac 2016-08-29 09:35:43.163384109 +0200 +++ gdb-7.12.50.20170226/gdb/gdbserver/configure.ac 2017-02-26 21:27:18.839038200 +0100
@@ -472,6 +472,10 @@ @@ -469,6 +469,10 @@
fi fi
fi fi
@ -126,11 +126,11 @@ Index: gdb-7.11.90.20160829/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.11.90.20160829/gdb/gdbserver/linux-low.c Index: gdb-7.12.50.20170226/gdb/gdbserver/linux-low.c
=================================================================== ===================================================================
--- gdb-7.11.90.20160829.orig/gdb/gdbserver/linux-low.c 2016-08-29 09:35:26.801230687 +0200 --- gdb-7.12.50.20170226.orig/gdb/gdbserver/linux-low.c 2017-02-26 21:27:14.783009470 +0100
+++ gdb-7.11.90.20160829/gdb/gdbserver/linux-low.c 2016-08-29 09:35:43.165384128 +0200 +++ gdb-7.12.50.20170226/gdb/gdbserver/linux-low.c 2017-02-26 21:27:18.841038214 +0100
@@ -933,6 +933,29 @@ @@ -946,6 +946,29 @@
return lwp; return lwp;
} }
@ -160,7 +160,7 @@ Index: gdb-7.11.90.20160829/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. */
@@ -956,7 +979,7 @@ @@ -969,7 +992,7 @@
if (pid == 0) if (pid == 0)
{ {
close_most_fds (); close_most_fds ();
@ -169,31 +169,11 @@ Index: gdb-7.11.90.20160829/gdb/gdbserver/linux-low.c
setpgid (0, 0); setpgid (0, 0);
Index: gdb-7.11.90.20160829/gdb/inf-ptrace.c Index: gdb-7.12.50.20170226/gdb/linux-nat.c
=================================================================== ===================================================================
--- gdb-7.11.90.20160829.orig/gdb/inf-ptrace.c 2016-08-29 09:35:26.801230687 +0200 --- gdb-7.12.50.20170226.orig/gdb/linux-nat.c 2017-02-26 21:27:14.785009484 +0100
+++ gdb-7.11.90.20160829/gdb/inf-ptrace.c 2016-08-29 09:35:43.165384128 +0200 +++ gdb-7.12.50.20170226/gdb/linux-nat.c 2017-02-26 21:27:18.842038221 +0100
@@ -79,7 +79,15 @@ @@ -1110,6 +1110,7 @@
inf_ptrace_me (void)
{
/* "Trace me, Dr. Memory!" */
+ errno = 0;
ptrace (PT_TRACE_ME, 0, (PTRACE_TYPE_ARG3)0, 0);
+ if (errno != 0)
+ {
+ fprintf_unfiltered (gdb_stderr, _("Cannot create process: %s\n"),
+ safe_strerror (errno));
+ gdb_flush (gdb_stderr);
+ _exit (0177);
+ }
}
/* Start a new inferior Unix child process. EXEC_FILE is the file to
Index: gdb-7.11.90.20160829/gdb/linux-nat.c
===================================================================
--- gdb-7.11.90.20160829.orig/gdb/linux-nat.c 2016-08-29 09:35:26.802230697 +0200
+++ gdb-7.11.90.20160829/gdb/linux-nat.c 2016-08-29 09:35:43.166384137 +0200
@@ -1102,6 +1102,7 @@
{ {
struct cleanup *restore_personality struct cleanup *restore_personality
= maybe_disable_address_space_randomization (disable_randomization); = maybe_disable_address_space_randomization (disable_randomization);
@ -201,7 +181,7 @@ Index: gdb-7.11.90.20160829/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. */
@@ -1109,7 +1110,28 @@ @@ -1117,7 +1118,28 @@
/* Make sure we report all signals during startup. */ /* Make sure we report all signals during startup. */
linux_nat_pass_signals (ops, 0, NULL); linux_nat_pass_signals (ops, 0, NULL);
@ -231,11 +211,11 @@ Index: gdb-7.11.90.20160829/gdb/linux-nat.c
do_cleanups (restore_personality); do_cleanups (restore_personality);
} }
Index: gdb-7.11.90.20160829/gdb/config.in Index: gdb-7.12.50.20170226/gdb/config.in
=================================================================== ===================================================================
--- gdb-7.11.90.20160829.orig/gdb/config.in 2016-08-29 09:35:26.803230706 +0200 --- gdb-7.12.50.20170226.orig/gdb/config.in 2017-02-26 21:27:14.786009491 +0100
+++ gdb-7.11.90.20160829/gdb/config.in 2016-08-29 09:35:43.166384137 +0200 +++ gdb-7.12.50.20170226/gdb/config.in 2017-02-26 21:27:18.842038221 +0100
@@ -267,6 +267,9 @@ @@ -270,6 +270,9 @@
/* Define if librpm library is being used. */ /* Define if librpm library is being used. */
#undef HAVE_LIBRPM #undef HAVE_LIBRPM
@ -245,7 +225,7 @@ Index: gdb-7.11.90.20160829/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
@@ -399,6 +402,9 @@ @@ -402,6 +405,9 @@
/* Define to 1 if you have the `scm_new_smob' function. */ /* Define to 1 if you have the `scm_new_smob' function. */
#undef HAVE_SCM_NEW_SMOB #undef HAVE_SCM_NEW_SMOB
@ -255,11 +235,11 @@ Index: gdb-7.11.90.20160829/gdb/config.in
/* Define to 1 if you have the `setlocale' function. */ /* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE #undef HAVE_SETLOCALE
Index: gdb-7.11.90.20160829/gdb/configure Index: gdb-7.12.50.20170226/gdb/configure
=================================================================== ===================================================================
--- gdb-7.11.90.20160829.orig/gdb/configure 2016-08-29 09:35:26.806230734 +0200 --- gdb-7.12.50.20170226.orig/gdb/configure 2017-02-26 21:27:14.790009519 +0100
+++ gdb-7.11.90.20160829/gdb/configure 2016-08-29 09:35:43.170384175 +0200 +++ gdb-7.12.50.20170226/gdb/configure 2017-02-26 21:27:18.846038249 +0100
@@ -14642,6 +14642,64 @@ @@ -15492,6 +15492,64 @@
_ACEOF _ACEOF
@ -324,11 +304,11 @@ Index: gdb-7.11.90.20160829/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.11.90.20160829/gdb/gdbserver/config.in Index: gdb-7.12.50.20170226/gdb/gdbserver/config.in
=================================================================== ===================================================================
--- gdb-7.11.90.20160829.orig/gdb/gdbserver/config.in 2016-08-29 09:35:26.807230743 +0200 --- gdb-7.12.50.20170226.orig/gdb/gdbserver/config.in 2017-02-26 21:27:14.791009527 +0100
+++ gdb-7.11.90.20160829/gdb/gdbserver/config.in 2016-08-29 09:35:43.170384175 +0200 +++ gdb-7.12.50.20170226/gdb/gdbserver/config.in 2017-02-26 21:27:18.846038249 +0100
@@ -120,6 +120,9 @@ @@ -123,6 +123,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
@ -338,7 +318,7 @@ Index: gdb-7.11.90.20160829/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
@@ -196,6 +199,9 @@ @@ -199,6 +202,9 @@
/* Define to 1 if you have the `pwrite' function. */ /* Define to 1 if you have the `pwrite' function. */
#undef HAVE_PWRITE #undef HAVE_PWRITE
@ -348,11 +328,11 @@ Index: gdb-7.11.90.20160829/gdb/gdbserver/config.in
/* Define to 1 if you have the `setns' function. */ /* Define to 1 if you have the `setns' function. */
#undef HAVE_SETNS #undef HAVE_SETNS
Index: gdb-7.11.90.20160829/gdb/gdbserver/configure Index: gdb-7.12.50.20170226/gdb/gdbserver/configure
=================================================================== ===================================================================
--- gdb-7.11.90.20160829.orig/gdb/gdbserver/configure 2016-08-29 09:35:26.809230762 +0200 --- gdb-7.12.50.20170226.orig/gdb/gdbserver/configure 2017-02-26 21:27:14.793009541 +0100
+++ gdb-7.11.90.20160829/gdb/gdbserver/configure 2016-08-29 09:35:43.172384194 +0200 +++ gdb-7.12.50.20170226/gdb/gdbserver/configure 2017-02-26 21:27:18.848038263 +0100
@@ -7561,6 +7561,64 @@ @@ -8429,6 +8429,64 @@
fi fi
fi fi

View File

@ -3,83 +3,32 @@ printed, but a default backtrace will occur in this case.
-- --
Index: gdb-7.9.50.20150520/gdb/python/py-framefilter.c Index: gdb-7.12.50.20170226/gdb/python/py-framefilter.c
=================================================================== ===================================================================
--- gdb-7.9.50.20150520.orig/gdb/python/py-framefilter.c 2015-05-31 17:36:34.681952530 +0200 --- gdb-7.12.50.20170226.orig/gdb/python/py-framefilter.c 2017-02-26 21:33:23.150618708 +0100
+++ gdb-7.9.50.20150520/gdb/python/py-framefilter.c 2015-05-31 17:55:01.884788031 +0200 +++ gdb-7.12.50.20170226/gdb/python/py-framefilter.c 2017-02-26 21:33:29.993667179 +0100
@@ -1523,6 +1523,7 @@ gdbpy_apply_frame_filter (const struct e @@ -1388,6 +1388,7 @@
PyObject *iterable; htab_eq_pointer,
PyObject *item; NULL));
htab_t levels_printed;
+ int count_printed = 0; + int count_printed = 0;
while (true)
if (!gdb_python_initialized) {
return EXT_LANG_BT_NO_FILTERS; gdbpy_ref<> item (PyIter_Next (iterable.get ()));
@@ -1543,24 +1544,7 @@ gdbpy_apply_frame_filter (const struct e @@ -1397,7 +1398,7 @@
iterable = bootstrap_python_frame_filters (frame, frame_low, frame_high); if (PyErr_Occurred ())
{
if (iterable == NULL) gdbpy_print_stack ();
- { - return EXT_LANG_BT_ERROR;
- /* Normally if there is an error GDB prints the exception, + return count_printed > 0 ? EXT_LANG_BT_ERROR : EXT_LANG_BT_NO_FILTERS;
- abandons the backtrace and exits. The user can then call "bt }
- no-filters", and get a default backtrace (it would be break;
- confusing to automatically start a standard backtrace halfway }
- through a Python filtered backtrace). However in the case @@ -1409,6 +1410,7 @@
- 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
@@ -1591,15 +1575,40 @@ gdbpy_apply_frame_filter (const struct e
error and continue with other frames. */ error and continue with other frames. */
if (success == EXT_LANG_BT_ERROR) if (success == EXT_LANG_BT_ERROR)
gdbpy_print_stack (); gdbpy_print_stack ();
+
+ count_printed++; + 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; 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

@ -1,30 +1,30 @@
https://bugzilla.redhat.com/show_bug.cgi?id=1020004 https://bugzilla.redhat.com/show_bug.cgi?id=1020004
Index: gdb-7.11.50.20160630/gdb/data-directory/Makefile.in Index: gdb-7.12.50.20170207/gdb/data-directory/Makefile.in
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/data-directory/Makefile.in 2016-07-03 16:32:13.788164041 +0200 --- gdb-7.12.50.20170207.orig/gdb/data-directory/Makefile.in 2017-02-26 21:10:31.418894975 +0100
+++ gdb-7.11.50.20160630/gdb/data-directory/Makefile.in 2016-07-03 16:32:17.868198850 +0200 +++ gdb-7.12.50.20170207/gdb/data-directory/Makefile.in 2017-02-26 21:11:07.083147930 +0100
@@ -61,6 +61,8 @@ @@ -71,6 +71,8 @@
gdb/frames.py \ gdb/__init__.py \
gdb/FrameIterator.py \
gdb/FrameDecorator.py \ gdb/FrameDecorator.py \
gdb/FrameIterator.py \
+ gdb/FrameWrapper.py \ + gdb/FrameWrapper.py \
+ gdb/backtrace.py \ + gdb/backtrace.py \
gdb/types.py \ gdb/frames.py \
gdb/printing.py \ gdb/printing.py \
gdb/unwinder.py \ gdb/prompt.py \
@@ -77,6 +79,7 @@ @@ -83,6 +85,7 @@
gdb/command/pretty_printers.py \ gdb/command/pahole.py \
gdb/command/prompt.py \ gdb/command/xmethods.py \
gdb/command/explore.py \ gdb/command/explore.py \
+ gdb/command/backtrace.py \ + gdb/command/backtrace.py \
gdb/function/__init__.py \ gdb/command/frame_filters.py \
gdb/function/as_string.py \ gdb/command/pretty_printers.py \
gdb/function/caller_is.py \ gdb/command/prompt.py \
Index: gdb-7.11.50.20160630/gdb/python/lib/gdb/FrameWrapper.py Index: gdb-7.12.50.20170207/gdb/python/lib/gdb/FrameWrapper.py
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.11.50.20160630/gdb/python/lib/gdb/FrameWrapper.py 2016-07-03 16:32:17.869198859 +0200 +++ gdb-7.12.50.20170207/gdb/python/lib/gdb/FrameWrapper.py 2017-02-26 21:10:31.419894983 +0100
@@ -0,0 +1,122 @@ @@ -0,0 +1,122 @@
+# Wrapper API for frames. +# Wrapper API for frames.
+ +
@ -62,7 +62,7 @@ Index: gdb-7.11.50.20160630/gdb/python/lib/gdb/FrameWrapper.py
+ if val != None: + if val != None:
+ val = str (val) + val = str (val)
+ # FIXME: would be nice to have a more precise exception here. + # FIXME: would be nice to have a more precise exception here.
+ except RuntimeError, text: + except RuntimeError as text:
+ val = text + val = text
+ if val == None: + if val == None:
+ stream.write ("???") + stream.write ("???")
@ -148,10 +148,10 @@ Index: gdb-7.11.50.20160630/gdb/python/lib/gdb/FrameWrapper.py
+ +
+ def __getattr__ (self, name): + def __getattr__ (self, name):
+ return getattr (self.frame, name) + return getattr (self.frame, name)
Index: gdb-7.11.50.20160630/gdb/python/lib/gdb/backtrace.py Index: gdb-7.12.50.20170207/gdb/python/lib/gdb/backtrace.py
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.11.50.20160630/gdb/python/lib/gdb/backtrace.py 2016-07-03 16:32:17.869198859 +0200 +++ gdb-7.12.50.20170207/gdb/python/lib/gdb/backtrace.py 2017-02-26 21:10:31.419894983 +0100
@@ -0,0 +1,42 @@ @@ -0,0 +1,42 @@
+# Filtering backtrace. +# Filtering backtrace.
+ +
@ -195,10 +195,10 @@ Index: gdb-7.11.50.20160630/gdb/python/lib/gdb/backtrace.py
+ return iter + return iter
+ return old_frame_filter (iter) + return old_frame_filter (iter)
+ +
Index: gdb-7.11.50.20160630/gdb/python/lib/gdb/command/backtrace.py Index: gdb-7.12.50.20170207/gdb/python/lib/gdb/command/backtrace.py
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.11.50.20160630/gdb/python/lib/gdb/command/backtrace.py 2016-07-03 16:32:17.869198859 +0200 +++ gdb-7.12.50.20170207/gdb/python/lib/gdb/command/backtrace.py 2017-02-26 21:10:31.419894983 +0100
@@ -0,0 +1,106 @@ @@ -0,0 +1,106 @@
+# New backtrace command. +# New backtrace command.
+ +

View File

@ -60,7 +60,7 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.ex
+set testfile "gnu-ifunc-strstr-workaround" +set testfile "gnu-ifunc-strstr-workaround"
+set executable ${testfile} +set executable ${testfile}
+set srcfile start.c +set srcfile start.c
+set binfile ${objdir}/${subdir}/${executable} +set binfile [standard_output_file ${executable}]
+ +
+if [prepare_for_testing ${testfile}.exp $executable $srcfile] { +if [prepare_for_testing ${testfile}.exp $executable $srcfile] {
+ return -1 + return -1

View File

@ -34,11 +34,11 @@ gdb/
* dwarf2read.c (process_die): Change gdb_assert to complaint. * dwarf2read.c (process_die): Change gdb_assert to complaint.
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c Index: gdb-7.99.90.20170420/gdb/dwarf2read.c
index 3eaa0b1..71f5d34 100644 ===================================================================
--- a/gdb/dwarf2read.c --- gdb-7.99.90.20170420.orig/gdb/dwarf2read.c 2017-04-20 23:15:26.578897210 +0200
+++ b/gdb/dwarf2read.c +++ gdb-7.99.90.20170420/gdb/dwarf2read.c 2017-04-20 23:15:57.805106371 +0200
@@ -8029,7 +8029,13 @@ process_die (struct die_info *die, struct dwarf2_cu *cu) @@ -8426,7 +8426,13 @@
struct cleanup *in_process; struct cleanup *in_process;
/* We should only be processing those not already in process. */ /* We should only be processing those not already in process. */
@ -47,12 +47,9 @@ index 3eaa0b1..71f5d34 100644
+ { + {
+ complaint (&symfile_complaints, + complaint (&symfile_complaints,
+ _("DIE at 0x%x attempted to be processed twice"), + _("DIE at 0x%x attempted to be processed twice"),
+ die->offset.sect_off); + to_underlying (die->sect_off));
+ return; + return;
+ } + }
die->in_process = 1; die->in_process = 1;
in_process = make_cleanup (reset_die_in_process,die); in_process = make_cleanup (reset_die_in_process,die);
--6TrnltStXW4iwmi0--

View File

@ -1,5 +1,5 @@
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.arch/powerpc-power7.exp +++ b/gdb/testsuite/gdb.arch/powerpc-power7rh.exp
@@ -0,0 +1,182 @@ @@ -0,0 +1,182 @@
+# Copyright 2009 Free Software Foundation, Inc. +# Copyright 2009 Free Software Foundation, Inc.
+ +
@ -24,7 +24,7 @@
+ return + return
+} +}
+ +
+set testfile "powerpc-power7" +set testfile "powerpc-power7rh"
+set srcfile ${testfile}.s +set srcfile ${testfile}.s
+set objfile [standard_output_file ${testfile}.o] +set objfile [standard_output_file ${testfile}.o]
+ +
@ -184,7 +184,7 @@
+func_check 0x198 "frsqrtes. f14,f15" +func_check 0x198 "frsqrtes. f14,f15"
+func_check 0x19c "isel r2,r3,r4,28" +func_check 0x19c "isel r2,r3,r4,28"
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.arch/powerpc-power7.s +++ b/gdb/testsuite/gdb.arch/powerpc-power7rh.s
@@ -0,0 +1,107 @@ @@ -0,0 +1,107 @@
+ .text + .text
+ .globl func + .globl func

View File

@ -1,8 +1,8 @@
Index: gdb-7.11.50.20160630/gdb/doc/python.texi Index: gdb-7.99.90.20170420/gdb/doc/python.texi
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/doc/python.texi 2016-07-03 16:30:37.009338358 +0200 --- gdb-7.99.90.20170420.orig/gdb/doc/python.texi 2017-04-20 23:16:30.895328018 +0200
+++ gdb-7.11.50.20160630/gdb/doc/python.texi 2016-07-03 16:30:42.812387867 +0200 +++ gdb-7.99.90.20170420/gdb/doc/python.texi 2017-04-20 23:16:35.690360136 +0200
@@ -229,6 +229,14 @@ @@ -230,6 +230,14 @@
return value is @code{None}. If @var{to_string} is @code{True}, the return value is @code{None}. If @var{to_string} is @code{True}, the
@value{GDBN} virtual terminal will be temporarily set to unlimited width @value{GDBN} virtual terminal will be temporarily set to unlimited width
and height, and its pagination will be disabled; @pxref{Screen Size}. and height, and its pagination will be disabled; @pxref{Screen Size}.
@ -17,11 +17,11 @@ Index: gdb-7.11.50.20160630/gdb/doc/python.texi
@end defun @end defun
@findex gdb.breakpoints @findex gdb.breakpoints
Index: gdb-7.11.50.20160630/gdb/python/python-internal.h Index: gdb-7.99.90.20170420/gdb/python/python-internal.h
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/python/python-internal.h 2016-07-03 16:30:37.010338366 +0200 --- gdb-7.99.90.20170420.orig/gdb/python/python-internal.h 2017-04-20 23:16:30.896328024 +0200
+++ gdb-7.11.50.20160630/gdb/python/python-internal.h 2016-07-03 16:30:42.812387867 +0200 +++ gdb-7.99.90.20170420/gdb/python/python-internal.h 2017-04-20 23:16:35.690360136 +0200
@@ -140,6 +140,8 @@ @@ -142,6 +142,8 @@
#define PyGILState_Release(ARG) ((void)(ARG)) #define PyGILState_Release(ARG) ((void)(ARG))
#define PyEval_InitThreads() #define PyEval_InitThreads()
#define PyThreadState_Swap(ARG) ((void)(ARG)) #define PyThreadState_Swap(ARG) ((void)(ARG))
@ -30,34 +30,32 @@ Index: gdb-7.11.50.20160630/gdb/python/python-internal.h
#define PyEval_ReleaseLock() #define PyEval_ReleaseLock()
#endif #endif
Index: gdb-7.11.50.20160630/gdb/python/python.c Index: gdb-7.99.90.20170420/gdb/python/python.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160630.orig/gdb/python/python.c 2016-07-03 16:30:37.011338375 +0200 --- gdb-7.99.90.20170420.orig/gdb/python/python.c 2017-04-20 23:16:30.897328031 +0200
+++ gdb-7.11.50.20160630/gdb/python/python.c 2016-07-03 16:31:16.324673783 +0200 +++ gdb-7.99.90.20170420/gdb/python/python.c 2017-04-20 23:18:11.377001070 +0200
@@ -619,13 +619,18 @@ @@ -594,12 +594,16 @@
{ {
const char *arg; const char *arg;
PyObject *from_tty_obj = NULL, *to_string_obj = NULL; PyObject *from_tty_obj = NULL, *to_string_obj = NULL;
- int from_tty, to_string; - int from_tty, to_string;
- static char *keywords[] = {"command", "from_tty", "to_string", NULL }; - static const char *keywords[] = { "command", "from_tty", "to_string", NULL };
+ PyObject *release_gil_obj = NULL;
+ int from_tty, to_string, release_gil; + int from_tty, to_string, release_gil;
+ static char *keywords[] = {"command", "from_tty", "to_string", + static const char *keywords[] = {"command", "from_tty", "to_string", "release_gil", NULL };
+ "release_gil", NULL }; + PyObject *release_gil_obj = NULL;
char *result = NULL;
+ /* Initialize it just to avoid a GCC false warning. */ + /* Initialize it just to avoid a GCC false warning. */
+ PyThreadState *state = NULL; + PyThreadState *state = NULL;
- if (! PyArg_ParseTupleAndKeywords (args, kw, "s|O!O!", keywords, &arg, - if (!gdb_PyArg_ParseTupleAndKeywords (args, kw, "s|O!O!", keywords, &arg,
+ if (! PyArg_ParseTupleAndKeywords (args, kw, "s|O!O!O!", keywords, &arg, + if (!gdb_PyArg_ParseTupleAndKeywords (args, kw, "s|O!O!O!", keywords, &arg,
&PyBool_Type, &from_tty_obj, &PyBool_Type, &from_tty_obj,
- &PyBool_Type, &to_string_obj)) - &PyBool_Type, &to_string_obj))
+ &PyBool_Type, &to_string_obj, + &PyBool_Type, &to_string_obj,
+ &PyBool_Type, &release_gil_obj)) + &PyBool_Type, &release_gil_obj))
return NULL; return NULL;
from_tty = 0; from_tty = 0;
@@ -646,6 +651,15 @@ @@ -620,6 +624,15 @@
to_string = cmp; to_string = cmp;
} }
@ -70,11 +68,11 @@ Index: gdb-7.11.50.20160630/gdb/python/python.c
+ release_gil = cmp; + release_gil = cmp;
+ } + }
+ +
std::string to_string_res;
TRY TRY
{ @@ -628,6 +641,13 @@
/* Copy the argument text in case the command modifies it. */ std::string copy (arg);
@@ -653,6 +667,13 @@
struct cleanup *cleanup = make_cleanup (xfree, copy);
struct interp *interp; struct interp *interp;
+ /* In the case of long running GDB commands, allow the user to + /* In the case of long running GDB commands, allow the user to
@ -84,18 +82,17 @@ Index: gdb-7.11.50.20160630/gdb/python/python.c
+ if (release_gil) + if (release_gil)
+ state = PyEval_SaveThread(); + state = PyEval_SaveThread();
+ +
make_cleanup_restore_integer (&current_ui->async); scoped_restore save_async = make_scoped_restore (&current_ui->async, 0);
current_ui->async = 0;
@@ -671,11 +692,23 @@
execute_command (copy, from_tty);
}
scoped_restore save_uiout = make_scoped_restore (&current_uiout);
@@ -642,10 +662,22 @@
to_string_res = execute_command_to_string (&copy[0], from_tty);
else
execute_command (&copy[0], from_tty);
+
+ /* Reacquire the GIL if it was released earlier. */ + /* Reacquire the GIL if it was released earlier. */
+ if (release_gil) + if (release_gil)
+ PyEval_RestoreThread (state); + PyEval_RestoreThread (state);
+
do_cleanups (cleanup);
} }
CATCH (except, RETURN_MASK_ALL) CATCH (except, RETURN_MASK_ALL)
{ {
@ -112,8 +109,10 @@ Index: gdb-7.11.50.20160630/gdb/python/python.c
} }
END_CATCH END_CATCH
--- /dev/null 2016-09-12 21:37:05.332693927 +0200 Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.c
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.python/py-gil-mthread.c 2016-09-12 21:51:53.750317187 +0200 ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.c 2017-04-20 23:16:35.691360143 +0200
@@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
+#include <stdio.h> +#include <stdio.h>
+#include <unistd.h> +#include <unistd.h>
@ -128,8 +127,10 @@ Index: gdb-7.11.50.20160630/gdb/python/python.c
+ printf ("Sleeping %d\n", i); + printf ("Sleeping %d\n", i);
+ } + }
+} +}
--- /dev/null 2016-09-12 21:37:05.332693927 +0200 Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.exp
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.python/py-gil-mthread.exp 2016-09-12 21:52:38.605750360 +0200 ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.exp 2017-04-20 23:16:35.691360143 +0200
@@ -0,0 +1,69 @@ @@ -0,0 +1,69 @@
+# Copyright (C) 2014 Free Software Foundation, Inc. +# Copyright (C) 2014 Free Software Foundation, Inc.
+ +
@ -200,8 +201,10 @@ Index: gdb-7.11.50.20160630/gdb/python/python.c
+ } + }
+ } + }
+} +}
--- /dev/null 2016-09-12 21:37:05.332693927 +0200 Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.py
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.python/py-gil-mthread.py 2016-09-12 21:59:02.668459286 +0200 ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.py 2017-04-20 23:16:35.692360149 +0200
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
+try: +try:
+ import thread + import thread
@ -216,7 +219,7 @@ Index: gdb-7.11.50.20160630/gdb/python/python.c
+ while count < 10: + while count < 10:
+ time.sleep(1) + time.sleep(1)
+ count += 1 + count += 1
+ print ("Hello (", count, ")") + print ("Hello ( %d )" % count)
+ +
+# Create a threads a continue +# Create a threads a continue
+try: +try:

74
gdb-release-werror.patch Normal file
View File

@ -0,0 +1,74 @@
http://sourceware.org/ml/gdb-patches/2017-04/msg00593.html
Subject: [patch+8.0] release branch: Fix: --enable-werror
--8t9RHnE3ZwKMSgU+
Content-Type: text/plain; charset=iso-2022-jp
Content-Disposition: inline
Hi,
gdb-8.0-branch
./configure --enable-werror --enable-targets=all
aarch64-tdep.c:3045:13: error: $B!F(Bvoid selftests::aarch64_process_record_test()$B!G(B declared $B!F(Bstatic$B!G(B but never defined [-Werror=unused-function]
arm-tdep.c:9601:13: error: $B!F(Bvoid selftests::arm_record_test()$B!G(B declared $B!F(Bstatic$B!G(B but never defined [-Werror=unused-function]
OK for check-in?
Please do not tell me release branches do not support --enable-werror as this
is due to a sourcebase bug, not due to some unexpected compiler
incompatibility.
Sergio: Shouldn't it be also buildbot-tested?
Jan
--8t9RHnE3ZwKMSgU+
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename=1
gdb/ChangeLog
2017-04-21 Jan Kratochvil <jan.kratochvil@redhat.com>
* aarch64-tdep.c (selftests::aarch64_process_record_test): Make it #if
GDB_SELF_TEST.
* arm-tdep.c (selftests::arm_record_test): Likewise.
diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c
index 28c2573..6113621 100644
--- a/gdb/aarch64-tdep.c
+++ b/gdb/aarch64-tdep.c
@@ -3040,10 +3040,12 @@ aarch64_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file)
paddress (gdbarch, tdep->lowest_pc));
}
+#if GDB_SELF_TEST
namespace selftests
{
static void aarch64_process_record_test (void);
}
+#endif
/* Suppress warning from -Wmissing-prototypes. */
extern initialize_file_ftype _initialize_aarch64_tdep;
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index c8fabfb..9ac667f 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -9596,10 +9596,12 @@ arm_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file)
(unsigned long) tdep->lowest_pc);
}
+#if GDB_SELF_TEST
namespace selftests
{
static void arm_record_test (void);
}
+#endif
extern initialize_file_ftype _initialize_arm_tdep; /* -Wmissing-prototypes */
--8t9RHnE3ZwKMSgU+--

View File

@ -74,7 +74,7 @@ Index: gdb-7.2/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_me
+ +
+set testfile py-gdb-rhbz1007614-memleak-infpy_read_memory +set testfile py-gdb-rhbz1007614-memleak-infpy_read_memory
+set srcfile ${testfile}.c +set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile} +set binfile [standard_output_file ${testfile}]
+ +
+if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } { +if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } {
+ return -1 + return -1

View File

@ -2,7 +2,7 @@ Index: gdb-7.6.1/gdb/testsuite/gdb.base/rhbz1261564-aarch64-watchpoint.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.1/gdb/testsuite/gdb.base/rhbz1261564-aarch64-watchpoint.exp 2016-03-10 22:31:31.152094080 +0100 +++ gdb-7.6.1/gdb/testsuite/gdb.base/rhbz1261564-aarch64-watchpoint.exp 2016-03-10 22:31:31.152094080 +0100
@@ -0,0 +1,43 @@ @@ -0,0 +1,53 @@
+# Copyright (C) 2016 Free Software Foundation, Inc. +# Copyright (C) 2016 Free Software Foundation, Inc.
+ +
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -24,7 +24,13 @@ Index: gdb-7.6.1/gdb/testsuite/gdb.base/rhbz1261564-aarch64-watchpoint.exp
+ +
+if { ! [ runto main ] } then { return 0 } +if { ! [ runto main ] } then { return 0 }
+ +
+gdb_test "rwatch aligned.var4" "Hardware read watchpoint \[0-9\]+: aligned.var4" +set test "rwatch aligned.var4"
+if [istarget "s390*-*-*"] {
+ gdb_test $test {Target does not support this type of hardware watchpoint\.}
+ untested "s390* does not support hw read watchpoint"
+ return
+}
+gdb_test $test "Hardware read watchpoint \[0-9\]+: aligned.var4"
+ +
+proc checkvar { address } { +proc checkvar { address } {
+ global gdb_prompt + global gdb_prompt
@ -45,6 +51,10 @@ Index: gdb-7.6.1/gdb/testsuite/gdb.base/rhbz1261564-aarch64-watchpoint.exp
+if ![checkvar "4"] { return } +if ![checkvar "4"] { return }
+if ![checkvar "8"] { return } +if ![checkvar "8"] { return }
+ +
+# Assumes: PPC_PTRACE_GETHWDBGINFO::data_bp_alignment == 8
+# 'lwz' does read only 4 bytes but the hw watchpoint is 8 bytes wide.
+setup_xfail "powerpc*-*-*"
+
+gdb_continue_to_end +gdb_continue_to_end
Index: gdb-7.6.1/gdb/testsuite/gdb.base/rhbz1261564-aarch64-watchpoint.c Index: gdb-7.6.1/gdb/testsuite/gdb.base/rhbz1261564-aarch64-watchpoint.c
=================================================================== ===================================================================

View File

@ -0,0 +1,448 @@
diff --git a/gdb/testsuite/gdb.base/tab-crash.bz2.uu b/gdb/testsuite/gdb.base/tab-crash.bz2.uu
new file mode 100644
index 0000000..e55ec50
--- /dev/null
+++ b/gdb/testsuite/gdb.base/tab-crash.bz2.uu
@@ -0,0 +1,393 @@
+begin 644 /tmp/libgcc_s-6.3.1-20161221.so.1-objcopyR.debug.bz2
+M0EIH.3%!6293622@"44`>Q=_____________________________________
+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
+`
+end
diff --git a/gdb/testsuite/gdb.base/tab-crash.exp b/gdb/testsuite/gdb.base/tab-crash.exp
new file mode 100644
index 0000000..948c1e7
--- /dev/null
+++ b/gdb/testsuite/gdb.base/tab-crash.exp
@@ -0,0 +1,43 @@
+# This testcase is part of GDB, the GNU debugger.
+
+# Copyright 2017 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/>.
+
+if { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
+ return
+}
+
+standard_testfile
+
+# gcc-base-debuginfo-6.3.1-1.fc25.x86_64
+# /usr/lib/debug/lib64/libgcc_s-6.3.1-20161221.so.1.debug
+# objcopy -R .debug_loc -R .debug_ranges -R .debug_info -R .debug_abbrev -R .debug_aranges -R .debug_str -R .comment ...
+
+set debugfilebz2uu ${srcdir}/${subdir}/${testfile}.bz2.uu
+set debugfile [standard_output_file ${testfile}]
+
+if {[catch "system \"uudecode -o - ${debugfilebz2uu} | bzip2 -dc >${debugfile}\""] != 0} {
+ untested "failed uudecode or bzip2"
+ return -1
+}
+file stat ${debugfile} debugfilestat
+if {$debugfilestat(size) != 71936} {
+ untested "uudecode or bzip2 produce invalid result"
+ return -1
+}
+
+clean_restart ${debugfile}
+
+gdb_test "complete p si" "complete p si\r\np size_of_encoded_value"

File diff suppressed because it is too large Load Diff

View File

@ -137,11 +137,11 @@ 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.11.50.20160716/gdb/alpha-tdep.c Index: gdb-7.99.90.20170420/gdb/alpha-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/alpha-tdep.c 2016-07-16 14:35:45.390502718 +0200 --- gdb-7.99.90.20170420.orig/gdb/alpha-tdep.c 2017-04-20 23:12:07.894566371 +0200
+++ gdb-7.11.50.20160716/gdb/alpha-tdep.c 2016-07-16 14:35:47.511519788 +0200 +++ gdb-7.99.90.20170420/gdb/alpha-tdep.c 2017-04-20 23:12:11.228588703 +0200
@@ -299,17 +299,17 @@ @@ -300,17 +300,17 @@
{ {
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int i; int i;
@ -163,7 +163,7 @@ Index: gdb-7.11.50.20160716/gdb/alpha-tdep.c
CORE_ADDR func_addr = find_function_addr (function, NULL); CORE_ADDR func_addr = find_function_addr (function, NULL);
/* The ABI places the address of the called function in T12. */ /* The ABI places the address of the called function in T12. */
@@ -429,8 +429,8 @@ @@ -430,8 +430,8 @@
for (i = nargs; m_arg--, --i >= 0;) for (i = nargs; m_arg--, --i >= 0;)
{ {
const gdb_byte *contents = m_arg->contents; const gdb_byte *contents = m_arg->contents;
@ -174,7 +174,7 @@ Index: gdb-7.11.50.20160716/gdb/alpha-tdep.c
/* Copy the bytes destined for registers into arg_reg_buffer. */ /* Copy the bytes destined for registers into arg_reg_buffer. */
if (offset < sizeof(arg_reg_buffer)) if (offset < sizeof(arg_reg_buffer))
@@ -442,7 +442,7 @@ @@ -443,7 +443,7 @@
} }
else else
{ {
@ -183,11 +183,11 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/amd64-tdep.c Index: gdb-7.99.90.20170420/gdb/amd64-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/amd64-tdep.c 2016-07-16 14:35:45.391502726 +0200 --- gdb-7.99.90.20170420.orig/gdb/amd64-tdep.c 2017-04-20 23:12:07.897566391 +0200
+++ gdb-7.11.50.20160716/gdb/amd64-tdep.c 2016-07-16 14:35:47.512519796 +0200 +++ gdb-7.99.90.20170420/gdb/amd64-tdep.c 2017-04-20 23:12:11.229588710 +0200
@@ -729,7 +729,7 @@ @@ -735,7 +735,7 @@
gdb_byte *readbuf, const gdb_byte *writebuf) gdb_byte *readbuf, const gdb_byte *writebuf)
{ {
enum amd64_reg_class theclass[2]; enum amd64_reg_class theclass[2];
@ -196,7 +196,20 @@ Index: gdb-7.11.50.20160716/gdb/amd64-tdep.c
static int integer_regnum[] = { AMD64_RAX_REGNUM, AMD64_RDX_REGNUM }; static int integer_regnum[] = { AMD64_RAX_REGNUM, AMD64_RDX_REGNUM };
static int sse_regnum[] = { AMD64_XMM0_REGNUM, AMD64_XMM1_REGNUM }; static int sse_regnum[] = { AMD64_XMM0_REGNUM, AMD64_XMM1_REGNUM };
int integer_reg = 0; int integer_reg = 0;
@@ -880,8 +880,8 @@ @@ -852,10 +852,10 @@
gdb_assert (regnum != -1);
if (readbuf)
- regcache_raw_read_part (regcache, regnum, offset, std::min (len, 8),
+ regcache_raw_read_part (regcache, regnum, offset, std::min (len, (LONGEST) 8),
readbuf + i * 8);
if (writebuf)
- regcache_raw_write_part (regcache, regnum, offset, std::min (len, 8),
+ regcache_raw_write_part (regcache, regnum, offset, std::min (len, (LONGEST) 8),
writebuf + i * 8);
}
@@ -886,8 +886,8 @@
}; };
struct value **stack_args = XALLOCAVEC (struct value *, nargs); struct value **stack_args = XALLOCAVEC (struct value *, nargs);
int num_stack_args = 0; int num_stack_args = 0;
@ -207,7 +220,7 @@ Index: gdb-7.11.50.20160716/gdb/amd64-tdep.c
int integer_reg = 0; int integer_reg = 0;
int sse_reg = 0; int sse_reg = 0;
int i; int i;
@@ -893,7 +893,7 @@ @@ -899,7 +899,7 @@
for (i = 0; i < nargs; i++) for (i = 0; i < nargs; i++)
{ {
struct type *type = value_type (args[i]); struct type *type = value_type (args[i]);
@ -216,11 +229,20 @@ Index: gdb-7.11.50.20160716/gdb/amd64-tdep.c
enum amd64_reg_class theclass[2]; enum amd64_reg_class theclass[2];
int needed_integer_regs = 0; int needed_integer_regs = 0;
int needed_sse_regs = 0; int needed_sse_regs = 0;
Index: gdb-7.11.50.20160716/gdb/amd64-windows-tdep.c @@ -963,7 +963,7 @@
gdb_assert (regnum != -1);
memset (buf, 0, sizeof buf);
- memcpy (buf, valbuf + j * 8, std::min (len, 8));
+ memcpy (buf, valbuf + j * 8, std::min (len, (LONGEST) 8));
regcache_raw_write_part (regcache, regnum, offset, 8, buf);
}
}
Index: gdb-7.99.90.20170420/gdb/amd64-windows-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/amd64-windows-tdep.c 2016-07-16 14:35:45.393502742 +0200 --- gdb-7.99.90.20170420.orig/gdb/amd64-windows-tdep.c 2017-04-20 23:12:07.897566391 +0200
+++ gdb-7.11.50.20160716/gdb/amd64-windows-tdep.c 2016-07-16 14:35:47.512519796 +0200 +++ gdb-7.99.90.20170420/gdb/amd64-windows-tdep.c 2017-04-20 23:12:11.230588717 +0200
@@ -288,7 +288,7 @@ @@ -290,7 +290,7 @@
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)
{ {
@ -229,11 +251,11 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/arm-tdep.c Index: gdb-7.99.90.20170420/gdb/arm-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/arm-tdep.c 2016-07-16 14:35:45.400502798 +0200 --- gdb-7.99.90.20170420.orig/gdb/arm-tdep.c 2017-04-20 23:12:07.905566445 +0200
+++ gdb-7.11.50.20160716/gdb/arm-tdep.c 2016-07-16 14:36:30.328864376 +0200 +++ gdb-7.99.90.20170420/gdb/arm-tdep.c 2017-04-20 23:12:11.233588737 +0200
@@ -3443,7 +3443,7 @@ @@ -3492,7 +3492,7 @@
array). Vector types are not currently supported, matching the array). Vector types are not currently supported, matching the
generic AAPCS support. */ generic AAPCS support. */
@ -242,7 +264,7 @@ Index: gdb-7.11.50.20160716/gdb/arm-tdep.c
arm_vfp_cprc_sub_candidate (struct type *t, arm_vfp_cprc_sub_candidate (struct type *t,
enum arm_vfp_cprc_base_type *base_type) enum arm_vfp_cprc_base_type *base_type)
{ {
@@ -3526,7 +3526,7 @@ @@ -3575,7 +3575,7 @@
} }
else else
{ {
@ -251,7 +273,7 @@ Index: gdb-7.11.50.20160716/gdb/arm-tdep.c
unsigned unitlen; unsigned unitlen;
count = arm_vfp_cprc_sub_candidate (TYPE_TARGET_TYPE (t), count = arm_vfp_cprc_sub_candidate (TYPE_TARGET_TYPE (t),
@@ -3549,12 +3549,12 @@ @@ -3598,12 +3598,12 @@
case TYPE_CODE_STRUCT: case TYPE_CODE_STRUCT:
{ {
@ -266,7 +288,7 @@ Index: gdb-7.11.50.20160716/gdb/arm-tdep.c
if (!field_is_static (&TYPE_FIELD (t, i))) if (!field_is_static (&TYPE_FIELD (t, i)))
sub_count = arm_vfp_cprc_sub_candidate (TYPE_FIELD_TYPE (t, i), sub_count = arm_vfp_cprc_sub_candidate (TYPE_FIELD_TYPE (t, i),
@@ -3578,13 +3578,15 @@ @@ -3627,13 +3627,15 @@
case TYPE_CODE_UNION: case TYPE_CODE_UNION:
{ {
@ -285,7 +307,7 @@ Index: gdb-7.11.50.20160716/gdb/arm-tdep.c
if (sub_count == -1) if (sub_count == -1)
return -1; return -1;
count = (count > sub_count ? count : sub_count); count = (count > sub_count ? count : sub_count);
@@ -3620,7 +3622,7 @@ @@ -3669,7 +3671,7 @@
int *count) int *count)
{ {
enum arm_vfp_cprc_base_type b = VFP_CPRC_UNKNOWN; enum arm_vfp_cprc_base_type b = VFP_CPRC_UNKNOWN;
@ -294,7 +316,7 @@ Index: gdb-7.11.50.20160716/gdb/arm-tdep.c
if (c <= 0 || c > 4) if (c <= 0 || c > 4)
return 0; return 0;
*base_type = b; *base_type = b;
@@ -3701,7 +3703,7 @@ @@ -3750,7 +3752,7 @@
for (argnum = 0; argnum < nargs; argnum++) for (argnum = 0; argnum < nargs; argnum++)
{ {
@ -303,11 +325,11 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/avr-tdep.c Index: gdb-7.99.90.20170420/gdb/avr-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/avr-tdep.c 2016-07-16 14:35:45.401502806 +0200 --- gdb-7.99.90.20170420.orig/gdb/avr-tdep.c 2017-04-20 23:12:07.907566458 +0200
+++ gdb-7.11.50.20160716/gdb/avr-tdep.c 2016-07-16 14:35:47.516519828 +0200 +++ gdb-7.99.90.20170420/gdb/avr-tdep.c 2017-04-20 23:12:11.234588743 +0200
@@ -1195,13 +1195,13 @@ @@ -1191,13 +1191,13 @@
struct stack_item struct stack_item
{ {
@ -323,7 +345,7 @@ Index: gdb-7.11.50.20160716/gdb/avr-tdep.c
{ {
struct stack_item *si; struct stack_item *si;
si = XNEW (struct stack_item); si = XNEW (struct stack_item);
@@ -1289,12 +1289,12 @@ @@ -1285,12 +1285,12 @@
for (i = 0; i < nargs; i++) for (i = 0; i < nargs; i++)
{ {
@ -339,11 +361,11 @@ Index: gdb-7.11.50.20160716/gdb/avr-tdep.c
/* Calculate the potential last register needed. /* Calculate the potential last register needed.
E.g. For length 2, registers regnum and regnum-1 (say 25 and 24) E.g. For length 2, registers regnum and regnum-1 (say 25 and 24)
Index: gdb-7.11.50.20160716/gdb/bfin-tdep.c Index: gdb-7.99.90.20170420/gdb/bfin-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/bfin-tdep.c 2016-07-16 14:35:45.401502806 +0200 --- gdb-7.99.90.20170420.orig/gdb/bfin-tdep.c 2017-04-20 23:12:07.907566458 +0200
+++ gdb-7.11.50.20160716/gdb/bfin-tdep.c 2016-07-16 14:35:47.516519828 +0200 +++ gdb-7.99.90.20170420/gdb/bfin-tdep.c 2017-04-20 23:12:11.234588743 +0200
@@ -502,7 +502,7 @@ @@ -504,7 +504,7 @@
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int i; int i;
long reg_r0, reg_r1, reg_r2; long reg_r0, reg_r1, reg_r2;
@ -352,7 +374,7 @@ Index: gdb-7.11.50.20160716/gdb/bfin-tdep.c
for (i = nargs - 1; i >= 0; i--) for (i = nargs - 1; i >= 0; i--)
{ {
@@ -524,7 +524,7 @@ @@ -526,7 +526,7 @@
{ {
struct type *value_type = value_enclosing_type (args[i]); struct type *value_type = value_enclosing_type (args[i]);
struct type *arg_type = check_typedef (value_type); struct type *arg_type = check_typedef (value_type);
@ -361,10 +383,10 @@ Index: gdb-7.11.50.20160716/gdb/bfin-tdep.c
sp -= container_len; sp -= container_len;
write_memory (sp, value_contents (args[i]), container_len); write_memory (sp, value_contents (args[i]), container_len);
Index: gdb-7.11.50.20160716/gdb/cris-tdep.c Index: gdb-7.99.90.20170420/gdb/cris-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/cris-tdep.c 2016-07-16 14:35:45.403502823 +0200 --- gdb-7.99.90.20170420.orig/gdb/cris-tdep.c 2017-04-20 23:12:07.909566471 +0200
+++ gdb-7.11.50.20160716/gdb/cris-tdep.c 2016-07-16 14:35:47.517519836 +0200 +++ gdb-7.99.90.20170420/gdb/cris-tdep.c 2017-04-20 23:12:11.235588750 +0200
@@ -663,13 +663,13 @@ @@ -663,13 +663,13 @@
struct stack_item struct stack_item
@ -399,10 +421,10 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/h8300-tdep.c Index: gdb-7.99.90.20170420/gdb/h8300-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/h8300-tdep.c 2016-07-16 14:35:45.403502823 +0200 --- gdb-7.99.90.20170420.orig/gdb/h8300-tdep.c 2017-04-20 23:12:07.910566478 +0200
+++ gdb-7.11.50.20160716/gdb/h8300-tdep.c 2016-07-16 14:35:47.517519836 +0200 +++ gdb-7.99.90.20170420/gdb/h8300-tdep.c 2017-04-20 23:12:11.235588750 +0200
@@ -637,7 +637,7 @@ @@ -637,7 +637,7 @@
int struct_return, CORE_ADDR struct_addr) int struct_return, CORE_ADDR struct_addr)
{ {
@ -435,11 +457,11 @@ Index: gdb-7.11.50.20160716/gdb/h8300-tdep.c
for (offset = 0; offset < padded_len; offset += wordsize) for (offset = 0; offset < padded_len; offset += wordsize)
{ {
Index: gdb-7.11.50.20160716/gdb/hppa-tdep.c Index: gdb-7.99.90.20170420/gdb/hppa-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/hppa-tdep.c 2016-07-16 14:35:45.405502839 +0200 --- gdb-7.99.90.20170420.orig/gdb/hppa-tdep.c 2017-04-20 23:12:07.911566485 +0200
+++ gdb-7.11.50.20160716/gdb/hppa-tdep.c 2016-07-16 14:35:47.518519844 +0200 +++ gdb-7.99.90.20170420/gdb/hppa-tdep.c 2017-04-20 23:12:11.236588757 +0200
@@ -991,7 +991,7 @@ @@ -989,7 +989,7 @@
{ {
struct value *arg = args[i]; struct value *arg = args[i];
struct type *type = value_type (arg); struct type *type = value_type (arg);
@ -448,7 +470,7 @@ Index: gdb-7.11.50.20160716/gdb/hppa-tdep.c
const bfd_byte *valbuf; const bfd_byte *valbuf;
bfd_byte fptrbuf[8]; bfd_byte fptrbuf[8];
int regnum; int regnum;
@@ -1186,7 +1186,7 @@ @@ -1184,7 +1184,7 @@
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)
{ {
@ -457,11 +479,11 @@ Index: gdb-7.11.50.20160716/gdb/hppa-tdep.c
int regnum, offset; int regnum, offset;
if (len > 16) if (len > 16)
Index: gdb-7.11.50.20160716/gdb/i386-darwin-tdep.c Index: gdb-7.99.90.20170420/gdb/i386-darwin-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/i386-darwin-tdep.c 2016-07-16 14:35:45.405502839 +0200 --- gdb-7.99.90.20170420.orig/gdb/i386-darwin-tdep.c 2017-04-20 23:12:07.912566492 +0200
+++ gdb-7.11.50.20160716/gdb/i386-darwin-tdep.c 2016-07-16 14:35:47.518519844 +0200 +++ gdb-7.99.90.20170420/gdb/i386-darwin-tdep.c 2017-04-20 23:12:11.237588763 +0200
@@ -163,7 +163,7 @@ @@ -167,7 +167,7 @@
for (write_pass = 0; write_pass < 2; write_pass++) for (write_pass = 0; write_pass < 2; write_pass++)
{ {
@ -470,20 +492,20 @@ Index: gdb-7.11.50.20160716/gdb/i386-darwin-tdep.c
int num_m128 = 0; int num_m128 = 0;
if (struct_return) if (struct_return)
Index: gdb-7.11.50.20160716/gdb/i386-tdep.c Index: gdb-7.99.90.20170420/gdb/i386-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/i386-tdep.c 2016-07-16 14:35:45.410502879 +0200 --- gdb-7.99.90.20170420.orig/gdb/i386-tdep.c 2017-04-20 23:12:07.917566525 +0200
+++ gdb-7.11.50.20160716/gdb/i386-tdep.c 2016-07-16 14:35:47.520519860 +0200 +++ gdb-7.99.90.20170420/gdb/i386-tdep.c 2017-04-20 23:12:11.239588777 +0200
@@ -2664,7 +2664,7 @@ @@ -2682,7 +2682,7 @@
gdb_byte buf[4]; gdb_byte buf[4];
int i; int i;
int write_pass; int write_pass;
- int args_space = 0; - int args_space = 0;
+ LONGEST args_space = 0; + LONGEST args_space = 0;
/* Determine the total space required for arguments and struct /* BND registers can be in arbitrary values at the moment of the
return address in a first pass (allowing for 16-byte-aligned inferior call. This can cause boundary violations that are not
@@ -2672,7 +2672,7 @@ @@ -2697,7 +2697,7 @@
for (write_pass = 0; write_pass < 2; write_pass++) for (write_pass = 0; write_pass < 2; write_pass++)
{ {
@ -492,7 +514,7 @@ Index: gdb-7.11.50.20160716/gdb/i386-tdep.c
if (struct_return) if (struct_return)
{ {
@@ -2689,7 +2689,7 @@ @@ -2714,7 +2714,7 @@
for (i = 0; i < nargs; i++) for (i = 0; i < nargs; i++)
{ {
@ -501,7 +523,7 @@ Index: gdb-7.11.50.20160716/gdb/i386-tdep.c
if (write_pass) if (write_pass)
{ {
@@ -2896,7 +2896,7 @@ @@ -2921,7 +2921,7 @@
{ {
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
enum type_code code = TYPE_CODE (type); enum type_code code = TYPE_CODE (type);
@ -510,7 +532,7 @@ Index: gdb-7.11.50.20160716/gdb/i386-tdep.c
gdb_assert (code == TYPE_CODE_STRUCT gdb_assert (code == TYPE_CODE_STRUCT
|| code == TYPE_CODE_UNION || code == TYPE_CODE_UNION
@@ -3718,7 +3718,7 @@ @@ -3743,7 +3743,7 @@
i386_convert_register_p (struct gdbarch *gdbarch, i386_convert_register_p (struct gdbarch *gdbarch,
int regnum, struct type *type) int regnum, struct type *type)
{ {
@ -519,7 +541,7 @@ Index: gdb-7.11.50.20160716/gdb/i386-tdep.c
/* Values may be spread across multiple registers. Most debugging /* Values may be spread across multiple registers. Most debugging
formats aren't expressive enough to specify the locations, so formats aren't expressive enough to specify the locations, so
@@ -3751,7 +3751,7 @@ @@ -3776,7 +3776,7 @@
int *optimizedp, int *unavailablep) int *optimizedp, int *unavailablep)
{ {
struct gdbarch *gdbarch = get_frame_arch (frame); struct gdbarch *gdbarch = get_frame_arch (frame);
@ -528,7 +550,7 @@ Index: gdb-7.11.50.20160716/gdb/i386-tdep.c
if (i386_fp_regnum_p (gdbarch, regnum)) if (i386_fp_regnum_p (gdbarch, regnum))
return i387_register_to_value (frame, regnum, type, to, return i387_register_to_value (frame, regnum, type, to,
@@ -3787,7 +3787,7 @@ @@ -3812,7 +3812,7 @@
i386_value_to_register (struct frame_info *frame, int regnum, i386_value_to_register (struct frame_info *frame, int regnum,
struct type *type, const gdb_byte *from) struct type *type, const gdb_byte *from)
{ {
@ -537,11 +559,11 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/iq2000-tdep.c Index: gdb-7.99.90.20170420/gdb/iq2000-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/iq2000-tdep.c 2016-07-16 14:35:45.411502887 +0200 --- gdb-7.99.90.20170420.orig/gdb/iq2000-tdep.c 2017-04-20 23:12:07.918566532 +0200
+++ gdb-7.11.50.20160716/gdb/iq2000-tdep.c 2016-07-16 14:35:47.520519860 +0200 +++ gdb-7.99.90.20170420/gdb/iq2000-tdep.c 2017-04-20 23:12:11.239588777 +0200
@@ -646,8 +646,9 @@ @@ -651,8 +651,9 @@
const bfd_byte *val; const bfd_byte *val;
bfd_byte buf[4]; bfd_byte buf[4];
struct type *type; struct type *type;
@ -553,24 +575,24 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/m32r-tdep.c Index: gdb-7.99.90.20170420/gdb/m32r-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/m32r-tdep.c 2016-07-16 14:35:45.411502887 +0200 --- gdb-7.99.90.20170420.orig/gdb/m32r-tdep.c 2017-04-20 23:12:11.239588777 +0200
+++ gdb-7.11.50.20160716/gdb/m32r-tdep.c 2016-07-16 14:35:47.520519860 +0200 +++ gdb-7.99.90.20170420/gdb/m32r-tdep.c 2017-04-20 23:12:30.385717023 +0200
@@ -685,7 +685,7 @@ @@ -681,7 +681,7 @@
CORE_ADDR regval; CORE_ADDR regval;
gdb_byte *val; gdb_byte *val;
gdb_byte valbuf[MAX_REGISTER_SIZE]; gdb_byte valbuf[M32R_ARG_REGISTER_SIZE];
- int len; - int len;
+ LONGEST len; + LONGEST len;
/* 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.11.50.20160716/gdb/m68k-tdep.c Index: gdb-7.99.90.20170420/gdb/m68k-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/m68k-tdep.c 2016-07-16 14:35:45.412502895 +0200 --- gdb-7.99.90.20170420.orig/gdb/m68k-tdep.c 2017-04-20 23:12:07.919566538 +0200
+++ gdb-7.11.50.20160716/gdb/m68k-tdep.c 2016-07-16 14:35:47.520519860 +0200 +++ gdb-7.99.90.20170420/gdb/m68k-tdep.c 2017-04-20 23:12:11.240588783 +0200
@@ -382,7 +382,7 @@ @@ -377,7 +377,7 @@
{ {
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
enum type_code code = TYPE_CODE (type); enum type_code code = TYPE_CODE (type);
@ -579,7 +601,7 @@ Index: gdb-7.11.50.20160716/gdb/m68k-tdep.c
gdb_assert (code == TYPE_CODE_STRUCT || code == TYPE_CODE_UNION gdb_assert (code == TYPE_CODE_STRUCT || code == TYPE_CODE_UNION
|| code == TYPE_CODE_COMPLEX); || code == TYPE_CODE_COMPLEX);
@@ -514,9 +514,9 @@ @@ -509,9 +509,9 @@
for (i = nargs - 1; i >= 0; i--) for (i = nargs - 1; i >= 0; i--)
{ {
struct type *value_type = value_enclosing_type (args[i]); struct type *value_type = value_enclosing_type (args[i]);
@ -592,11 +614,11 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/m88k-tdep.c Index: gdb-7.99.90.20170420/gdb/m88k-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/m88k-tdep.c 2016-07-16 14:35:45.412502895 +0200 --- gdb-7.99.90.20170420.orig/gdb/m88k-tdep.c 2017-04-20 23:12:07.919566538 +0200
+++ gdb-7.11.50.20160716/gdb/m88k-tdep.c 2016-07-16 14:35:47.521519868 +0200 +++ gdb-7.99.90.20170420/gdb/m88k-tdep.c 2017-04-20 23:12:11.240588783 +0200
@@ -257,13 +257,13 @@ @@ -254,13 +254,13 @@
{ {
struct gdbarch *gdbarch = get_regcache_arch (regcache); struct gdbarch *gdbarch = get_regcache_arch (regcache);
int num_register_words = 0; int num_register_words = 0;
@ -612,7 +634,7 @@ Index: gdb-7.11.50.20160716/gdb/m88k-tdep.c
if (m88k_integral_or_pointer_p (type) && len < 4) if (m88k_integral_or_pointer_p (type) && len < 4)
{ {
@@ -305,8 +305,8 @@ @@ -302,8 +302,8 @@
{ {
const bfd_byte *valbuf = value_contents (args[i]); const bfd_byte *valbuf = value_contents (args[i]);
struct type *type = value_type (args[i]); struct type *type = value_type (args[i]);
@ -623,11 +645,11 @@ Index: gdb-7.11.50.20160716/gdb/m88k-tdep.c
if (m88k_in_register_p (type)) if (m88k_in_register_p (type))
{ {
Index: gdb-7.11.50.20160716/gdb/mep-tdep.c Index: gdb-7.99.90.20170420/gdb/mep-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/mep-tdep.c 2016-07-16 14:35:45.413502903 +0200 --- gdb-7.99.90.20170420.orig/gdb/mep-tdep.c 2017-04-20 23:12:07.920566545 +0200
+++ gdb-7.11.50.20160716/gdb/mep-tdep.c 2016-07-16 14:35:47.521519868 +0200 +++ gdb-7.99.90.20170420/gdb/mep-tdep.c 2017-04-20 23:12:11.241588790 +0200
@@ -2272,7 +2272,7 @@ @@ -2262,7 +2262,7 @@
for (i = 0; i < argc; i++) for (i = 0; i < argc; i++)
{ {
@ -636,11 +658,11 @@ Index: gdb-7.11.50.20160716/gdb/mep-tdep.c
if (arg_len > MEP_GPR_SIZE) if (arg_len > MEP_GPR_SIZE)
{ {
Index: gdb-7.11.50.20160716/gdb/mips-tdep.c Index: gdb-7.99.90.20170420/gdb/mips-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/mips-tdep.c 2016-07-16 14:35:45.421502967 +0200 --- gdb-7.99.90.20170420.orig/gdb/mips-tdep.c 2017-04-20 23:12:07.928566599 +0200
+++ gdb-7.11.50.20160716/gdb/mips-tdep.c 2016-07-16 14:35:47.523519884 +0200 +++ gdb-7.99.90.20170420/gdb/mips-tdep.c 2017-04-20 23:12:11.243588804 +0200
@@ -455,7 +455,7 @@ @@ -474,7 +474,7 @@
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,
enum bfd_endian endian, gdb_byte *in, enum bfd_endian endian, gdb_byte *in,
@ -649,7 +671,7 @@ Index: gdb-7.11.50.20160716/gdb/mips-tdep.c
{ {
int reg_offset = 0; int reg_offset = 0;
@@ -478,8 +478,8 @@ @@ -497,8 +497,8 @@
} }
if (mips_debug) if (mips_debug)
fprintf_unfiltered (gdb_stderr, fprintf_unfiltered (gdb_stderr,
@ -660,7 +682,7 @@ Index: gdb-7.11.50.20160716/gdb/mips-tdep.c
if (mips_debug && out != NULL) if (mips_debug && out != NULL)
{ {
int i; int i;
@@ -4529,13 +4529,13 @@ @@ -4530,13 +4530,13 @@
gdb_byte valbuf[MAX_REGISTER_SIZE]; gdb_byte valbuf[MAX_REGISTER_SIZE];
struct value *arg = args[argnum]; struct value *arg = args[argnum];
struct type *arg_type = check_typedef (value_type (arg)); struct type *arg_type = check_typedef (value_type (arg));
@ -677,7 +699,7 @@ Index: gdb-7.11.50.20160716/gdb/mips-tdep.c
/* The EABI passes structures that do not fit in a register by /* The EABI passes structures that do not fit in a register by
reference. */ reference. */
@@ -4804,7 +4804,7 @@ @@ -4805,7 +4805,7 @@
static int static int
mips_n32n64_fp_arg_chunk_p (struct gdbarch *gdbarch, struct type *arg_type, mips_n32n64_fp_arg_chunk_p (struct gdbarch *gdbarch, struct type *arg_type,
@ -686,7 +708,7 @@ Index: gdb-7.11.50.20160716/gdb/mips-tdep.c
{ {
int i; int i;
@@ -4819,7 +4819,7 @@ @@ -4820,7 +4820,7 @@
for (i = 0; i < TYPE_NFIELDS (arg_type); i++) for (i = 0; i < TYPE_NFIELDS (arg_type); i++)
{ {
@ -695,7 +717,7 @@ Index: gdb-7.11.50.20160716/gdb/mips-tdep.c
struct type *field_type; struct type *field_type;
/* We're only looking at normal fields. */ /* We're only looking at normal fields. */
@@ -4861,7 +4861,7 @@ @@ -4862,7 +4862,7 @@
int argreg; int argreg;
int float_argreg; int float_argreg;
int argnum; int argnum;
@ -704,7 +726,7 @@ Index: gdb-7.11.50.20160716/gdb/mips-tdep.c
int stack_offset = 0; int stack_offset = 0;
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
CORE_ADDR func_addr = find_function_addr (function, NULL); CORE_ADDR func_addr = find_function_addr (function, NULL);
@@ -5212,11 +5212,11 @@ @@ -5213,11 +5213,11 @@
: MIPS_V0_REGNUM); : MIPS_V0_REGNUM);
field < TYPE_NFIELDS (type); field++, regnum += 2) field < TYPE_NFIELDS (type); field++, regnum += 2)
{ {
@ -720,7 +742,7 @@ Index: gdb-7.11.50.20160716/gdb/mips-tdep.c
if (TYPE_LENGTH (TYPE_FIELD_TYPE (type, field)) == 16) if (TYPE_LENGTH (TYPE_FIELD_TYPE (type, field)) == 16)
{ {
/* A 16-byte long double field goes in two consecutive /* A 16-byte long double field goes in two consecutive
@@ -5258,8 +5258,8 @@ @@ -5259,8 +5259,8 @@
if (offset + xfer > TYPE_LENGTH (type)) if (offset + xfer > TYPE_LENGTH (type))
xfer = TYPE_LENGTH (type) - offset; xfer = TYPE_LENGTH (type) - offset;
if (mips_debug) if (mips_debug)
@ -731,7 +753,7 @@ Index: gdb-7.11.50.20160716/gdb/mips-tdep.c
mips_xfer_register (gdbarch, regcache, mips_xfer_register (gdbarch, regcache,
gdbarch_num_regs (gdbarch) + regnum, gdbarch_num_regs (gdbarch) + regnum,
xfer, BFD_ENDIAN_UNKNOWN, readbuf, writebuf, xfer, BFD_ENDIAN_UNKNOWN, readbuf, writebuf,
@@ -5317,7 +5317,7 @@ @@ -5318,7 +5318,7 @@
int argreg; int argreg;
int float_argreg; int float_argreg;
int argnum; int argnum;
@ -740,7 +762,7 @@ Index: gdb-7.11.50.20160716/gdb/mips-tdep.c
int stack_offset = 0; int stack_offset = 0;
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
CORE_ADDR func_addr = find_function_addr (function, NULL); CORE_ADDR func_addr = find_function_addr (function, NULL);
@@ -5381,13 +5381,13 @@ @@ -5382,13 +5382,13 @@
const gdb_byte *val; const gdb_byte *val;
struct value *arg = args[argnum]; struct value *arg = args[argnum];
struct type *arg_type = check_typedef (value_type (arg)); struct type *arg_type = check_typedef (value_type (arg));
@ -757,7 +779,7 @@ Index: gdb-7.11.50.20160716/gdb/mips-tdep.c
val = value_contents (arg); val = value_contents (arg);
@@ -5842,8 +5842,8 @@ @@ -5843,8 +5843,8 @@
int argreg; int argreg;
int float_argreg; int float_argreg;
int argnum; int argnum;
@ -768,7 +790,7 @@ Index: gdb-7.11.50.20160716/gdb/mips-tdep.c
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
CORE_ADDR func_addr = find_function_addr (function, NULL); CORE_ADDR func_addr = find_function_addr (function, NULL);
@@ -5903,13 +5903,13 @@ @@ -5904,13 +5904,13 @@
const gdb_byte *val; const gdb_byte *val;
struct value *arg = args[argnum]; struct value *arg = args[argnum];
struct type *arg_type = check_typedef (value_type (arg)); struct type *arg_type = check_typedef (value_type (arg));
@ -785,11 +807,11 @@ Index: gdb-7.11.50.20160716/gdb/mips-tdep.c
val = value_contents (arg); val = value_contents (arg);
Index: gdb-7.11.50.20160716/gdb/mn10300-tdep.c Index: gdb-7.99.90.20170420/gdb/mn10300-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/mn10300-tdep.c 2016-07-16 14:35:45.422502976 +0200 --- gdb-7.99.90.20170420.orig/gdb/mn10300-tdep.c 2017-04-20 23:12:07.929566605 +0200
+++ gdb-7.11.50.20160716/gdb/mn10300-tdep.c 2016-07-16 14:35:47.524519892 +0200 +++ gdb-7.99.90.20170420/gdb/mn10300-tdep.c 2017-04-20 23:12:11.243588804 +0200
@@ -1225,7 +1225,7 @@ @@ -1220,7 +1220,7 @@
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);
int regs_used; int regs_used;
@ -798,11 +820,11 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/mt-tdep.c Index: gdb-7.99.90.20170420/gdb/mt-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/mt-tdep.c 2016-07-16 14:35:45.423502984 +0200 --- gdb-7.99.90.20170420.orig/gdb/mt-tdep.c 2017-04-20 23:12:07.930566612 +0200
+++ gdb-7.11.50.20160716/gdb/mt-tdep.c 2016-07-16 14:35:47.524519892 +0200 +++ gdb-7.99.90.20170420/gdb/mt-tdep.c 2017-04-20 23:12:11.244588810 +0200
@@ -780,9 +780,9 @@ @@ -788,9 +788,9 @@
gdb_byte buf[MT_MAX_STRUCT_SIZE]; gdb_byte buf[MT_MAX_STRUCT_SIZE];
int argreg = MT_1ST_ARGREG; int argreg = MT_1ST_ARGREG;
int split_param_len = 0; int split_param_len = 0;
@ -814,11 +836,11 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/ppc-sysv-tdep.c Index: gdb-7.99.90.20170420/gdb/ppc-sysv-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/ppc-sysv-tdep.c 2016-07-16 14:35:45.424502992 +0200 --- gdb-7.99.90.20170420.orig/gdb/ppc-sysv-tdep.c 2017-04-20 23:12:07.931566619 +0200
+++ gdb-7.11.50.20160716/gdb/ppc-sysv-tdep.c 2016-07-16 14:35:47.524519892 +0200 +++ gdb-7.99.90.20170420/gdb/ppc-sysv-tdep.c 2017-04-20 23:12:11.245588817 +0200
@@ -66,7 +66,7 @@ @@ -67,7 +67,7 @@
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));
ULONGEST saved_sp; ULONGEST saved_sp;
@ -827,7 +849,7 @@ Index: gdb-7.11.50.20160716/gdb/ppc-sysv-tdep.c
int write_pass; int write_pass;
gdb_assert (tdep->wordsize == 4); gdb_assert (tdep->wordsize == 4);
@@ -97,9 +97,9 @@ @@ -98,9 +98,9 @@
/* Next available vector register for vector arguments. */ /* Next available vector register for vector arguments. */
int vreg = 2; int vreg = 2;
/* Arguments start above the "LR save word" and "Back chain". */ /* Arguments start above the "LR save word" and "Back chain". */
@ -839,7 +861,7 @@ Index: gdb-7.11.50.20160716/gdb/ppc-sysv-tdep.c
/* If the function is returning a `struct', then the first word /* If the function is returning a `struct', then the first word
(which will be passed in r3) is used for struct return (which will be passed in r3) is used for struct return
@@ -118,7 +118,7 @@ @@ -119,7 +119,7 @@
{ {
struct value *arg = args[argno]; struct value *arg = args[argno];
struct type *type = check_typedef (value_type (arg)); struct type *type = check_typedef (value_type (arg));
@ -848,7 +870,7 @@ Index: gdb-7.11.50.20160716/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
@@ -1283,11 +1283,11 @@ @@ -1284,11 +1284,11 @@
static void static void
ppc64_sysv_abi_push_val (struct gdbarch *gdbarch, ppc64_sysv_abi_push_val (struct gdbarch *gdbarch,
@ -862,11 +884,11 @@ Index: gdb-7.11.50.20160716/gdb/ppc-sysv-tdep.c
/* Enforce alignment of stack location, if requested. */ /* Enforce alignment of stack location, if requested. */
if (align > tdep->wordsize) if (align > tdep->wordsize)
Index: gdb-7.11.50.20160716/gdb/rl78-tdep.c Index: gdb-7.99.90.20170420/gdb/rl78-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/rl78-tdep.c 2016-07-16 14:35:45.424502992 +0200 --- gdb-7.99.90.20170420.orig/gdb/rl78-tdep.c 2017-04-20 23:12:07.931566619 +0200
+++ gdb-7.11.50.20160716/gdb/rl78-tdep.c 2016-07-16 14:35:47.525519900 +0200 +++ gdb-7.99.90.20170420/gdb/rl78-tdep.c 2017-04-20 23:12:11.245588817 +0200
@@ -1336,8 +1336,8 @@ @@ -1352,8 +1352,8 @@
for (i = nargs - 1; i >= 0; i--) for (i = nargs - 1; i >= 0; i--)
{ {
struct type *value_type = value_enclosing_type (args[i]); struct type *value_type = value_enclosing_type (args[i]);
@ -877,10 +899,10 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/rs6000-aix-tdep.c Index: gdb-7.99.90.20170420/gdb/rs6000-aix-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/rs6000-aix-tdep.c 2016-07-16 14:35:45.425503000 +0200 --- gdb-7.99.90.20170420.orig/gdb/rs6000-aix-tdep.c 2017-04-20 23:12:07.932566626 +0200
+++ gdb-7.11.50.20160716/gdb/rs6000-aix-tdep.c 2016-07-16 14:35:47.525519900 +0200 +++ gdb-7.99.90.20170420/gdb/rs6000-aix-tdep.c 2017-04-20 23:12:11.245588817 +0200
@@ -186,9 +186,9 @@ @@ -186,9 +186,9 @@
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);
@ -902,11 +924,11 @@ Index: gdb-7.11.50.20160716/gdb/rs6000-aix-tdep.c
if (argbytes) if (argbytes)
{ {
Index: gdb-7.11.50.20160716/gdb/s390-linux-tdep.c Index: gdb-7.99.90.20170420/gdb/s390-linux-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/s390-linux-tdep.c 2016-07-16 14:35:45.427503016 +0200 --- gdb-7.99.90.20170420.orig/gdb/s390-linux-tdep.c 2017-04-20 23:12:07.934566639 +0200
+++ gdb-7.11.50.20160716/gdb/s390-linux-tdep.c 2016-07-16 14:35:47.526519908 +0200 +++ gdb-7.99.90.20170420/gdb/s390-linux-tdep.c 2017-04-20 23:12:11.247588830 +0200
@@ -3125,7 +3125,7 @@ @@ -3081,7 +3081,7 @@
/* Determine whether N is a power of two. */ /* Determine whether N is a power of two. */
static int static int
@ -915,7 +937,7 @@ Index: gdb-7.11.50.20160716/gdb/s390-linux-tdep.c
{ {
return n && ((n & (n - 1)) == 0); return n && ((n & (n - 1)) == 0);
} }
@@ -3182,7 +3182,7 @@ @@ -3138,7 +3138,7 @@
enum bfd_endian byte_order, int is_unnamed) enum bfd_endian byte_order, int is_unnamed)
{ {
struct type *type = check_typedef (value_type (arg)); struct type *type = check_typedef (value_type (arg));
@ -924,11 +946,11 @@ Index: gdb-7.11.50.20160716/gdb/s390-linux-tdep.c
int write_mode = as->regcache != NULL; int write_mode = as->regcache != NULL;
if (s390_function_arg_float (type)) if (s390_function_arg_float (type))
Index: gdb-7.11.50.20160716/gdb/score-tdep.c Index: gdb-7.99.90.20170420/gdb/score-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/score-tdep.c 2016-07-16 14:35:45.428503024 +0200 --- gdb-7.99.90.20170420.orig/gdb/score-tdep.c 2017-04-20 23:12:07.935566646 +0200
+++ gdb-7.11.50.20160716/gdb/score-tdep.c 2016-07-16 14:35:47.527519916 +0200 +++ gdb-7.99.90.20170420/gdb/score-tdep.c 2017-04-20 23:12:11.248588837 +0200
@@ -514,7 +514,7 @@ @@ -525,7 +525,7 @@
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int argnum; int argnum;
int argreg; int argreg;
@ -937,11 +959,11 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/sh-tdep.c Index: gdb-7.99.90.20170420/gdb/sh-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/sh-tdep.c 2016-07-16 14:35:45.429503032 +0200 --- gdb-7.99.90.20170420.orig/gdb/sh-tdep.c 2017-04-20 23:12:07.936566652 +0200
+++ gdb-7.11.50.20160716/gdb/sh-tdep.c 2016-07-16 14:35:47.527519916 +0200 +++ gdb-7.99.90.20170420/gdb/sh-tdep.c 2017-04-20 23:12:11.248588837 +0200
@@ -805,7 +805,7 @@ @@ -814,7 +814,7 @@
static int static int
sh_use_struct_convention (int renesas_abi, struct type *type) sh_use_struct_convention (int renesas_abi, struct type *type)
{ {
@ -950,7 +972,7 @@ Index: gdb-7.11.50.20160716/gdb/sh-tdep.c
int nelem = TYPE_NFIELDS (type); int nelem = TYPE_NFIELDS (type);
/* The Renesas ABI returns aggregate types always on stack. */ /* The Renesas ABI returns aggregate types always on stack. */
@@ -907,7 +907,7 @@ @@ -916,7 +916,7 @@
/* Helper function to justify value in register according to endianess. */ /* Helper function to justify value in register according to endianess. */
static const gdb_byte * static const gdb_byte *
@ -959,7 +981,7 @@ Index: gdb-7.11.50.20160716/gdb/sh-tdep.c
{ {
static gdb_byte valbuf[4]; static gdb_byte valbuf[4];
@@ -1067,7 +1067,8 @@ @@ -1076,7 +1076,8 @@
struct type *type; struct type *type;
CORE_ADDR regval; CORE_ADDR regval;
const gdb_byte *val; const gdb_byte *val;
@ -969,7 +991,7 @@ Index: gdb-7.11.50.20160716/gdb/sh-tdep.c
int pass_on_stack = 0; int pass_on_stack = 0;
int treat_as_flt; int treat_as_flt;
int last_reg_arg = INT_MAX; int last_reg_arg = INT_MAX;
@@ -1208,7 +1209,8 @@ @@ -1217,7 +1218,8 @@
struct type *type; struct type *type;
CORE_ADDR regval; CORE_ADDR regval;
const gdb_byte *val; const gdb_byte *val;
@ -979,11 +1001,11 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/sh64-tdep.c Index: gdb-7.99.90.20170420/gdb/sh64-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/sh64-tdep.c 2016-07-16 14:35:45.430503040 +0200 --- gdb-7.99.90.20170420.orig/gdb/sh64-tdep.c 2017-04-20 23:12:07.937566659 +0200
+++ gdb-7.11.50.20160716/gdb/sh64-tdep.c 2016-07-16 14:35:47.528519925 +0200 +++ gdb-7.99.90.20170420/gdb/sh64-tdep.c 2017-04-20 23:12:11.249588844 +0200
@@ -1060,7 +1060,7 @@ @@ -1062,7 +1062,7 @@
CORE_ADDR struct_addr) CORE_ADDR struct_addr)
{ {
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
@ -992,7 +1014,7 @@ Index: gdb-7.11.50.20160716/gdb/sh64-tdep.c
int int_argreg; int int_argreg;
int float_arg_index = 0; int float_arg_index = 0;
int double_arg_index = 0; int double_arg_index = 0;
@@ -1069,7 +1069,7 @@ @@ -1071,7 +1071,7 @@
CORE_ADDR regval; CORE_ADDR regval;
const gdb_byte *val; const gdb_byte *val;
gdb_byte valbuf[8]; gdb_byte valbuf[8];
@ -1001,11 +1023,11 @@ Index: gdb-7.11.50.20160716/gdb/sh64-tdep.c
int argreg_size; int argreg_size;
int fp_args[12]; int fp_args[12];
Index: gdb-7.11.50.20160716/gdb/sparc-tdep.c Index: gdb-7.99.90.20170420/gdb/sparc-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/sparc-tdep.c 2016-07-16 14:35:45.431503048 +0200 --- gdb-7.99.90.20170420.orig/gdb/sparc-tdep.c 2017-04-20 23:12:07.938566666 +0200
+++ gdb-7.11.50.20160716/gdb/sparc-tdep.c 2016-07-16 14:35:47.528519925 +0200 +++ gdb-7.99.90.20170420/gdb/sparc-tdep.c 2017-04-20 23:12:11.249588844 +0200
@@ -525,7 +525,7 @@ @@ -567,7 +567,7 @@
for (i = 0; i < nargs; i++) for (i = 0; i < nargs; i++)
{ {
struct type *type = value_type (args[i]); struct type *type = value_type (args[i]);
@ -1014,11 +1036,11 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/sparc64-tdep.c Index: gdb-7.99.90.20170420/gdb/sparc64-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/sparc64-tdep.c 2016-07-16 14:35:45.432503056 +0200 --- gdb-7.99.90.20170420.orig/gdb/sparc64-tdep.c 2017-04-20 23:12:07.939566672 +0200
+++ gdb-7.11.50.20160716/gdb/sparc64-tdep.c 2016-07-16 14:35:47.528519925 +0200 +++ gdb-7.99.90.20170420/gdb/sparc64-tdep.c 2017-04-20 23:12:11.250588851 +0200
@@ -636,7 +636,8 @@ @@ -696,7 +696,8 @@
static void static void
sparc64_store_floating_fields (struct regcache *regcache, struct type *type, sparc64_store_floating_fields (struct regcache *regcache, struct type *type,
@ -1026,9 +1048,9 @@ Index: gdb-7.11.50.20160716/gdb/sparc64-tdep.c
+ const gdb_byte *valbuf, int element, + const gdb_byte *valbuf, int element,
+ LONGEST bitpos) + LONGEST bitpos)
{ {
struct gdbarch *gdbarch = get_regcache_arch (regcache);
int len = TYPE_LENGTH (type); int len = TYPE_LENGTH (type);
@@ -740,7 +741,7 @@
@@ -678,7 +679,7 @@
for (i = 0; i < TYPE_NFIELDS (type); i++) for (i = 0; i < TYPE_NFIELDS (type); i++)
{ {
struct type *subtype = check_typedef (TYPE_FIELD_TYPE (type, i)); struct type *subtype = check_typedef (TYPE_FIELD_TYPE (type, i));
@ -1037,16 +1059,16 @@ Index: gdb-7.11.50.20160716/gdb/sparc64-tdep.c
sparc64_store_floating_fields (regcache, subtype, valbuf, sparc64_store_floating_fields (regcache, subtype, valbuf,
element, subpos); element, subpos);
@@ -710,7 +711,7 @@ @@ -772,7 +773,7 @@
static void static void
sparc64_extract_floating_fields (struct regcache *regcache, struct type *type, sparc64_extract_floating_fields (struct regcache *regcache, struct type *type,
- gdb_byte *valbuf, int bitpos) - gdb_byte *valbuf, int bitpos)
+ gdb_byte *valbuf, LONGEST bitpos) + gdb_byte *valbuf, LONGEST bitpos)
{ {
if (sparc64_floating_p (type)) struct gdbarch *gdbarch = get_regcache_arch (regcache);
{
@@ -747,7 +748,7 @@ @@ -812,7 +813,7 @@
for (i = 0; i < TYPE_NFIELDS (type); i++) for (i = 0; i < TYPE_NFIELDS (type); i++)
{ {
struct type *subtype = check_typedef (TYPE_FIELD_TYPE (type, i)); struct type *subtype = check_typedef (TYPE_FIELD_TYPE (type, i));
@ -1055,7 +1077,7 @@ Index: gdb-7.11.50.20160716/gdb/sparc64-tdep.c
sparc64_extract_floating_fields (regcache, subtype, valbuf, subpos); sparc64_extract_floating_fields (regcache, subtype, valbuf, subpos);
} }
@@ -780,7 +781,7 @@ @@ -845,7 +846,7 @@
for (i = 0; i < nargs; i++) for (i = 0; i < nargs; i++)
{ {
struct type *type = value_type (args[i]); struct type *type = value_type (args[i]);
@ -1064,7 +1086,7 @@ Index: gdb-7.11.50.20160716/gdb/sparc64-tdep.c
if (sparc64_structure_or_union_p (type) if (sparc64_structure_or_union_p (type)
|| (sparc64_complex_floating_p (type) && len == 32)) || (sparc64_complex_floating_p (type) && len == 32))
@@ -880,7 +881,7 @@ @@ -945,7 +946,7 @@
{ {
const gdb_byte *valbuf = value_contents (args[i]); const gdb_byte *valbuf = value_contents (args[i]);
struct type *type = value_type (args[i]); struct type *type = value_type (args[i]);
@ -1073,11 +1095,11 @@ Index: gdb-7.11.50.20160716/gdb/sparc64-tdep.c
int regnum = -1; int regnum = -1;
gdb_byte buf[16]; gdb_byte buf[16];
Index: gdb-7.11.50.20160716/gdb/spu-tdep.c Index: gdb-7.99.90.20170420/gdb/spu-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/spu-tdep.c 2016-07-16 14:35:45.433503064 +0200 --- gdb-7.99.90.20170420.orig/gdb/spu-tdep.c 2017-04-20 23:12:07.940566679 +0200
+++ gdb-7.11.50.20160716/gdb/spu-tdep.c 2016-07-16 14:35:47.529519932 +0200 +++ gdb-7.99.90.20170420/gdb/spu-tdep.c 2017-04-20 23:12:11.251588857 +0200
@@ -1429,7 +1429,7 @@ @@ -1431,7 +1431,7 @@
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));
const gdb_byte *contents = value_contents (arg); const gdb_byte *contents = value_contents (arg);
@ -1086,7 +1108,7 @@ Index: gdb-7.11.50.20160716/gdb/spu-tdep.c
/* If the argument doesn't wholly fit into registers, it and /* If the argument doesn't wholly fit into registers, it and
all subsequent arguments go to the stack. */ all subsequent arguments go to the stack. */
@@ -1461,7 +1461,7 @@ @@ -1463,7 +1463,7 @@
{ {
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));
@ -1095,11 +1117,11 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/tic6x-tdep.c Index: gdb-7.99.90.20170420/gdb/tic6x-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/tic6x-tdep.c 2016-07-16 14:35:45.433503064 +0200 --- gdb-7.99.90.20170420.orig/gdb/tic6x-tdep.c 2017-04-20 23:12:07.940566679 +0200
+++ gdb-7.11.50.20160716/gdb/tic6x-tdep.c 2016-07-16 14:35:47.529519932 +0200 +++ gdb-7.99.90.20170420/gdb/tic6x-tdep.c 2017-04-20 23:12:11.251588857 +0200
@@ -892,7 +892,7 @@ @@ -899,7 +899,7 @@
int argreg = 0; int argreg = 0;
int argnum; int argnum;
int stack_offset = 4; int stack_offset = 4;
@ -1108,7 +1130,7 @@ Index: gdb-7.11.50.20160716/gdb/tic6x-tdep.c
CORE_ADDR func_addr = find_function_addr (function, NULL); CORE_ADDR func_addr = find_function_addr (function, NULL);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
struct type *func_type = value_type (function); struct type *func_type = value_type (function);
@@ -926,7 +926,7 @@ @@ -933,7 +933,7 @@
/* Now make space on the stack for the args. */ /* Now make space on the stack for the args. */
for (argnum = 0; argnum < nargs; argnum++) for (argnum = 0; argnum < nargs; argnum++)
{ {
@ -1117,7 +1139,7 @@ Index: gdb-7.11.50.20160716/gdb/tic6x-tdep.c
if (argnum >= 10 - argreg) if (argnum >= 10 - argreg)
references_offset += len; references_offset += len;
stack_offset += len; stack_offset += len;
@@ -945,7 +945,7 @@ @@ -952,7 +952,7 @@
const gdb_byte *val; const gdb_byte *val;
struct value *arg = args[argnum]; struct value *arg = args[argnum];
struct type *arg_type = check_typedef (value_type (arg)); struct type *arg_type = check_typedef (value_type (arg));
@ -1126,7 +1148,7 @@ Index: gdb-7.11.50.20160716/gdb/tic6x-tdep.c
enum type_code typecode = TYPE_CODE (arg_type); enum type_code typecode = TYPE_CODE (arg_type);
val = value_contents (arg); val = value_contents (arg);
@@ -1105,7 +1105,8 @@ @@ -1112,7 +1112,8 @@
} }
else else
internal_error (__FILE__, __LINE__, internal_error (__FILE__, __LINE__,
@ -1136,11 +1158,11 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/tilegx-tdep.c Index: gdb-7.99.90.20170420/gdb/tilegx-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/tilegx-tdep.c 2016-07-16 14:35:45.434503072 +0200 --- gdb-7.99.90.20170420.orig/gdb/tilegx-tdep.c 2017-04-20 23:12:07.941566686 +0200
+++ gdb-7.11.50.20160716/gdb/tilegx-tdep.c 2016-07-16 14:35:47.530519941 +0200 +++ gdb-7.99.90.20170420/gdb/tilegx-tdep.c 2017-04-20 23:12:11.251588857 +0200
@@ -288,7 +288,7 @@ @@ -289,7 +289,7 @@
CORE_ADDR stack_dest = sp; CORE_ADDR stack_dest = sp;
int argreg = TILEGX_R0_REGNUM; int argreg = TILEGX_R0_REGNUM;
int i, j; int i, j;
@ -1149,10 +1171,10 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/v850-tdep.c Index: gdb-7.99.90.20170420/gdb/v850-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/v850-tdep.c 2016-07-16 14:35:45.434503072 +0200 --- gdb-7.99.90.20170420.orig/gdb/v850-tdep.c 2017-04-20 23:12:07.941566686 +0200
+++ gdb-7.11.50.20160716/gdb/v850-tdep.c 2016-07-16 14:35:47.530519941 +0200 +++ gdb-7.99.90.20170420/gdb/v850-tdep.c 2017-04-20 23:12:11.252588864 +0200
@@ -1019,7 +1019,7 @@ @@ -1019,7 +1019,7 @@
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int argreg; int argreg;
@ -1171,10 +1193,10 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/vax-tdep.c Index: gdb-7.99.90.20170420/gdb/vax-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/vax-tdep.c 2016-07-16 14:35:45.435503080 +0200 --- gdb-7.99.90.20170420.orig/gdb/vax-tdep.c 2017-04-20 23:12:07.942566692 +0200
+++ gdb-7.11.50.20160716/gdb/vax-tdep.c 2016-07-16 14:35:47.530519941 +0200 +++ gdb-7.99.90.20170420/gdb/vax-tdep.c 2017-04-20 23:12:11.252588864 +0200
@@ -111,7 +111,7 @@ @@ -111,7 +111,7 @@
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);
@ -1193,10 +1215,10 @@ Index: gdb-7.11.50.20160716/gdb/vax-tdep.c
sp -= (len + 3) & ~3; sp -= (len + 3) & ~3;
count += (len + 3) / 4; count += (len + 3) / 4;
Index: gdb-7.11.50.20160716/gdb/xstormy16-tdep.c Index: gdb-7.99.90.20170420/gdb/xstormy16-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/xstormy16-tdep.c 2016-07-16 14:35:45.435503080 +0200 --- gdb-7.99.90.20170420.orig/gdb/xstormy16-tdep.c 2017-04-20 23:12:07.942566692 +0200
+++ gdb-7.11.50.20160716/gdb/xstormy16-tdep.c 2016-07-16 14:35:47.530519941 +0200 +++ gdb-7.99.90.20170420/gdb/xstormy16-tdep.c 2017-04-20 23:12:11.252588864 +0200
@@ -233,8 +233,9 @@ @@ -233,8 +233,9 @@
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;
@ -1209,11 +1231,11 @@ Index: gdb-7.11.50.20160716/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.11.50.20160716/gdb/xtensa-tdep.c Index: gdb-7.99.90.20170420/gdb/xtensa-tdep.c
=================================================================== ===================================================================
--- gdb-7.11.50.20160716.orig/gdb/xtensa-tdep.c 2016-07-16 14:35:45.437503096 +0200 --- gdb-7.99.90.20170420.orig/gdb/xtensa-tdep.c 2017-04-20 23:12:07.944566706 +0200
+++ gdb-7.11.50.20160716/gdb/xtensa-tdep.c 2016-07-16 14:35:47.531519949 +0200 +++ gdb-7.99.90.20170420/gdb/xtensa-tdep.c 2017-04-20 23:12:11.253588870 +0200
@@ -1638,8 +1638,7 @@ @@ -1637,8 +1637,7 @@
if (len > (callsize > 8 ? 8 : 16)) if (len > (callsize > 8 ? 8 : 16))
internal_error (__FILE__, __LINE__, internal_error (__FILE__, __LINE__,
@ -1223,7 +1245,7 @@ Index: gdb-7.11.50.20160716/gdb/xtensa-tdep.c
areg = arreg_number (gdbarch, areg = arreg_number (gdbarch,
gdbarch_tdep (gdbarch)->a0_base + 2 + callsize, wb); gdbarch_tdep (gdbarch)->a0_base + 2 + callsize, wb);
@@ -1713,18 +1712,18 @@ @@ -1712,18 +1711,18 @@
{ {
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int i; int i;
@ -1245,7 +1267,7 @@ Index: gdb-7.11.50.20160716/gdb/xtensa-tdep.c
int regno; /* regno if in register. */ int regno; /* regno if in register. */
} u; } u;
}; };
@@ -1748,9 +1747,10 @@ @@ -1747,9 +1746,10 @@
{ {
struct value *arg = args[i]; struct value *arg = args[i];
struct type *arg_type = check_typedef (value_type (arg)); struct type *arg_type = check_typedef (value_type (arg));
@ -1259,7 +1281,7 @@ Index: gdb-7.11.50.20160716/gdb/xtensa-tdep.c
switch (TYPE_CODE (arg_type)) switch (TYPE_CODE (arg_type))
{ {
case TYPE_CODE_INT: case TYPE_CODE_INT:
@@ -1820,8 +1820,8 @@ @@ -1819,8 +1819,8 @@
info->align = TYPE_LENGTH (builtin_type (gdbarch)->builtin_long); info->align = TYPE_LENGTH (builtin_type (gdbarch)->builtin_long);
break; break;
} }
@ -1269,7 +1291,7 @@ Index: gdb-7.11.50.20160716/gdb/xtensa-tdep.c
/* Align size and onstack_size. */ /* Align size and onstack_size. */
size = (size + info->align - 1) & ~(info->align - 1); size = (size + info->align - 1) & ~(info->align - 1);
@@ -1866,7 +1866,7 @@ @@ -1865,7 +1865,7 @@
if (info->onstack) if (info->onstack)
{ {
@ -1278,7 +1300,7 @@ Index: gdb-7.11.50.20160716/gdb/xtensa-tdep.c
CORE_ADDR offset = sp + info->u.offset; CORE_ADDR offset = sp + info->u.offset;
/* Odd-sized structs are aligned to the lower side of a memory /* Odd-sized structs are aligned to the lower side of a memory
@@ -1882,7 +1882,7 @@ @@ -1881,7 +1881,7 @@
} }
else else
{ {

View File

@ -34,7 +34,7 @@ Index: gdb-7.11.50.20160630/gdb/testsuite/gdb.base/longest-types-64bit.exp
+# Test 64-bit file first as it is not compiled so its compilation never fails. +# Test 64-bit file first as it is not compiled so its compilation never fails.
+ +
+set file64bitbz2uu ${srcdir}/${subdir}/${testfile}.bz2.uu +set file64bitbz2uu ${srcdir}/${subdir}/${testfile}.bz2.uu
+set file64bit ${objdir}/${subdir}/${testfile} +set file64bit [standard_output_file ${testfile}]
+ +
+if {[catch "system \"uudecode -o - ${file64bitbz2uu} | bzip2 -dc >${file64bit}\""] != 0} { +if {[catch "system \"uudecode -o - ${file64bitbz2uu} | bzip2 -dc >${file64bit}\""] != 0} {
+ untested "failed uudecode or bzip2" + untested "failed uudecode or bzip2"

View File

@ -26,11 +26,11 @@ dbfd7140bf4c0500d1f5d192be781f83f78f7922
gdb/value.h | 2 + gdb/value.h | 2 +
23 files changed, 1242 insertions(+), 183 deletions(-) 23 files changed, 1242 insertions(+), 183 deletions(-)
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c Index: gdb-7.99.90.20170420/gdb/dwarf2loc.c
index 548e468..560e16f 100644 ===================================================================
--- a/gdb/dwarf2loc.c --- gdb-7.99.90.20170420.orig/gdb/dwarf2loc.c 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/dwarf2loc.c +++ gdb-7.99.90.20170420/gdb/dwarf2loc.c 2017-04-20 22:26:14.356446562 +0200
@@ -2601,11 +2601,14 @@ dwarf2_locexpr_baton_eval (const struct dwarf2_locexpr_baton *dlbaton, @@ -2622,11 +2622,14 @@
/* See dwarf2loc.h. */ /* See dwarf2loc.h. */
int int
@ -47,7 +47,7 @@ index 548e468..560e16f 100644
if (prop == NULL) if (prop == NULL)
return 0; return 0;
@@ -2629,7 +2632,7 @@ dwarf2_evaluate_property (const struct dynamic_prop *prop, @@ -2650,7 +2653,7 @@
*value = value_as_address (val); *value = value_as_address (val);
} }
@ -56,7 +56,7 @@ index 548e468..560e16f 100644
} }
} }
break; break;
@@ -2651,7 +2654,7 @@ dwarf2_evaluate_property (const struct dynamic_prop *prop, @@ -2672,7 +2675,7 @@
if (!value_optimized_out (val)) if (!value_optimized_out (val))
{ {
*value = value_as_address (val); *value = value_as_address (val);
@ -65,7 +65,7 @@ index 548e468..560e16f 100644
} }
} }
} }
@@ -2659,8 +2662,8 @@ dwarf2_evaluate_property (const struct dynamic_prop *prop, @@ -2680,8 +2683,8 @@
case PROP_CONST: case PROP_CONST:
*value = prop->data.const_val; *value = prop->data.const_val;
@ -76,7 +76,7 @@ index 548e468..560e16f 100644
case PROP_ADDR_OFFSET: case PROP_ADDR_OFFSET:
{ {
struct dwarf2_property_baton *baton struct dwarf2_property_baton *baton
@@ -2681,11 +2684,38 @@ dwarf2_evaluate_property (const struct dynamic_prop *prop, @@ -2702,11 +2705,38 @@
val = value_at (baton->offset_info.type, val = value_at (baton->offset_info.type,
pinfo->addr + baton->offset_info.offset); pinfo->addr + baton->offset_info.offset);
*value = value_as_address (val); *value = value_as_address (val);
@ -84,9 +84,8 @@ index 548e468..560e16f 100644
+ rc = 1; + rc = 1;
} }
+ break; + break;
} + }
+
- return 0;
+ if (rc == 1 && is_signed == 1) + if (rc == 1 && is_signed == 1)
+ { + {
+ /* If we have a valid return candidate and it's value is signed, + /* If we have a valid return candidate and it's value is signed,
@ -99,10 +98,11 @@ index 548e468..560e16f 100644
+ /* Check if signed bit is set and sign-extend values. */ + /* Check if signed bit is set and sign-extend values. */
+ if (*value & (neg_mask)) + if (*value & (neg_mask))
+ *value |= (neg_mask ); + *value |= (neg_mask );
+ } }
+ return rc; + return rc;
+} +}
+
- return 0;
+int +int
+dwarf2_evaluate_property (const struct dynamic_prop *prop, +dwarf2_evaluate_property (const struct dynamic_prop *prop,
+ struct frame_info *frame, + struct frame_info *frame,
@ -117,11 +117,11 @@ index 548e468..560e16f 100644
} }
/* See dwarf2loc.h. */ /* See dwarf2loc.h. */
diff --git a/gdb/dwarf2loc.h b/gdb/dwarf2loc.h Index: gdb-7.99.90.20170420/gdb/dwarf2loc.h
index fa83459..da6b9cd 100644 ===================================================================
--- a/gdb/dwarf2loc.h --- gdb-7.99.90.20170420.orig/gdb/dwarf2loc.h 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/dwarf2loc.h +++ gdb-7.99.90.20170420/gdb/dwarf2loc.h 2017-04-20 22:26:14.356446562 +0200
@@ -138,6 +138,12 @@ int dwarf2_evaluate_property (const struct dynamic_prop *prop, @@ -143,6 +143,12 @@
struct property_addr_info *addr_stack, struct property_addr_info *addr_stack,
CORE_ADDR *value); CORE_ADDR *value);
@ -134,11 +134,11 @@ index fa83459..da6b9cd 100644
/* A helper for the compiler interface that compiles a single dynamic /* A helper for the compiler interface that compiles a single dynamic
property to C code. property to C code.
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c Index: gdb-7.99.90.20170420/gdb/dwarf2read.c
index 6658a38..a1ac659 100644 ===================================================================
--- a/gdb/dwarf2read.c --- gdb-7.99.90.20170420.orig/gdb/dwarf2read.c 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/dwarf2read.c +++ gdb-7.99.90.20170420/gdb/dwarf2read.c 2017-04-20 22:27:08.510788562 +0200
@@ -14952,7 +14952,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) @@ -15268,7 +15268,7 @@
struct type *base_type, *orig_base_type; struct type *base_type, *orig_base_type;
struct type *range_type; struct type *range_type;
struct attribute *attr; struct attribute *attr;
@ -147,7 +147,7 @@ index 6658a38..a1ac659 100644
int low_default_is_valid; int low_default_is_valid;
int high_bound_is_count = 0; int high_bound_is_count = 0;
const char *name; const char *name;
@@ -14972,7 +14972,9 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) @@ -15288,7 +15288,9 @@
low.kind = PROP_CONST; low.kind = PROP_CONST;
high.kind = PROP_CONST; high.kind = PROP_CONST;
@ -157,7 +157,7 @@ index 6658a38..a1ac659 100644
/* Set LOW_DEFAULT_IS_VALID if current language and DWARF version allow /* Set LOW_DEFAULT_IS_VALID if current language and DWARF version allow
omitting DW_AT_lower_bound. */ omitting DW_AT_lower_bound. */
@@ -15006,6 +15008,13 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) @@ -15321,6 +15323,13 @@
break; break;
} }
@ -166,12 +166,12 @@ index 6658a38..a1ac659 100644
+ if (!attr_to_dynamic_prop (attr, die, cu, &stride)) + if (!attr_to_dynamic_prop (attr, die, cu, &stride))
+ complaint (&symfile_complaints, _("Missing DW_AT_byte_stride " + complaint (&symfile_complaints, _("Missing DW_AT_byte_stride "
+ "- DIE at 0x%x [in module %s]"), + "- DIE at 0x%x [in module %s]"),
+ die->offset.sect_off, objfile_name (cu->objfile)); + to_underlying (die->sect_off), objfile_name (cu->objfile));
+ +
attr = dwarf2_attr (die, DW_AT_lower_bound, cu); attr = dwarf2_attr (die, DW_AT_lower_bound, cu);
if (attr) if (attr)
attr_to_dynamic_prop (attr, die, cu, &low); attr_to_dynamic_prop (attr, die, cu, &low);
@@ -15082,7 +15091,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) @@ -15397,7 +15406,7 @@
&& !TYPE_UNSIGNED (base_type) && (high.data.const_val & negative_mask)) && !TYPE_UNSIGNED (base_type) && (high.data.const_val & negative_mask))
high.data.const_val |= negative_mask; high.data.const_val |= negative_mask;
@ -180,11 +180,11 @@ index 6658a38..a1ac659 100644
if (high_bound_is_count) if (high_bound_is_count)
TYPE_RANGE_DATA (range_type)->flag_upper_bound_is_count = 1; TYPE_RANGE_DATA (range_type)->flag_upper_bound_is_count = 1;
diff --git a/gdb/eval.c b/gdb/eval.c Index: gdb-7.99.90.20170420/gdb/eval.c
index 00a107c..91d8a03 100644 ===================================================================
--- a/gdb/eval.c --- gdb-7.99.90.20170420.orig/gdb/eval.c 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/eval.c +++ gdb-7.99.90.20170420/gdb/eval.c 2017-04-20 22:26:14.362446600 +0200
@@ -399,29 +399,325 @@ init_array_element (struct value *array, struct value *element, @@ -379,29 +379,325 @@
return index; return index;
} }
@ -209,11 +209,6 @@ index 00a107c..91d8a03 100644
- = (enum range_type) longest_to_int (exp->elts[pc].longconst); - = (enum range_type) longest_to_int (exp->elts[pc].longconst);
- -
- *pos += 3; - *pos += 3;
-
- if (range_type == LOW_BOUND_DEFAULT || range_type == BOTH_BOUND_DEFAULT)
- low_bound = TYPE_LOW_BOUND (range);
- else
- low_bound = value_as_long (evaluate_subexp (NULL_TYPE, exp, pos, noside));
+ struct value *new_array = array; + struct value *new_array = array;
+ struct type *array_type = check_typedef (value_type (new_array)); + struct type *array_type = check_typedef (value_type (new_array));
+ struct type *elt_type; + struct type *elt_type;
@ -268,17 +263,21 @@ index 00a107c..91d8a03 100644
+ { + {
+ struct subscript_store *index = &subscript_array[i]; + struct subscript_store *index = &subscript_array[i];
- if (range_type == HIGH_BOUND_DEFAULT || range_type == BOTH_BOUND_DEFAULT) - if (range_type == LOW_BOUND_DEFAULT || range_type == BOTH_BOUND_DEFAULT)
- high_bound = TYPE_HIGH_BOUND (range); - low_bound = TYPE_LOW_BOUND (range);
- else - else
- high_bound = value_as_long (evaluate_subexp (NULL_TYPE, exp, pos, noside)); - low_bound = value_as_long (evaluate_subexp (NULL_TYPE, exp, pos, noside));
+ /* The user input is a range, with or without lower and upper bound. + /* The user input is a range, with or without lower and upper bound.
+ E.g.: "p arry(2:5)", "p arry( :5)", "p arry( : )", etc. */ + E.g.: "p arry(2:5)", "p arry( :5)", "p arry( : )", etc. */
+ if (exp->elts[*pos].opcode == OP_RANGE) + if (exp->elts[*pos].opcode == OP_RANGE)
+ { + {
+ int pc = (*pos) + 1; + int pc = (*pos) + 1;
+ subscript_range *range; + subscript_range *range;
+
- if (range_type == HIGH_BOUND_DEFAULT || range_type == BOTH_BOUND_DEFAULT)
- high_bound = TYPE_HIGH_BOUND (range);
- else
- high_bound = value_as_long (evaluate_subexp (NULL_TYPE, exp, pos, noside));
+ index->kind = SUBSCRIPT_RANGE; + index->kind = SUBSCRIPT_RANGE;
+ range = &index->U.range; + range = &index->U.range;
+ +
@ -372,7 +371,8 @@ index 00a107c..91d8a03 100644
+ +
+ case SUBSCRIPT_INDEX: + case SUBSCRIPT_INDEX:
+ break; + break;
+
- return value_slice (array, low_bound, high_bound - low_bound + 1);
+ } + }
+ +
+ array_type = TYPE_TARGET_TYPE (array_type); + array_type = TYPE_TARGET_TYPE (array_type);
@ -492,8 +492,7 @@ index 00a107c..91d8a03 100644
+ struct type *range_type, *interim_array_type; + struct type *range_type, *interim_array_type;
+ +
+ int new_length; + int new_length;
+
- return value_slice (array, low_bound, high_bound - low_bound + 1);
+ /* The length of a sub-dimension with all elements between the + /* The length of a sub-dimension with all elements between the
+ bounds plus the start element itself. It may be modified by + bounds plus the start element itself. It may be modified by
+ a user provided stride value. */ + a user provided stride value. */
@ -528,7 +527,7 @@ index 00a107c..91d8a03 100644
} }
@@ -1810,19 +2106,8 @@ evaluate_subexp_standard (struct type *expect_type, @@ -1790,19 +2086,8 @@
switch (code) switch (code)
{ {
case TYPE_CODE_ARRAY: case TYPE_CODE_ARRAY:
@ -549,7 +548,7 @@ index 00a107c..91d8a03 100644
case TYPE_CODE_PTR: case TYPE_CODE_PTR:
case TYPE_CODE_FUNC: case TYPE_CODE_FUNC:
@@ -2223,49 +2508,6 @@ evaluate_subexp_standard (struct type *expect_type, @@ -2203,49 +2488,6 @@
} }
return (arg1); return (arg1);
@ -599,7 +598,7 @@ index 00a107c..91d8a03 100644
case BINOP_LOGICAL_AND: case BINOP_LOGICAL_AND:
arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside); arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
if (noside == EVAL_SKIP) if (noside == EVAL_SKIP)
@@ -3123,6 +3365,9 @@ calc_f77_array_dims (struct type *array_type) @@ -3102,6 +3344,9 @@
int ndimen = 1; int ndimen = 1;
struct type *tmp_type; struct type *tmp_type;
@ -609,11 +608,11 @@ index 00a107c..91d8a03 100644
if ((TYPE_CODE (array_type) != TYPE_CODE_ARRAY)) if ((TYPE_CODE (array_type) != TYPE_CODE_ARRAY))
error (_("Can't get dimensions for a non-array type")); error (_("Can't get dimensions for a non-array type"));
diff --git a/gdb/expprint.c b/gdb/expprint.c Index: gdb-7.99.90.20170420/gdb/expprint.c
index c37ecb0..214d58e 100644 ===================================================================
--- a/gdb/expprint.c --- gdb-7.99.90.20170420.orig/gdb/expprint.c 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/expprint.c +++ gdb-7.99.90.20170420/gdb/expprint.c 2017-04-20 22:26:14.363446607 +0200
@@ -568,12 +568,10 @@ print_subexp_standard (struct expression *exp, int *pos, @@ -568,12 +568,10 @@
*pos += 2; *pos += 2;
fputs_filtered ("RANGE(", stream); fputs_filtered ("RANGE(", stream);
@ -628,7 +627,7 @@ index c37ecb0..214d58e 100644
print_subexp (exp, pos, stream, PREC_ABOVE_COMMA); print_subexp (exp, pos, stream, PREC_ABOVE_COMMA);
fputs_filtered (")", stream); fputs_filtered (")", stream);
return; return;
@@ -1055,16 +1053,16 @@ dump_subexp_body_standard (struct expression *exp, @@ -1055,16 +1053,16 @@
switch (range_type) switch (range_type)
{ {
@ -649,7 +648,7 @@ index c37ecb0..214d58e 100644
fputs_filtered ("Range 'EXP..EXP'", stream); fputs_filtered ("Range 'EXP..EXP'", stream);
break; break;
default: default:
@@ -1072,11 +1070,9 @@ dump_subexp_body_standard (struct expression *exp, @@ -1072,11 +1070,9 @@
break; break;
} }
@ -663,12 +662,12 @@ index c37ecb0..214d58e 100644
elt = dump_subexp (exp, stream, elt); elt = dump_subexp (exp, stream, elt);
} }
break; break;
diff --git a/gdb/expression.h b/gdb/expression.h Index: gdb-7.99.90.20170420/gdb/expression.h
index 4952d84..34ca54b 100644 ===================================================================
--- a/gdb/expression.h --- gdb-7.99.90.20170420.orig/gdb/expression.h 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/expression.h +++ gdb-7.99.90.20170420/gdb/expression.h 2017-04-20 22:26:14.363446607 +0200
@@ -152,17 +152,17 @@ extern void dump_raw_expression (struct expression *, @@ -154,17 +154,17 @@
struct ui_file *, char *); struct ui_file *, const char *);
extern void dump_prefix_expression (struct expression *, struct ui_file *); extern void dump_prefix_expression (struct expression *, struct ui_file *);
-/* In an OP_RANGE expression, either bound could be empty, indicating -/* In an OP_RANGE expression, either bound could be empty, indicating
@ -694,11 +693,11 @@ index 4952d84..34ca54b 100644
}; };
#endif /* !defined (EXPRESSION_H) */ #endif /* !defined (EXPRESSION_H) */
diff --git a/gdb/f-exp.y b/gdb/f-exp.y Index: gdb-7.99.90.20170420/gdb/f-exp.y
index e3148a3..71f1823 100644 ===================================================================
--- a/gdb/f-exp.y --- gdb-7.99.90.20170420.orig/gdb/f-exp.y 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/f-exp.y +++ gdb-7.99.90.20170420/gdb/f-exp.y 2017-04-20 22:26:14.363446607 +0200
@@ -253,31 +253,63 @@ arglist : subrange @@ -254,31 +254,63 @@
arglist : arglist ',' exp %prec ABOVE_COMMA arglist : arglist ',' exp %prec ABOVE_COMMA
{ arglist_len++; } { arglist_len++; }
@ -767,11 +766,11 @@ index e3148a3..71f1823 100644
write_exp_elt_opcode (pstate, OP_RANGE); } write_exp_elt_opcode (pstate, OP_RANGE); }
; ;
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c Index: gdb-7.99.90.20170420/gdb/f-valprint.c
index 08215e2..e6eca6a 100644 ===================================================================
--- a/gdb/f-valprint.c --- gdb-7.99.90.20170420.orig/gdb/f-valprint.c 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/f-valprint.c +++ gdb-7.99.90.20170420/gdb/f-valprint.c 2017-04-20 22:26:14.364446613 +0200
@@ -121,8 +121,14 @@ f77_print_array_1 (int nss, int ndimensions, struct type *type, @@ -121,8 +121,14 @@
if (nss != ndimensions) if (nss != ndimensions)
{ {
@ -787,11 +786,11 @@ index 08215e2..e6eca6a 100644
for (i = lowerbound; for (i = lowerbound;
(i < upperbound + 1 && (*elts) < options->print_max); (i < upperbound + 1 && (*elts) < options->print_max);
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c Index: gdb-7.99.90.20170420/gdb/gdbtypes.c
index ec5c17a..eb83791 100644 ===================================================================
--- a/gdb/gdbtypes.c --- gdb-7.99.90.20170420.orig/gdb/gdbtypes.c 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/gdbtypes.c +++ gdb-7.99.90.20170420/gdb/gdbtypes.c 2017-04-20 22:26:14.365446619 +0200
@@ -836,7 +836,8 @@ allocate_stub_method (struct type *type) @@ -862,7 +862,8 @@
struct type * struct type *
create_range_type (struct type *result_type, struct type *index_type, create_range_type (struct type *result_type, struct type *index_type,
const struct dynamic_prop *low_bound, const struct dynamic_prop *low_bound,
@ -801,7 +800,7 @@ index ec5c17a..eb83791 100644
{ {
if (result_type == NULL) if (result_type == NULL)
result_type = alloc_type_copy (index_type); result_type = alloc_type_copy (index_type);
@@ -851,6 +852,7 @@ create_range_type (struct type *result_type, struct type *index_type, @@ -877,6 +878,7 @@
TYPE_ZALLOC (result_type, sizeof (struct range_bounds)); TYPE_ZALLOC (result_type, sizeof (struct range_bounds));
TYPE_RANGE_DATA (result_type)->low = *low_bound; TYPE_RANGE_DATA (result_type)->low = *low_bound;
TYPE_RANGE_DATA (result_type)->high = *high_bound; TYPE_RANGE_DATA (result_type)->high = *high_bound;
@ -809,7 +808,7 @@ index ec5c17a..eb83791 100644
if (low_bound->kind == PROP_CONST && low_bound->data.const_val >= 0) if (low_bound->kind == PROP_CONST && low_bound->data.const_val >= 0)
TYPE_UNSIGNED (result_type) = 1; TYPE_UNSIGNED (result_type) = 1;
@@ -879,7 +881,7 @@ struct type * @@ -905,7 +907,7 @@
create_static_range_type (struct type *result_type, struct type *index_type, create_static_range_type (struct type *result_type, struct type *index_type,
LONGEST low_bound, LONGEST high_bound) LONGEST low_bound, LONGEST high_bound)
{ {
@ -818,7 +817,7 @@ index ec5c17a..eb83791 100644
low.kind = PROP_CONST; low.kind = PROP_CONST;
low.data.const_val = low_bound; low.data.const_val = low_bound;
@@ -887,7 +889,11 @@ create_static_range_type (struct type *result_type, struct type *index_type, @@ -913,7 +915,11 @@
high.kind = PROP_CONST; high.kind = PROP_CONST;
high.data.const_val = high_bound; high.data.const_val = high_bound;
@ -831,7 +830,7 @@ index ec5c17a..eb83791 100644
return result_type; return result_type;
} }
@@ -1084,16 +1090,20 @@ create_array_type_with_stride (struct type *result_type, @@ -1110,16 +1116,20 @@
&& (!type_not_associated (result_type) && (!type_not_associated (result_type)
&& !type_not_allocated (result_type))) && !type_not_allocated (result_type)))
{ {
@ -853,7 +852,7 @@ index ec5c17a..eb83791 100644
else if (bit_stride > 0) else if (bit_stride > 0)
TYPE_LENGTH (result_type) = TYPE_LENGTH (result_type) =
(bit_stride * (high_bound - low_bound + 1) + 7) / 8; (bit_stride * (high_bound - low_bound + 1) + 7) / 8;
@@ -1888,12 +1898,12 @@ resolve_dynamic_range (struct type *dyn_range_type, @@ -1912,12 +1922,12 @@
CORE_ADDR value; CORE_ADDR value;
struct type *static_range_type, *static_target_type; struct type *static_range_type, *static_target_type;
const struct dynamic_prop *prop; const struct dynamic_prop *prop;
@ -868,7 +867,7 @@ index ec5c17a..eb83791 100644
{ {
low_bound.kind = PROP_CONST; low_bound.kind = PROP_CONST;
low_bound.data.const_val = value; low_bound.data.const_val = value;
@@ -1905,7 +1915,7 @@ resolve_dynamic_range (struct type *dyn_range_type, @@ -1929,7 +1939,7 @@
} }
prop = &TYPE_RANGE_DATA (dyn_range_type)->high; prop = &TYPE_RANGE_DATA (dyn_range_type)->high;
@ -877,7 +876,7 @@ index ec5c17a..eb83791 100644
{ {
high_bound.kind = PROP_CONST; high_bound.kind = PROP_CONST;
high_bound.data.const_val = value; high_bound.data.const_val = value;
@@ -1920,12 +1930,20 @@ resolve_dynamic_range (struct type *dyn_range_type, @@ -1944,12 +1954,20 @@
high_bound.data.const_val = 0; high_bound.data.const_val = 0;
} }
@ -899,11 +898,11 @@ index ec5c17a..eb83791 100644
TYPE_RANGE_DATA (static_range_type)->flag_bound_evaluated = 1; TYPE_RANGE_DATA (static_range_type)->flag_bound_evaluated = 1;
return static_range_type; return static_range_type;
} }
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h Index: gdb-7.99.90.20170420/gdb/gdbtypes.h
index 2dda074..bcc9200 100644 ===================================================================
--- a/gdb/gdbtypes.h --- gdb-7.99.90.20170420.orig/gdb/gdbtypes.h 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/gdbtypes.h +++ gdb-7.99.90.20170420/gdb/gdbtypes.h 2017-04-20 22:26:14.365446619 +0200
@@ -577,6 +577,10 @@ struct range_bounds @@ -551,6 +551,10 @@
struct dynamic_prop high; struct dynamic_prop high;
@ -914,7 +913,7 @@ index 2dda074..bcc9200 100644
/* True if HIGH range bound contains the number of elements in the /* True if HIGH range bound contains the number of elements in the
subrange. This affects how the final hight bound is computed. */ subrange. This affects how the final hight bound is computed. */
@@ -739,7 +743,6 @@ struct main_type @@ -713,7 +717,6 @@
/* * Union member used for range types. */ /* * Union member used for range types. */
struct range_bounds *bounds; struct range_bounds *bounds;
@ -922,7 +921,7 @@ index 2dda074..bcc9200 100644
} flds_bnds; } flds_bnds;
/* * Slot to point to additional language-specific fields of this /* * Slot to point to additional language-specific fields of this
@@ -1255,6 +1258,15 @@ extern void allocate_gnat_aux_type (struct type *); @@ -1228,6 +1231,15 @@
TYPE_RANGE_DATA(range_type)->high.kind TYPE_RANGE_DATA(range_type)->high.kind
#define TYPE_LOW_BOUND_KIND(range_type) \ #define TYPE_LOW_BOUND_KIND(range_type) \
TYPE_RANGE_DATA(range_type)->low.kind TYPE_RANGE_DATA(range_type)->low.kind
@ -938,7 +937,7 @@ index 2dda074..bcc9200 100644
/* Property accessors for the type data location. */ /* Property accessors for the type data location. */
#define TYPE_DATA_LOCATION(thistype) \ #define TYPE_DATA_LOCATION(thistype) \
@@ -1289,6 +1301,9 @@ extern void allocate_gnat_aux_type (struct type *); @@ -1262,6 +1274,9 @@
TYPE_HIGH_BOUND_UNDEFINED(TYPE_INDEX_TYPE(arraytype)) TYPE_HIGH_BOUND_UNDEFINED(TYPE_INDEX_TYPE(arraytype))
#define TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED(arraytype) \ #define TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED(arraytype) \
TYPE_LOW_BOUND_UNDEFINED(TYPE_INDEX_TYPE(arraytype)) TYPE_LOW_BOUND_UNDEFINED(TYPE_INDEX_TYPE(arraytype))
@ -948,7 +947,7 @@ index 2dda074..bcc9200 100644
#define TYPE_ARRAY_UPPER_BOUND_VALUE(arraytype) \ #define TYPE_ARRAY_UPPER_BOUND_VALUE(arraytype) \
(TYPE_HIGH_BOUND(TYPE_INDEX_TYPE((arraytype)))) (TYPE_HIGH_BOUND(TYPE_INDEX_TYPE((arraytype))))
@@ -1783,6 +1798,7 @@ extern struct type *create_array_type_with_stride @@ -1776,6 +1791,7 @@
extern struct type *create_range_type (struct type *, struct type *, extern struct type *create_range_type (struct type *, struct type *,
const struct dynamic_prop *, const struct dynamic_prop *,
@ -956,11 +955,11 @@ index 2dda074..bcc9200 100644
const struct dynamic_prop *); const struct dynamic_prop *);
extern struct type *create_array_type (struct type *, struct type *, extern struct type *create_array_type (struct type *, struct type *,
diff --git a/gdb/parse.c b/gdb/parse.c Index: gdb-7.99.90.20170420/gdb/parse.c
index 2b00708..992af87 100644 ===================================================================
--- a/gdb/parse.c --- gdb-7.99.90.20170420.orig/gdb/parse.c 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/parse.c +++ gdb-7.99.90.20170420/gdb/parse.c 2017-04-20 22:26:14.366446625 +0200
@@ -1006,22 +1006,20 @@ operator_length_standard (const struct expression *expr, int endpos, @@ -1007,22 +1007,20 @@
case OP_RANGE: case OP_RANGE:
oplen = 3; oplen = 3;
@ -994,11 +993,11 @@ index 2b00708..992af87 100644
break; break;
diff --git a/gdb/rust-exp.y b/gdb/rust-exp.y Index: gdb-7.99.90.20170420/gdb/rust-exp.y
index aeb6058..b1b9633 100644 ===================================================================
--- a/gdb/rust-exp.y --- gdb-7.99.90.20170420.orig/gdb/rust-exp.y 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/rust-exp.y +++ gdb-7.99.90.20170420/gdb/rust-exp.y 2017-04-20 22:26:14.366446625 +0200
@@ -2429,23 +2429,17 @@ convert_ast_to_expression (struct parser_state *state, @@ -2409,23 +2409,17 @@
case OP_RANGE: case OP_RANGE:
{ {
@ -1025,11 +1024,11 @@ index aeb6058..b1b9633 100644
} }
write_exp_elt_opcode (state, OP_RANGE); write_exp_elt_opcode (state, OP_RANGE);
write_exp_elt_longcst (state, kind); write_exp_elt_longcst (state, kind);
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c Index: gdb-7.99.90.20170420/gdb/rust-lang.c
index 17b20c6..295002f 100644 ===================================================================
--- a/gdb/rust-lang.c --- gdb-7.99.90.20170420.orig/gdb/rust-lang.c 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/rust-lang.c +++ gdb-7.99.90.20170420/gdb/rust-lang.c 2017-04-20 22:26:14.367446632 +0200
@@ -1241,9 +1241,9 @@ rust_range (struct expression *exp, int *pos, enum noside noside) @@ -1314,9 +1314,9 @@
kind = (enum range_type) longest_to_int (exp->elts[*pos + 1].longconst); kind = (enum range_type) longest_to_int (exp->elts[*pos + 1].longconst);
*pos += 3; *pos += 3;
@ -1041,7 +1040,7 @@ index 17b20c6..295002f 100644
high = evaluate_subexp (NULL_TYPE, exp, pos, noside); high = evaluate_subexp (NULL_TYPE, exp, pos, noside);
if (noside == EVAL_SKIP) if (noside == EVAL_SKIP)
@@ -1332,7 +1332,7 @@ rust_compute_range (struct type *type, struct value *range, @@ -1405,7 +1405,7 @@
*low = 0; *low = 0;
*high = 0; *high = 0;
@ -1050,7 +1049,7 @@ index 17b20c6..295002f 100644
if (TYPE_NFIELDS (type) == 0) if (TYPE_NFIELDS (type) == 0)
return; return;
@@ -1340,15 +1340,14 @@ rust_compute_range (struct type *type, struct value *range, @@ -1413,15 +1413,14 @@
i = 0; i = 0;
if (strcmp (TYPE_FIELD_NAME (type, 0), "start") == 0) if (strcmp (TYPE_FIELD_NAME (type, 0), "start") == 0)
{ {
@ -1068,7 +1067,7 @@ index 17b20c6..295002f 100644
*high = value_as_long (value_field (range, i)); *high = value_as_long (value_field (range, i));
} }
} }
@@ -1363,7 +1362,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside, @@ -1436,7 +1435,7 @@
struct type *rhstype; struct type *rhstype;
LONGEST low, high_bound; LONGEST low, high_bound;
/* Initialized to appease the compiler. */ /* Initialized to appease the compiler. */
@ -1077,7 +1076,7 @@ index 17b20c6..295002f 100644
LONGEST high = 0; LONGEST high = 0;
int want_slice = 0; int want_slice = 0;
@@ -1425,7 +1424,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside, @@ -1498,7 +1497,7 @@
error (_("Cannot subscript non-array type")); error (_("Cannot subscript non-array type"));
if (want_slice if (want_slice
@ -1086,7 +1085,7 @@ index 17b20c6..295002f 100644
low = low_bound; low = low_bound;
if (low < 0) if (low < 0)
error (_("Index less than zero")); error (_("Index less than zero"));
@@ -1443,7 +1442,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside, @@ -1516,7 +1515,7 @@
CORE_ADDR addr; CORE_ADDR addr;
struct value *addrval, *tem; struct value *addrval, *tem;
@ -1095,11 +1094,10 @@ index 17b20c6..295002f 100644
high = high_bound; high = high_bound;
if (high < 0) if (high < 0)
error (_("High index less than zero")); error (_("High index less than zero"));
diff --git a/gdb/testsuite/gdb.fortran/static-arrays.exp b/gdb/testsuite/gdb.fortran/static-arrays.exp Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/static-arrays.exp
new file mode 100644 ===================================================================
index 0000000..cc9ecc0 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
--- /dev/null +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/static-arrays.exp 2017-04-20 22:26:14.367446632 +0200
+++ b/gdb/testsuite/gdb.fortran/static-arrays.exp
@@ -0,0 +1,421 @@ @@ -0,0 +1,421 @@
+# Copyright 2015 Free Software Foundation, Inc. +# Copyright 2015 Free Software Foundation, Inc.
+# +#
@ -1522,11 +1520,10 @@ index 0000000..cc9ecc0
+gdb_test "print ar1\(3:7\) = 42" \ +gdb_test "print ar1\(3:7\) = 42" \
+ "Invalid cast." \ + "Invalid cast." \
+ "Assignment of value to subarray" + "Assignment of value to subarray"
diff --git a/gdb/testsuite/gdb.fortran/static-arrays.f90 b/gdb/testsuite/gdb.fortran/static-arrays.f90 Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/static-arrays.f90
new file mode 100644 ===================================================================
index 0000000..f22fcbe --- /dev/null 1970-01-01 00:00:00.000000000 +0000
--- /dev/null +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/static-arrays.f90 2017-04-20 22:26:14.368446638 +0200
+++ b/gdb/testsuite/gdb.fortran/static-arrays.f90
@@ -0,0 +1,55 @@ @@ -0,0 +1,55 @@
+! Copyright 2015 Free Software Foundation, Inc. +! Copyright 2015 Free Software Foundation, Inc.
+! +!
@ -1583,11 +1580,11 @@ index 0000000..f22fcbe
+program testprog +program testprog
+ call sub + call sub
+end +end
diff --git a/gdb/testsuite/gdb.fortran/vla-ptype.exp b/gdb/testsuite/gdb.fortran/vla-ptype.exp Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-ptype.exp
index 175661f..544d40a 100644 ===================================================================
--- a/gdb/testsuite/gdb.fortran/vla-ptype.exp --- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.fortran/vla-ptype.exp 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/testsuite/gdb.fortran/vla-ptype.exp +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-ptype.exp 2017-04-20 22:26:14.368446638 +0200
@@ -98,3 +98,7 @@ gdb_test "ptype vla2" "type = <not allocated>" "ptype vla2 not allocated" @@ -98,3 +98,7 @@
gdb_test "ptype vla2(5, 45, 20)" \ gdb_test "ptype vla2(5, 45, 20)" \
"no such vector element \\\(vector not allocated\\\)" \ "no such vector element \\\(vector not allocated\\\)" \
"ptype vla2(5, 45, 20) not allocated" "ptype vla2(5, 45, 20) not allocated"
@ -1595,11 +1592,11 @@ index 175661f..544d40a 100644
+gdb_breakpoint [gdb_get_line_number "vla1-neg-bounds"] +gdb_breakpoint [gdb_get_line_number "vla1-neg-bounds"]
+gdb_continue_to_breakpoint "vla1-neg-bounds" +gdb_continue_to_breakpoint "vla1-neg-bounds"
+gdb_test "ptype vla1" "type = $real \\(-2:1,-5:4,-3:-1\\)" "ptype vla1 negative bounds" +gdb_test "ptype vla1" "type = $real \\(-2:1,-5:4,-3:-1\\)" "ptype vla1 negative bounds"
diff --git a/gdb/testsuite/gdb.fortran/vla-sizeof.exp b/gdb/testsuite/gdb.fortran/vla-sizeof.exp Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-sizeof.exp
index 8010c0a..f8258a1 100644 ===================================================================
--- a/gdb/testsuite/gdb.fortran/vla-sizeof.exp --- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.fortran/vla-sizeof.exp 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/testsuite/gdb.fortran/vla-sizeof.exp +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-sizeof.exp 2017-04-20 22:26:14.368446638 +0200
@@ -44,3 +44,7 @@ gdb_test "print sizeof(pvla)" " = 0" "print sizeof non-associated pvla" @@ -44,3 +44,7 @@
gdb_breakpoint [gdb_get_line_number "pvla-associated"] gdb_breakpoint [gdb_get_line_number "pvla-associated"]
gdb_continue_to_breakpoint "pvla-associated" gdb_continue_to_breakpoint "pvla-associated"
gdb_test "print sizeof(pvla)" " = 4000" "print sizeof associated pvla" gdb_test "print sizeof(pvla)" " = 4000" "print sizeof associated pvla"
@ -1607,11 +1604,10 @@ index 8010c0a..f8258a1 100644
+gdb_breakpoint [gdb_get_line_number "vla1-neg-bounds"] +gdb_breakpoint [gdb_get_line_number "vla1-neg-bounds"]
+gdb_continue_to_breakpoint "vla1-neg-bounds" +gdb_continue_to_breakpoint "vla1-neg-bounds"
+gdb_test "print sizeof(vla1)" " = 480" "print sizeof vla1 negative bounds" +gdb_test "print sizeof(vla1)" " = 480" "print sizeof vla1 negative bounds"
diff --git a/gdb/testsuite/gdb.fortran/vla-stride.exp b/gdb/testsuite/gdb.fortran/vla-stride.exp Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-stride.exp
new file mode 100644 ===================================================================
index 0000000..dcf15e5 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
--- /dev/null +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-stride.exp 2017-04-20 22:26:14.368446638 +0200
+++ b/gdb/testsuite/gdb.fortran/vla-stride.exp
@@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
+# Copyright 2016 Free Software Foundation, Inc. +# Copyright 2016 Free Software Foundation, Inc.
+ +
@ -1657,11 +1653,10 @@ index 0000000..dcf15e5
+gdb_continue_to_breakpoint "single-element" +gdb_continue_to_breakpoint "single-element"
+gdb_test "print pvla" " = \\\(5\\\)" "print single-element" +gdb_test "print pvla" " = \\\(5\\\)" "print single-element"
+gdb_test "print pvla(1)" " = 5" "print one single-element" +gdb_test "print pvla(1)" " = 5" "print one single-element"
diff --git a/gdb/testsuite/gdb.fortran/vla-stride.f90 b/gdb/testsuite/gdb.fortran/vla-stride.f90 Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-stride.f90
new file mode 100644 ===================================================================
index 0000000..8d24252 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
--- /dev/null +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-stride.f90 2017-04-20 22:26:14.368446638 +0200
+++ b/gdb/testsuite/gdb.fortran/vla-stride.f90
@@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
+! Copyright 2016 Free Software Foundation, Inc. +! Copyright 2016 Free Software Foundation, Inc.
+! +!
@ -1692,11 +1687,11 @@ index 0000000..8d24252
+ +
+ pvla => null() ! single-element + pvla => null() ! single-element
+end program vla_stride +end program vla_stride
diff --git a/gdb/testsuite/gdb.fortran/vla.f90 b/gdb/testsuite/gdb.fortran/vla.f90 Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla.f90
index c76d24c..ef307b7 100644 ===================================================================
--- a/gdb/testsuite/gdb.fortran/vla.f90 --- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.fortran/vla.f90 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/testsuite/gdb.fortran/vla.f90 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla.f90 2017-04-20 22:26:14.368446638 +0200
@@ -54,4 +54,14 @@ program vla @@ -54,4 +54,14 @@
allocate (vla3 (2,2)) ! vla2-deallocated allocate (vla3 (2,2)) ! vla2-deallocated
vla3(:,:) = 13 vla3(:,:) = 13
@ -1711,35 +1706,34 @@ index c76d24c..ef307b7 100644
+ l = allocated(vla1) + l = allocated(vla1)
+ +
end program vla end program vla
diff --git a/gdb/valarith.c b/gdb/valarith.c Index: gdb-7.99.90.20170420/gdb/valarith.c
index de6fcfd..9753506 100644 ===================================================================
--- a/gdb/valarith.c --- gdb-7.99.90.20170420.orig/gdb/valarith.c 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/valarith.c +++ gdb-7.99.90.20170420/gdb/valarith.c 2017-04-20 22:26:14.369446644 +0200
@@ -193,11 +193,17 @@ value_subscripted_rvalue (struct value *array, LONGEST index, int lowerbound) @@ -193,10 +193,16 @@
struct type *array_type = check_typedef (value_type (array)); struct type *array_type = check_typedef (value_type (array));
struct type *elt_type = check_typedef (TYPE_TARGET_TYPE (array_type)); struct type *elt_type = check_typedef (TYPE_TARGET_TYPE (array_type));
ULONGEST elt_size = type_length_units (elt_type); ULONGEST elt_size = type_length_units (elt_type);
- ULONGEST elt_offs = elt_size * (index - lowerbound); - ULONGEST elt_offs = elt_size * (index - lowerbound);
+ LONGEST elt_offs = index - lowerbound; + LONGEST elt_offs = index - lowerbound;
+ LONGEST elt_stride = TYPE_BYTE_STRIDE (TYPE_INDEX_TYPE (array_type)); + LONGEST elt_stride = TYPE_BYTE_STRIDE (TYPE_INDEX_TYPE (array_type));
struct value *v; +
+ if (elt_stride != 0) + if (elt_stride != 0)
+ elt_offs *= elt_stride; + elt_offs *= elt_stride;
+ else + else
+ elt_offs *= elt_size; + elt_offs *= elt_size;
+
if (index < lowerbound || (!TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (array_type) if (index < lowerbound || (!TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (array_type)
- && elt_offs >= type_length_units (array_type))) - && elt_offs >= type_length_units (array_type)))
+ && abs (elt_offs) >= type_length_units (array_type))) + && abs (elt_offs) >= type_length_units (array_type)))
{ {
if (type_not_associated (array_type)) if (type_not_associated (array_type))
error (_("no such vector element (vector not associated)")); error (_("no such vector element (vector not associated)"));
diff --git a/gdb/valops.c b/gdb/valops.c Index: gdb-7.99.90.20170420/gdb/valops.c
index 40392e8..24ffacb 100644 ===================================================================
--- a/gdb/valops.c --- gdb-7.99.90.20170420.orig/gdb/valops.c 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/valops.c +++ gdb-7.99.90.20170420/gdb/valops.c 2017-04-20 22:26:14.370446651 +0200
@@ -3775,56 +3775,191 @@ value_of_this_silent (const struct language_defn *lang) @@ -3786,55 +3786,194 @@
struct value * struct value *
value_slice (struct value *array, int lowbound, int length) value_slice (struct value *array, int lowbound, int length)
{ {
@ -1789,6 +1783,10 @@ index 40392e8..24ffacb 100644
- range_type = TYPE_INDEX_TYPE (array_type); - range_type = TYPE_INDEX_TYPE (array_type);
- if (get_discrete_bounds (range_type, &lowerbound, &upperbound) < 0) - if (get_discrete_bounds (range_type, &lowerbound, &upperbound) < 0)
- error (_("slice from bad array or bitstring")); - error (_("slice from bad array or bitstring"));
-
- if (lowbound < lowerbound || length < 0
- || lowbound + length - 1 > upperbound)
- error (_("slice out of range"));
+ ary_low_bound = TYPE_LOW_BOUND (TYPE_INDEX_TYPE (array_type)); + ary_low_bound = TYPE_LOW_BOUND (TYPE_INDEX_TYPE (array_type));
+ ary_high_bound = TYPE_HIGH_BOUND (TYPE_INDEX_TYPE (array_type)); + ary_high_bound = TYPE_HIGH_BOUND (TYPE_INDEX_TYPE (array_type));
+ +
@ -1814,10 +1812,7 @@ index 40392e8..24ffacb 100644
+ +
+ elt_size = TYPE_LENGTH (elt_type); + elt_size = TYPE_LENGTH (elt_type);
+ elt_offs = lowbound - ary_low_bound; + elt_offs = lowbound - ary_low_bound;
+
- if (lowbound < lowerbound || length < 0
- || lowbound + length - 1 > upperbound)
- error (_("slice out of range"));
+ elt_offs *= elt_size; + elt_offs *= elt_size;
+ +
+ /* Check for valid user input. In case of Fortran this was already done + /* Check for valid user input. In case of Fortran this was already done
@ -1864,6 +1859,11 @@ index 40392e8..24ffacb 100644
- struct type *element_type = TYPE_TARGET_TYPE (array_type); - struct type *element_type = TYPE_TARGET_TYPE (array_type);
- LONGEST offset - LONGEST offset
- = (lowbound - lowerbound) * TYPE_LENGTH (check_typedef (element_type)); - = (lowbound - lowerbound) * TYPE_LENGTH (check_typedef (element_type));
-
- slice_type = create_array_type ((struct type *) NULL,
- element_type,
- slice_range_type);
- TYPE_CODE (slice_type) = TYPE_CODE (array_type);
+ struct type *element_type; + struct type *element_type;
+ +
+ /* When both CALL_COUNT and STRIDE_LENGTH equal 1, we can use the legacy + /* When both CALL_COUNT and STRIDE_LENGTH equal 1, we can use the legacy
@ -1873,15 +1873,9 @@ index 40392e8..24ffacb 100644
+ element_type = TYPE_TARGET_TYPE (array_type); + element_type = TYPE_TARGET_TYPE (array_type);
+ +
+ slice_type = create_array_type (NULL, element_type, slice_range_type); + slice_type = create_array_type (NULL, element_type, slice_range_type);
+
- slice_type = create_array_type ((struct type *) NULL,
- element_type,
- slice_range_type);
- TYPE_CODE (slice_type) = TYPE_CODE (array_type);
+ TYPE_CODE (slice_type) = TYPE_CODE (array_type); + TYPE_CODE (slice_type) = TYPE_CODE (array_type);
+
- if (VALUE_LVAL (array) == lval_memory && value_lazy (array))
- slice = allocate_value_lazy (slice_type);
+ if (VALUE_LVAL (array) == lval_memory && value_lazy (array)) + if (VALUE_LVAL (array) == lval_memory && value_lazy (array))
+ v = allocate_value_lazy (slice_type); + v = allocate_value_lazy (slice_type);
+ else + else
@ -1893,7 +1887,9 @@ index 40392e8..24ffacb 100644
+ value_embedded_offset (array) + elt_offs, + value_embedded_offset (array) + elt_offs,
+ elt_size * longest_to_int (length)); + elt_size * longest_to_int (length));
+ } + }
+
- if (VALUE_LVAL (array) == lval_memory && value_lazy (array))
- slice = allocate_value_lazy (slice_type);
+ } + }
+ /* With a CALL_COUNT or STRIDE_LENGTH are greater than 1 we are working + /* With a CALL_COUNT or STRIDE_LENGTH are greater than 1 we are working
+ on a range of ranges. So we copy the relevant elements into the + on a range of ranges. So we copy the relevant elements into the
@ -1949,11 +1945,13 @@ index 40392e8..24ffacb 100644
} }
- set_value_component_location (slice, array); - set_value_component_location (slice, array);
- VALUE_FRAME_ID (slice) = VALUE_FRAME_ID (array);
- set_value_offset (slice, value_offset (array) + offset); - set_value_offset (slice, value_offset (array) + offset);
+ set_value_component_location (v, array); + set_value_component_location (v, array);
+ VALUE_REGNUM (v) = VALUE_REGNUM (array); + if (VALUE_LVAL (v) == lval_register)
+ VALUE_FRAME_ID (v) = VALUE_FRAME_ID (array); + {
+ VALUE_REGNUM (v) = VALUE_REGNUM (array);
+ VALUE_NEXT_FRAME_ID (v) = VALUE_NEXT_FRAME_ID (array);
+ }
+ set_value_offset (v, value_offset (array) + elt_offs); + set_value_offset (v, value_offset (array) + elt_offs);
} }
@ -1962,11 +1960,11 @@ index 40392e8..24ffacb 100644
} }
/* Create a value for a FORTRAN complex number. Currently most of the /* Create a value for a FORTRAN complex number. Currently most of the
diff --git a/gdb/value.h b/gdb/value.h Index: gdb-7.99.90.20170420/gdb/value.h
index 0b417b4..9c37713 100644 ===================================================================
--- a/gdb/value.h --- gdb-7.99.90.20170420.orig/gdb/value.h 2017-04-20 22:25:43.973254685 +0200
+++ b/gdb/value.h +++ gdb-7.99.90.20170420/gdb/value.h 2017-04-20 22:26:14.370446651 +0200
@@ -1057,6 +1057,8 @@ extern struct value *varying_to_slice (struct value *); @@ -1106,6 +1106,8 @@
extern struct value *value_slice (struct value *, int, int); extern struct value *value_slice (struct value *, int, int);

View File

@ -23,24 +23,24 @@ git diff --stat -p gdb/master...gdb/users/bheckel/fortran-vla-strings
gdb/valprint.c | 6 -- gdb/valprint.c | 6 --
20 files changed, 827 insertions(+), 110 deletions(-) 20 files changed, 827 insertions(+), 110 deletions(-)
Index: gdb-7.11.90.20160907/gdb/NEWS Index: gdb-7.99.90.20170420/gdb/NEWS
=================================================================== ===================================================================
--- gdb-7.11.90.20160907.orig/gdb/NEWS 2016-09-07 21:52:10.273563060 +0200 --- gdb-7.99.90.20170420.orig/gdb/NEWS 2017-04-20 22:27:47.076032111 +0200
+++ gdb-7.11.90.20160907/gdb/NEWS 2016-09-07 21:53:22.708210416 +0200 +++ gdb-7.99.90.20170420/gdb/NEWS 2017-04-20 22:27:49.946050236 +0200
@@ -1,6 +1,8 @@ @@ -1,6 +1,8 @@
What has changed in GDB? What has changed in GDB?
(Organized release by release) (Organized release by release)
+* Fortran: Support pointers to dynamic types. +* Fortran: Support pointers to dynamic types.
+ +
*** Changes in GDB 7.12 *** Changes since GDB 7.12
* GDB and GDBserver now build with a C++ compiler by default. * GDB now supports access to the PKU register on GNU/Linux. The register is
Index: gdb-7.11.90.20160907/gdb/c-valprint.c Index: gdb-7.99.90.20170420/gdb/c-valprint.c
=================================================================== ===================================================================
--- gdb-7.11.90.20160907.orig/gdb/c-valprint.c 2016-09-07 21:52:10.272563051 +0200 --- gdb-7.99.90.20170420.orig/gdb/c-valprint.c 2017-04-20 22:27:47.077032118 +0200
+++ gdb-7.11.90.20160907/gdb/c-valprint.c 2016-09-07 21:53:22.708210416 +0200 +++ gdb-7.99.90.20170420/gdb/c-valprint.c 2017-04-20 22:27:49.947050243 +0200
@@ -645,6 +645,28 @@ @@ -650,6 +650,28 @@
else else
{ {
/* normal case */ /* normal case */
@ -69,11 +69,11 @@ Index: gdb-7.11.90.20160907/gdb/c-valprint.c
fprintf_filtered (stream, "("); fprintf_filtered (stream, "(");
type_print (value_type (val), "", stream, -1); type_print (value_type (val), "", stream, -1);
fprintf_filtered (stream, ") "); fprintf_filtered (stream, ") ");
Index: gdb-7.11.90.20160907/gdb/dwarf2read.c Index: gdb-7.99.90.20170420/gdb/dwarf2read.c
=================================================================== ===================================================================
--- gdb-7.11.90.20160907.orig/gdb/dwarf2read.c 2016-09-07 21:52:53.700951175 +0200 --- gdb-7.99.90.20170420.orig/gdb/dwarf2read.c 2017-04-20 22:27:47.091032206 +0200
+++ gdb-7.11.90.20160907/gdb/dwarf2read.c 2016-09-07 21:54:02.140562825 +0200 +++ gdb-7.99.90.20170420/gdb/dwarf2read.c 2017-04-20 22:28:28.878296105 +0200
@@ -1764,7 +1764,8 @@ @@ -1872,7 +1872,8 @@
static int attr_to_dynamic_prop (const struct attribute *attr, static int attr_to_dynamic_prop (const struct attribute *attr,
struct die_info *die, struct dwarf2_cu *cu, struct die_info *die, struct dwarf2_cu *cu,
@ -83,7 +83,7 @@ Index: gdb-7.11.90.20160907/gdb/dwarf2read.c
/* memory allocation interface */ /* memory allocation interface */
@@ -11446,7 +11447,7 @@ @@ -11557,7 +11558,7 @@
{ {
newobj->static_link newobj->static_link
= XOBNEW (&objfile->objfile_obstack, struct dynamic_prop); = XOBNEW (&objfile->objfile_obstack, struct dynamic_prop);
@ -92,7 +92,7 @@ Index: gdb-7.11.90.20160907/gdb/dwarf2read.c
} }
cu->list_in_scope = &local_symbols; cu->list_in_scope = &local_symbols;
@@ -14512,29 +14513,94 @@ @@ -14791,29 +14792,94 @@
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
struct type *type, *range_type, *index_type, *char_type; struct type *type, *range_type, *index_type, *char_type;
struct attribute *attr; struct attribute *attr;
@ -198,7 +198,7 @@ Index: gdb-7.11.90.20160907/gdb/dwarf2read.c
char_type = language_string_char_type (cu->language_defn, gdbarch); char_type = language_string_char_type (cu->language_defn, gdbarch);
type = create_string_type (NULL, char_type, range_type); type = create_string_type (NULL, char_type, range_type);
@@ -14864,7 +14930,8 @@ @@ -15163,7 +15229,8 @@
static int static int
attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die, attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
@ -208,7 +208,7 @@ Index: gdb-7.11.90.20160907/gdb/dwarf2read.c
{ {
struct dwarf2_property_baton *baton; struct dwarf2_property_baton *baton;
struct obstack *obstack = &cu->objfile->objfile_obstack; struct obstack *obstack = &cu->objfile->objfile_obstack;
@@ -14874,14 +14941,33 @@ @@ -15173,14 +15240,33 @@
if (attr_form_is_block (attr)) if (attr_form_is_block (attr))
{ {
@ -246,7 +246,7 @@ Index: gdb-7.11.90.20160907/gdb/dwarf2read.c
} }
else if (attr_form_is_ref (attr)) else if (attr_form_is_ref (attr))
{ {
@@ -14914,8 +15000,28 @@ @@ -15213,8 +15299,28 @@
baton = XOBNEW (obstack, struct dwarf2_property_baton); baton = XOBNEW (obstack, struct dwarf2_property_baton);
baton->referenced_type = die_type (target_die, target_cu); baton->referenced_type = die_type (target_die, target_cu);
baton->locexpr.per_cu = cu->per_cu; baton->locexpr.per_cu = cu->per_cu;
@ -277,7 +277,7 @@ Index: gdb-7.11.90.20160907/gdb/dwarf2read.c
prop->data.baton = baton; prop->data.baton = baton;
prop->kind = PROP_LOCEXPR; prop->kind = PROP_LOCEXPR;
gdb_assert (prop->data.baton != NULL); gdb_assert (prop->data.baton != NULL);
@@ -15027,24 +15133,24 @@ @@ -15325,24 +15431,24 @@
attr = dwarf2_attr (die, DW_AT_byte_stride, cu); attr = dwarf2_attr (die, DW_AT_byte_stride, cu);
if (attr) if (attr)
@ -285,7 +285,7 @@ Index: gdb-7.11.90.20160907/gdb/dwarf2read.c
+ if (!attr_to_dynamic_prop (attr, die, cu, &stride, NULL, 0)) + if (!attr_to_dynamic_prop (attr, die, cu, &stride, NULL, 0))
complaint (&symfile_complaints, _("Missing DW_AT_byte_stride " complaint (&symfile_complaints, _("Missing DW_AT_byte_stride "
"- DIE at 0x%x [in module %s]"), "- DIE at 0x%x [in module %s]"),
die->offset.sect_off, objfile_name (cu->objfile)); to_underlying (die->sect_off), objfile_name (cu->objfile));
attr = dwarf2_attr (die, DW_AT_lower_bound, cu); attr = dwarf2_attr (die, DW_AT_lower_bound, cu);
if (attr) if (attr)
@ -294,7 +294,7 @@ Index: gdb-7.11.90.20160907/gdb/dwarf2read.c
else if (!low_default_is_valid) else if (!low_default_is_valid)
complaint (&symfile_complaints, _("Missing DW_AT_lower_bound " complaint (&symfile_complaints, _("Missing DW_AT_lower_bound "
"- DIE at 0x%x [in module %s]"), "- DIE at 0x%x [in module %s]"),
die->offset.sect_off, objfile_name (cu->objfile)); to_underlying (die->sect_off), objfile_name (cu->objfile));
attr = dwarf2_attr (die, DW_AT_upper_bound, cu); attr = dwarf2_attr (die, DW_AT_upper_bound, cu);
- if (!attr_to_dynamic_prop (attr, die, cu, &high)) - if (!attr_to_dynamic_prop (attr, die, cu, &high))
@ -306,7 +306,7 @@ Index: gdb-7.11.90.20160907/gdb/dwarf2read.c
{ {
/* If bounds are constant do the final calculation here. */ /* If bounds are constant do the final calculation here. */
if (low.kind == PROP_CONST && high.kind == PROP_CONST) if (low.kind == PROP_CONST && high.kind == PROP_CONST)
@@ -22416,7 +22522,7 @@ @@ -22967,7 +23073,7 @@
attr = dwarf2_attr (die, DW_AT_allocated, cu); attr = dwarf2_attr (die, DW_AT_allocated, cu);
if (attr_form_is_block (attr)) if (attr_form_is_block (attr))
{ {
@ -315,7 +315,7 @@ Index: gdb-7.11.90.20160907/gdb/dwarf2read.c
add_dyn_prop (DYN_PROP_ALLOCATED, prop, type, objfile); add_dyn_prop (DYN_PROP_ALLOCATED, prop, type, objfile);
} }
else if (attr != NULL) else if (attr != NULL)
@@ -22431,7 +22537,7 @@ @@ -22982,7 +23088,7 @@
attr = dwarf2_attr (die, DW_AT_associated, cu); attr = dwarf2_attr (die, DW_AT_associated, cu);
if (attr_form_is_block (attr)) if (attr_form_is_block (attr))
{ {
@ -324,7 +324,7 @@ Index: gdb-7.11.90.20160907/gdb/dwarf2read.c
add_dyn_prop (DYN_PROP_ASSOCIATED, prop, type, objfile); add_dyn_prop (DYN_PROP_ASSOCIATED, prop, type, objfile);
} }
else if (attr != NULL) else if (attr != NULL)
@@ -22444,7 +22550,7 @@ @@ -22995,7 +23101,7 @@
/* Read DW_AT_data_location and set in type. */ /* Read DW_AT_data_location and set in type. */
attr = dwarf2_attr (die, DW_AT_data_location, cu); attr = dwarf2_attr (die, DW_AT_data_location, cu);
@ -333,10 +333,10 @@ Index: gdb-7.11.90.20160907/gdb/dwarf2read.c
add_dyn_prop (DYN_PROP_DATA_LOCATION, prop, type, objfile); add_dyn_prop (DYN_PROP_DATA_LOCATION, prop, type, objfile);
if (dwarf2_per_objfile->die_type_hash == NULL) if (dwarf2_per_objfile->die_type_hash == NULL)
Index: gdb-7.11.90.20160907/gdb/f-typeprint.c Index: gdb-7.99.90.20170420/gdb/f-typeprint.c
=================================================================== ===================================================================
--- gdb-7.11.90.20160907.orig/gdb/f-typeprint.c 2016-09-07 21:52:10.272563051 +0200 --- gdb-7.99.90.20170420.orig/gdb/f-typeprint.c 2017-04-20 22:27:26.288900835 +0200
+++ gdb-7.11.90.20160907/gdb/f-typeprint.c 2016-09-07 21:53:22.713210461 +0200 +++ gdb-7.99.90.20170420/gdb/f-typeprint.c 2017-04-20 22:27:49.953050280 +0200
@@ -37,7 +37,7 @@ @@ -37,7 +37,7 @@
#endif #endif
@ -346,9 +346,9 @@ Index: gdb-7.11.90.20160907/gdb/f-typeprint.c
void f_type_print_varspec_prefix (struct type *, struct ui_file *, void f_type_print_varspec_prefix (struct type *, struct ui_file *,
int, int); int, int);
@@ -54,18 +54,6 @@ @@ -53,18 +53,6 @@
{
enum type_code code; enum type_code code;
int demangled_args;
- if (type_not_associated (type)) - if (type_not_associated (type))
- { - {
@ -365,16 +365,16 @@ Index: gdb-7.11.90.20160907/gdb/f-typeprint.c
f_type_print_base (type, stream, show, level); f_type_print_base (type, stream, show, level);
code = TYPE_CODE (type); code = TYPE_CODE (type);
if ((varstring != NULL && *varstring != '\0') if ((varstring != NULL && *varstring != '\0')
@@ -87,7 +75,7 @@ @@ -89,7 +77,7 @@
so don't print an additional pair of ()'s. */
demangled_args = varstring[strlen (varstring) - 1] == ')'; demangled_args = (*varstring != '\0'
&& varstring[strlen (varstring) - 1] == ')');
- f_type_print_varspec_suffix (type, stream, show, 0, demangled_args, 0); - f_type_print_varspec_suffix (type, stream, show, 0, demangled_args, 0);
+ f_type_print_varspec_suffix (type, stream, show, 0, demangled_args, 0, 0); + f_type_print_varspec_suffix (type, stream, show, 0, demangled_args, 0, 0);
} }
} }
@@ -157,7 +145,7 @@ @@ -159,7 +147,7 @@
static void static void
f_type_print_varspec_suffix (struct type *type, struct ui_file *stream, f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
int show, int passed_a_ptr, int demangled_args, int show, int passed_a_ptr, int demangled_args,
@ -383,7 +383,7 @@ Index: gdb-7.11.90.20160907/gdb/f-typeprint.c
{ {
int upper_bound, lower_bound; int upper_bound, lower_bound;
@@ -181,34 +169,50 @@ @@ -183,34 +171,50 @@
fprintf_filtered (stream, "("); fprintf_filtered (stream, "(");
if (type_not_associated (type)) if (type_not_associated (type))
@ -460,7 +460,7 @@ Index: gdb-7.11.90.20160907/gdb/f-typeprint.c
if (arrayprint_recurse_level == 1) if (arrayprint_recurse_level == 1)
fprintf_filtered (stream, ")"); fprintf_filtered (stream, ")");
else else
@@ -219,13 +223,14 @@ @@ -221,13 +225,14 @@
case TYPE_CODE_PTR: case TYPE_CODE_PTR:
case TYPE_CODE_REF: case TYPE_CODE_REF:
f_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, 1, 0, f_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, 1, 0,
@ -477,7 +477,7 @@ Index: gdb-7.11.90.20160907/gdb/f-typeprint.c
if (passed_a_ptr) if (passed_a_ptr)
fprintf_filtered (stream, ")"); fprintf_filtered (stream, ")");
@@ -376,7 +381,7 @@ @@ -378,7 +383,7 @@
fputs_filtered (" :: ", stream); fputs_filtered (" :: ", stream);
fputs_filtered (TYPE_FIELD_NAME (type, index), stream); fputs_filtered (TYPE_FIELD_NAME (type, index), stream);
f_type_print_varspec_suffix (TYPE_FIELD_TYPE (type, index), f_type_print_varspec_suffix (TYPE_FIELD_TYPE (type, index),
@ -486,11 +486,11 @@ Index: gdb-7.11.90.20160907/gdb/f-typeprint.c
fputs_filtered ("\n", stream); fputs_filtered ("\n", stream);
} }
fprintfi_filtered (level, stream, "End Type "); fprintfi_filtered (level, stream, "End Type ");
Index: gdb-7.11.90.20160907/gdb/gdbtypes.c Index: gdb-7.99.90.20170420/gdb/gdbtypes.c
=================================================================== ===================================================================
--- gdb-7.11.90.20160907.orig/gdb/gdbtypes.c 2016-09-07 21:52:53.703951202 +0200 --- gdb-7.99.90.20170420.orig/gdb/gdbtypes.c 2017-04-20 22:27:47.093032219 +0200
+++ gdb-7.11.90.20160907/gdb/gdbtypes.c 2016-09-07 21:53:22.714210470 +0200 +++ gdb-7.99.90.20170420/gdb/gdbtypes.c 2017-04-20 22:27:49.954050287 +0200
@@ -1816,7 +1816,8 @@ @@ -1840,7 +1840,8 @@
type = check_typedef (type); type = check_typedef (type);
/* We only want to recognize references at the outermost level. */ /* We only want to recognize references at the outermost level. */
@ -500,7 +500,7 @@ Index: gdb-7.11.90.20160907/gdb/gdbtypes.c
type = check_typedef (TYPE_TARGET_TYPE (type)); type = check_typedef (TYPE_TARGET_TYPE (type));
/* Types that have a dynamic TYPE_DATA_LOCATION are considered /* Types that have a dynamic TYPE_DATA_LOCATION are considered
@@ -1850,6 +1851,7 @@ @@ -1874,6 +1875,7 @@
} }
case TYPE_CODE_ARRAY: case TYPE_CODE_ARRAY:
@ -508,7 +508,7 @@ Index: gdb-7.11.90.20160907/gdb/gdbtypes.c
{ {
gdb_assert (TYPE_NFIELDS (type) == 1); gdb_assert (TYPE_NFIELDS (type) == 1);
@@ -1962,7 +1964,8 @@ @@ -1986,7 +1988,8 @@
struct type *ary_dim; struct type *ary_dim;
struct dynamic_prop *prop; struct dynamic_prop *prop;
@ -518,7 +518,7 @@ Index: gdb-7.11.90.20160907/gdb/gdbtypes.c
type = copy_type (type); type = copy_type (type);
@@ -1987,13 +1990,17 @@ @@ -2011,13 +2014,17 @@
ary_dim = check_typedef (TYPE_TARGET_TYPE (elt_type)); ary_dim = check_typedef (TYPE_TARGET_TYPE (elt_type));
@ -539,7 +539,7 @@ Index: gdb-7.11.90.20160907/gdb/gdbtypes.c
} }
/* Resolve dynamic bounds of members of the union TYPE to static /* Resolve dynamic bounds of members of the union TYPE to static
@@ -2123,6 +2130,28 @@ @@ -2147,6 +2154,28 @@
return resolved_type; return resolved_type;
} }
@ -568,7 +568,7 @@ Index: gdb-7.11.90.20160907/gdb/gdbtypes.c
/* Worker for resolved_dynamic_type. */ /* Worker for resolved_dynamic_type. */
static struct type * static struct type *
@@ -2171,7 +2200,12 @@ @@ -2195,7 +2224,12 @@
break; break;
} }
@ -581,10 +581,10 @@ Index: gdb-7.11.90.20160907/gdb/gdbtypes.c
resolved_type = resolve_dynamic_array (type, addr_stack); resolved_type = resolve_dynamic_array (type, addr_stack);
break; break;
Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.cp/vla-cxx.cc Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.cp/vla-cxx.cc
=================================================================== ===================================================================
--- gdb-7.11.90.20160907.orig/gdb/testsuite/gdb.cp/vla-cxx.cc 2016-09-07 21:52:10.272563051 +0200 --- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.cp/vla-cxx.cc 2017-04-20 22:27:47.094032225 +0200
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.cp/vla-cxx.cc 2016-09-07 21:53:22.714210470 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.cp/vla-cxx.cc 2017-04-20 22:27:49.955050293 +0200
@@ -15,6 +15,10 @@ @@ -15,6 +15,10 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */ along with this program. If not, see <http://www.gnu.org/licenses/>. */
@ -613,10 +613,10 @@ Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.cp/vla-cxx.cc
+ +
return vla[2]; return vla[2];
} }
Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.cp/vla-cxx.exp Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.cp/vla-cxx.exp
=================================================================== ===================================================================
--- gdb-7.11.90.20160907.orig/gdb/testsuite/gdb.cp/vla-cxx.exp 2016-09-07 21:52:10.272563051 +0200 --- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.cp/vla-cxx.exp 2017-04-20 22:27:47.094032225 +0200
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.cp/vla-cxx.exp 2016-09-07 21:53:22.715210479 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.cp/vla-cxx.exp 2017-04-20 22:27:49.955050293 +0200
@@ -23,6 +23,12 @@ @@ -23,6 +23,12 @@
return -1 return -1
} }
@ -637,10 +637,10 @@ Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.cp/vla-cxx.exp
+gdb_test "ptype ptr" "int \\(\\*\\)\\\[3\\\]" +gdb_test "ptype ptr" "int \\(\\*\\)\\\[3\\\]"
+gdb_test "print ptr" "\\(int \\(\\*\\)\\\[3\\\]\\) $hex" +gdb_test "print ptr" "\\(int \\(\\*\\)\\\[3\\\]\\) $hex"
+gdb_test "print *ptr" " = \\{5, 7, 9\\}" +gdb_test "print *ptr" " = \\{5, 7, 9\\}"
Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/pointers.exp Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/pointers.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/pointers.exp 2016-09-07 21:53:22.715210479 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/pointers.exp 2017-04-20 22:27:49.955050293 +0200
@@ -0,0 +1,143 @@ @@ -0,0 +1,143 @@
+# Copyright 2016 Free Software Foundation, Inc. +# Copyright 2016 Free Software Foundation, Inc.
+ +
@ -785,10 +785,10 @@ Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/pointers.exp
+gdb_test "print *((integer*) &inta + 2)" "= 3" "print temporary pointer, array" +gdb_test "print *((integer*) &inta + 2)" "= 3" "print temporary pointer, array"
+gdb_test "print *((integer*) &intvla + 3)" "= 4" "print temporary pointer, allocated vla" +gdb_test "print *((integer*) &intvla + 3)" "= 4" "print temporary pointer, allocated vla"
+gdb_test "print \$pc" "= \\(PTR TO -> \\( void \\(\\)\\(\\)\\)\\) $hex <pointers\\+\\d+>" "Print program counter" +gdb_test "print \$pc" "= \\(PTR TO -> \\( void \\(\\)\\(\\)\\)\\) $hex <pointers\\+\\d+>" "Print program counter"
Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/pointers.f90 Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/pointers.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/pointers.f90 2016-09-07 21:53:22.715210479 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/pointers.f90 2017-04-20 22:27:49.955050293 +0200
@@ -0,0 +1,109 @@ @@ -0,0 +1,109 @@
+! Copyright 2016 Free Software Foundation, Inc. +! Copyright 2016 Free Software Foundation, Inc.
+! +!
@ -899,10 +899,10 @@ Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/pointers.f90
+ intv = intv + 1 ! After value assignment + intv = intv + 1 ! After value assignment
+ +
+end program pointers +end program pointers
Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/print_type.exp Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/print_type.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/print_type.exp 2016-09-07 21:53:22.715210479 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/print_type.exp 2017-04-20 22:27:49.956050299 +0200
@@ -0,0 +1,100 @@ @@ -0,0 +1,100 @@
+# Copyright 2016 Free Software Foundation, Inc. +# Copyright 2016 Free Software Foundation, Inc.
+ +
@ -1004,10 +1004,10 @@ Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/print_type.exp
+ } + }
+} +}
+gdb_test "ptype realp" "type = PTR TO -> \\( $real \\)" +gdb_test "ptype realp" "type = PTR TO -> \\( $real \\)"
Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/vla-ptype.exp Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-ptype.exp
=================================================================== ===================================================================
--- gdb-7.11.90.20160907.orig/gdb/testsuite/gdb.fortran/vla-ptype.exp 2016-09-07 21:52:53.705951220 +0200 --- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.fortran/vla-ptype.exp 2017-04-20 22:27:47.094032225 +0200
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/vla-ptype.exp 2016-09-07 21:53:22.715210479 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-ptype.exp 2017-04-20 22:27:49.956050299 +0200
@@ -32,9 +32,9 @@ @@ -32,9 +32,9 @@
# Check the ptype of various VLA states and pointer to VLA's. # Check the ptype of various VLA states and pointer to VLA's.
gdb_breakpoint [gdb_get_line_number "vla1-init"] gdb_breakpoint [gdb_get_line_number "vla1-init"]
@ -1045,10 +1045,10 @@ Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/vla-ptype.exp
gdb_test "ptype vla2(5, 45, 20)" \ gdb_test "ptype vla2(5, 45, 20)" \
"no such vector element \\\(vector not allocated\\\)" \ "no such vector element \\\(vector not allocated\\\)" \
"ptype vla2(5, 45, 20) not allocated" "ptype vla2(5, 45, 20) not allocated"
Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/vla-strings.exp Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-strings.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/vla-strings.exp 2016-09-07 21:53:22.716210488 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-strings.exp 2017-04-20 22:27:49.956050299 +0200
@@ -0,0 +1,103 @@ @@ -0,0 +1,103 @@
+# Copyright 2016 Free Software Foundation, Inc. +# Copyright 2016 Free Software Foundation, Inc.
+ +
@ -1153,10 +1153,10 @@ Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/vla-strings.exp
+ pass $test + pass $test
+ } + }
+} +}
Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/vla-strings.f90 Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-strings.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/vla-strings.f90 2016-09-07 21:53:22.716210488 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-strings.f90 2017-04-20 22:27:49.956050299 +0200
@@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
+! Copyright 2016 Free Software Foundation, Inc. +! Copyright 2016 Free Software Foundation, Inc.
+! +!
@ -1197,10 +1197,10 @@ Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/vla-strings.f90
+ var_char_p => null() + var_char_p => null()
+ l = associated(var_char_p) ! var_char_p-not-associated + l = associated(var_char_p) ! var_char_p-not-associated
+end program vla_strings +end program vla_strings
Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/vla-type.exp Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-type.exp
=================================================================== ===================================================================
--- gdb-7.11.90.20160907.orig/gdb/testsuite/gdb.fortran/vla-type.exp 2016-09-07 21:52:10.272563051 +0200 --- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.fortran/vla-type.exp 2017-04-20 22:27:47.094032225 +0200
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/vla-type.exp 2016-09-07 21:53:22.716210488 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-type.exp 2017-04-20 22:27:49.956050299 +0200
@@ -132,7 +132,10 @@ @@ -132,7 +132,10 @@
"End Type one" ] "End Type one" ]
@ -1222,17 +1222,17 @@ Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/vla-type.exp
"End Type one" ] \ "End Type one" ] \
"ptype fivedynarr(2)%tone, not allocated" "ptype fivedynarr(2)%tone, not allocated"
Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/vla-value.exp Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-value.exp
=================================================================== ===================================================================
--- gdb-7.11.90.20160907.orig/gdb/testsuite/gdb.fortran/vla-value.exp 2016-09-07 21:52:10.272563051 +0200 --- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.fortran/vla-value.exp 2017-04-20 22:27:47.095032231 +0200
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/vla-value.exp 2016-09-07 21:53:22.716210488 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-value.exp 2017-04-20 22:27:49.957050306 +0200
@@ -14,6 +14,7 @@ @@ -14,6 +14,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
standard_testfile "vla.f90" standard_testfile "vla.f90"
+load_lib "fortran.exp" +load_lib "fortran.exp"
if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
{debug f90 quiet}] } { {debug f90 quiet}] } {
@@ -25,12 +26,15 @@ @@ -25,12 +26,15 @@
return -1 return -1
@ -1278,10 +1278,10 @@ Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/vla-value.exp
"print associated &pvla" "print associated &pvla"
gdb_test "print pvla(3, 6, 9)" " = 42" "print associated pvla(3,6,9)" gdb_test "print pvla(3, 6, 9)" " = 42" "print associated pvla(3,6,9)"
gdb_test "print pvla(1, 3, 8)" " = 1001" "print associated pvla(1,3,8)" gdb_test "print pvla(1, 3, 8)" " = 1001" "print associated pvla(1,3,8)"
Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.mi/mi-var-child-f.exp Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.mi/mi-var-child-f.exp
=================================================================== ===================================================================
--- gdb-7.11.90.20160907.orig/gdb/testsuite/gdb.mi/mi-var-child-f.exp 2016-09-07 21:52:10.272563051 +0200 --- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.mi/mi-var-child-f.exp 2017-04-20 22:27:47.095032231 +0200
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.mi/mi-var-child-f.exp 2016-09-07 21:53:22.716210488 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.mi/mi-var-child-f.exp 2017-04-20 22:27:49.957050306 +0200
@@ -17,6 +17,7 @@ @@ -17,6 +17,7 @@
load_lib mi-support.exp load_lib mi-support.exp
@ -1303,10 +1303,10 @@ Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.mi/mi-var-child-f.exp
set children [list [list "array.-1" "-1" 2 "$int4 \\(2\\)"] \ set children [list [list "array.-1" "-1" 2 "$int4 \\(2\\)"] \
[list "array.0" "0" 2 "$int4 \\(2\\)"] \ [list "array.0" "0" 2 "$int4 \\(2\\)"] \
Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.mi/mi-vla-fortran.exp Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.mi/mi-vla-fortran.exp
=================================================================== ===================================================================
--- gdb-7.11.90.20160907.orig/gdb/testsuite/gdb.mi/mi-vla-fortran.exp 2016-09-07 21:52:10.272563051 +0200 --- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.mi/mi-vla-fortran.exp 2017-04-20 22:27:47.095032231 +0200
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.mi/mi-vla-fortran.exp 2016-09-07 21:53:22.716210488 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.mi/mi-vla-fortran.exp 2017-04-20 22:27:49.957050306 +0200
@@ -17,7 +17,9 @@ @@ -17,7 +17,9 @@
# Array (VLA). # Array (VLA).
@ -1405,11 +1405,11 @@ Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.mi/mi-vla-fortran.exp
"info type variable pvla2_associated" "info type variable pvla2_associated"
mi_gdb_test "592-var-show-format pvla2_associated" \ mi_gdb_test "592-var-show-format pvla2_associated" \
"592\\^done,format=\"natural\"" \ "592\\^done,format=\"natural\"" \
Index: gdb-7.11.90.20160907/gdb/typeprint.c Index: gdb-7.99.90.20170420/gdb/typeprint.c
=================================================================== ===================================================================
--- gdb-7.11.90.20160907.orig/gdb/typeprint.c 2016-09-07 21:52:10.272563051 +0200 --- gdb-7.99.90.20170420.orig/gdb/typeprint.c 2017-04-20 22:27:47.095032231 +0200
+++ gdb-7.11.90.20160907/gdb/typeprint.c 2016-09-07 21:53:22.717210497 +0200 +++ gdb-7.99.90.20170420/gdb/typeprint.c 2017-04-20 22:27:49.957050306 +0200
@@ -485,6 +485,25 @@ @@ -474,6 +474,25 @@
printf_filtered (" */\n"); printf_filtered (" */\n");
} }
@ -1435,11 +1435,11 @@ Index: gdb-7.11.90.20160907/gdb/typeprint.c
LA_PRINT_TYPE (type, "", gdb_stdout, show, 0, &flags); LA_PRINT_TYPE (type, "", gdb_stdout, show, 0, &flags);
printf_filtered ("\n"); printf_filtered ("\n");
Index: gdb-7.11.90.20160907/gdb/valops.c Index: gdb-7.99.90.20170420/gdb/valops.c
=================================================================== ===================================================================
--- gdb-7.11.90.20160907.orig/gdb/valops.c 2016-09-07 21:52:53.707951238 +0200 --- gdb-7.99.90.20170420.orig/gdb/valops.c 2017-04-20 22:27:47.096032238 +0200
+++ gdb-7.11.90.20160907/gdb/valops.c 2016-09-07 21:53:22.717210497 +0200 +++ gdb-7.99.90.20170420/gdb/valops.c 2017-04-20 22:27:49.958050312 +0200
@@ -1562,6 +1562,19 @@ @@ -1574,6 +1574,19 @@
if (TYPE_CODE (base_type) == TYPE_CODE_PTR) if (TYPE_CODE (base_type) == TYPE_CODE_PTR)
{ {
struct type *enc_type; struct type *enc_type;
@ -1459,7 +1459,7 @@ Index: gdb-7.11.90.20160907/gdb/valops.c
/* We may be pointing to something embedded in a larger object. /* We may be pointing to something embedded in a larger object.
Get the real type of the enclosing object. */ Get the real type of the enclosing object. */
@@ -1577,8 +1590,7 @@ @@ -1589,8 +1602,7 @@
else else
/* Retrieve the enclosing object pointed to. */ /* Retrieve the enclosing object pointed to. */
arg2 = value_at_lazy (enc_type, arg2 = value_at_lazy (enc_type,
@ -1469,11 +1469,11 @@ Index: gdb-7.11.90.20160907/gdb/valops.c
enc_type = value_type (arg2); enc_type = value_type (arg2);
return readjust_indirect_value_type (arg2, enc_type, base_type, arg1); return readjust_indirect_value_type (arg2, enc_type, base_type, arg1);
Index: gdb-7.11.90.20160907/gdb/valprint.c Index: gdb-7.99.90.20170420/gdb/valprint.c
=================================================================== ===================================================================
--- gdb-7.11.90.20160907.orig/gdb/valprint.c 2016-09-07 21:52:10.273563060 +0200 --- gdb-7.99.90.20170420.orig/gdb/valprint.c 2017-04-20 22:25:38.224218378 +0200
+++ gdb-7.11.90.20160907/gdb/valprint.c 2016-09-07 21:53:22.718210506 +0200 +++ gdb-7.99.90.20170420/gdb/valprint.c 2017-04-20 22:27:49.959050318 +0200
@@ -1141,12 +1141,6 @@ @@ -1166,12 +1166,6 @@
return 0; return 0;
} }

View File

@ -27,40 +27,43 @@ cannot reproduce it.
Thanks, Thanks,
Jan Jan
--- ./gdb/dwarf2loc.c 2016-08-29 04:01:25.000000000 +0200 Index: gdb-7.99.90.20170420/gdb/dwarf2loc.c
+++ ./gdb/dwarf2loc.c 2016-09-01 11:00:20.258909494 +0200 ===================================================================
@@ -2289,6 +2289,15 @@ const struct dwarf_expr_context_funcs dw --- gdb-7.99.90.20170420.orig/gdb/dwarf2loc.c 2017-04-20 22:28:59.686490666 +0200
dwarf_expr_get_obj_addr +++ gdb-7.99.90.20170420/gdb/dwarf2loc.c 2017-04-20 22:29:13.104575404 +0200
}; @@ -42,6 +42,7 @@
#include <algorithm>
#include <vector>
#include <unordered_set>
+#include <functional>
#include "common/underlying.h"
+static void extern int dwarf_always_disassemble;
+select_frame_cleanup (void *arg) @@ -2366,6 +2367,20 @@
+{ ctx.per_cu = per_cu;
+ struct frame_info *frame = (struct frame_info *) arg; ctx.obj_address = 0;
+
+ if (frame != NULL)
+ select_frame (frame);
+}
+
/* Evaluate a location description, starting at DATA and with length
SIZE, to find the current location of variable of TYPE in the
context of FRAME. BYTE_OFFSET is applied after the contents are
@@ -2318,6 +2327,11 @@ dwarf2_evaluate_loc_desc_full (struct ty
ctx = new_dwarf_expr_context (); +frame_id old_frame_id (get_frame_id (deprecated_safe_get_selected_frame ()));
old_chain = make_cleanup_free_dwarf_expr_context (ctx); +class RestoreCall {
+private:
+ const std::function<void ()> func;
+public:
+ RestoreCall(std::function<void ()> func_):func(func_) {}
+ ~RestoreCall() { func(); }
+} restore_frame([=]() {
+ frame_info *old_frame (frame_find_by_id (old_frame_id));
+ if (old_frame != NULL)
+ select_frame (old_frame);
+});
+if (frame != NULL) select_frame (frame);
+ +
+ make_cleanup (select_frame_cleanup, deprecated_safe_get_selected_frame ()); scoped_value_mark free_values;
+ if (frame != NULL)
+ select_frame (frame);
+
value_chain = make_cleanup_value_free_to_mark (value_mark ());
ctx->gdbarch = get_objfile_arch (objfile); ctx.gdbarch = get_objfile_arch (objfile);
Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90 Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90 2015-05-31 16:14:05.844545344 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90 2017-04-20 22:29:00.673496899 +0200
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
+! Copyright 2010 Free Software Foundation, Inc. +! Copyright 2010 Free Software Foundation, Inc.
+! +!
@ -86,10 +89,10 @@ Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f9
+ real :: dummy + real :: dummy
+ dummy = 1 + dummy = 1
+end subroutine bar +end subroutine bar
Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp 2015-05-31 16:14:05.845545351 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp 2017-04-20 22:29:00.673496899 +0200
@@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
+# Copyright 2010 Free Software Foundation, Inc. +# Copyright 2010 Free Software Foundation, Inc.
+ +
@ -130,10 +133,10 @@ Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp
+} +}
+ +
+gdb_test "bt" {foo \(string='hello'.*} +gdb_test "bt" {foo \(string='hello'.*}
Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90 Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90 2015-05-31 16:14:05.845545351 +0200 +++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90 2017-04-20 22:29:00.673496899 +0200
@@ -0,0 +1,36 @@ @@ -0,0 +1,36 @@
+! Copyright 2010 Free Software Foundation, Inc. +! Copyright 2010 Free Software Foundation, Inc.
+! +!

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Thu Apr 27 14:39:44 UTC 2017 - matz@suse.com
- Rebase to gdb 7.99.90 (prerelease of gdb 8)
- Updated libstdc++ pretty printers to
gdb-libstdc++-v3-python-6.3.1-20170212.tar.bz2.
- Added patches from fedora:
gdb-release-werror.patch
gdb-rhbz1398387-tab-crash-test.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Apr 3 12:48:42 UTC 2017 - rguenther@suse.com Mon Apr 3 12:48:42 UTC 2017 - rguenther@suse.com

268
gdb.spec
View File

@ -24,7 +24,7 @@ License: GPL-3.0+ and GPL-3.0-with-GCC-exception and LGPL-2.1+ and LGPL-3
Group: Development/Tools/Debuggers Group: Development/Tools/Debuggers
Name: gdb Name: gdb
Version: 7.12.1 Version: 7.99.90.20170420
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.
@ -89,139 +89,135 @@ 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-upstream.patch Patch2: gdb-archer.patch
Patch3: gdb-archer.patch Patch3: gdb-vla-intel-fortran-strides.patch
Patch4: gdb-vla-intel-fortran-strides.patch Patch4: gdb-vla-intel-fortran-vla-strings.patch
Patch5: gdb-vla-intel-fortran-vla-strings.patch Patch5: gdb-vla-intel-stringbt-fix.patch
Patch6: gdb-vla-intel-stringbt-fix.patch Patch6: gdb-6.3-rh-dummykfail-20041202.patch
Patch7: gdb-6.3-rh-dummykfail-20041202.patch Patch7: gdb-6.3-ppc64syscall-20040622.patch
Patch8: gdb-6.3-ppc64syscall-20040622.patch Patch8: gdb-6.3-ppc64displaysymbol-20041124.patch
Patch9: gdb-6.3-ppc64displaysymbol-20041124.patch Patch9: gdb-6.3-gstack-20050411.patch
Patch10: gdb-6.3-gstack-20050411.patch Patch10: gdb-6.3-test-pie-20050107.patch
Patch11: gdb-6.3-test-pie-20050107.patch Patch11: gdb-6.3-test-self-20050110.patch
Patch12: gdb-6.3-test-self-20050110.patch Patch12: gdb-6.3-test-dtorfix-20050121.patch
Patch13: gdb-6.3-test-dtorfix-20050121.patch Patch13: gdb-6.3-test-movedir-20050125.patch
Patch14: gdb-6.3-test-movedir-20050125.patch Patch14: gdb-6.3-threaded-watchpoints2-20050225.patch
Patch15: gdb-6.3-threaded-watchpoints2-20050225.patch Patch15: gdb-6.3-inferior-notification-20050721.patch
Patch16: gdb-6.3-inferior-notification-20050721.patch Patch16: gdb-6.3-inheritancetest-20050726.patch
Patch17: gdb-6.3-inheritancetest-20050726.patch Patch17: gdb-6.3-readnever-20050907.patch
Patch18: gdb-6.3-readnever-20050907.patch Patch18: gdb-6.5-bz203661-emit-relocs.patch
Patch19: gdb-6.5-bz203661-emit-relocs.patch Patch19: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
Patch20: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch Patch20: gdb-6.5-sharedlibrary-path.patch
Patch21: gdb-6.5-sharedlibrary-path.patch Patch21: gdb-6.5-BEA-testsuite.patch
Patch22: gdb-6.5-BEA-testsuite.patch Patch22: gdb-6.5-last-address-space-byte-test.patch
Patch23: gdb-6.5-last-address-space-byte-test.patch Patch23: gdb-6.5-readline-long-line-crash-test.patch
Patch24: gdb-6.5-readline-long-line-crash-test.patch Patch24: gdb-6.5-bz216711-clone-is-outermost.patch
Patch25: gdb-6.5-bz216711-clone-is-outermost.patch Patch25: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
Patch26: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch Patch26: gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
Patch27: gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch Patch27: gdb-6.5-bz109921-DW_AT_decl_file-test.patch
Patch28: gdb-6.5-bz109921-DW_AT_decl_file-test.patch Patch28: gdb-6.3-bz140532-ppc-unwinding-test.patch
Patch29: gdb-6.3-bz140532-ppc-unwinding-test.patch Patch29: gdb-6.3-bz202689-exec-from-pthread-test.patch
Patch30: gdb-6.3-bz202689-exec-from-pthread-test.patch Patch30: gdb-6.6-bz230000-power6-disassembly-test.patch
Patch31: gdb-6.6-bz230000-power6-disassembly-test.patch Patch31: gdb-6.6-bz229517-gcore-without-terminal.patch
Patch32: gdb-6.6-bz229517-gcore-without-terminal.patch Patch32: gdb-6.6-bz235197-fork-detach-info.patch
Patch33: gdb-6.6-bz235197-fork-detach-info.patch Patch33: gdb-6.6-testsuite-timeouts.patch
Patch34: gdb-6.6-testsuite-timeouts.patch Patch34: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
Patch35: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch Patch35: gdb-6.6-scheduler_locking-step-is-default.patch
Patch36: gdb-6.6-scheduler_locking-step-is-default.patch Patch36: gdb-6.3-attach-see-vdso-test.patch
Patch37: gdb-6.3-attach-see-vdso-test.patch Patch37: gdb-6.5-bz243845-stale-testing-zombie-test.patch
Patch38: gdb-6.5-bz243845-stale-testing-zombie-test.patch Patch38: gdb-6.6-buildid-locate.patch
Patch39: gdb-6.6-buildid-locate.patch Patch39: gdb-6.6-buildid-locate-solib-missing-ids.patch
Patch40: gdb-6.6-buildid-locate-solib-missing-ids.patch Patch40: gdb-6.6-buildid-locate-rpm.patch
Patch41: gdb-6.6-buildid-locate-rpm.patch Patch41: gdb-6.7-charsign-test.patch
Patch42: gdb-6.7-charsign-test.patch Patch42: gdb-6.7-ppc-clobbered-registers-O2-test.patch
Patch43: gdb-6.7-ppc-clobbered-registers-O2-test.patch Patch43: gdb-6.7-testsuite-stable-results.patch
Patch44: gdb-6.7-testsuite-stable-results.patch Patch44: gdb-6.5-ia64-libunwind-leak-test.patch
Patch45: gdb-6.5-ia64-libunwind-leak-test.patch Patch45: gdb-6.5-missed-trap-on-step-test.patch
Patch46: gdb-6.5-missed-trap-on-step-test.patch Patch46: gdb-6.5-gcore-buffer-limit-test.patch
Patch47: gdb-6.7-bz426600-DW_TAG_interface_type-test.patch Patch47: gdb-6.6-threads-static-test.patch
Patch48: gdb-6.5-gcore-buffer-limit-test.patch Patch48: gdb-6.3-mapping-zero-inode-test.patch
Patch49: gdb-6.6-threads-static-test.patch Patch49: gdb-6.3-focus-cmd-prev-test.patch
Patch50: gdb-6.3-mapping-zero-inode-test.patch Patch50: gdb-6.8-bz442765-threaded-exec-test.patch
Patch51: gdb-6.3-focus-cmd-prev-test.patch Patch51: gdb-6.8-sparc64-silence-memcpy-check.patch
Patch52: gdb-6.8-bz442765-threaded-exec-test.patch Patch52: gdb-6.5-section-num-fixup-test.patch
Patch53: gdb-6.8-sparc64-silence-memcpy-check.patch Patch53: gdb-6.8-bz436037-reg-no-longer-active.patch
Patch54: gdb-6.5-section-num-fixup-test.patch Patch54: gdb-6.8-watchpoint-conditionals-test.patch
Patch55: gdb-6.8-bz436037-reg-no-longer-active.patch Patch55: gdb-6.8-bz466901-backtrace-full-prelinked.patch
Patch56: gdb-6.8-watchpoint-conditionals-test.patch Patch56: gdb-simultaneous-step-resume-breakpoint-test.patch
Patch57: gdb-6.8-bz466901-backtrace-full-prelinked.patch Patch57: gdb-core-open-vdso-warning.patch
Patch58: gdb-simultaneous-step-resume-breakpoint-test.patch Patch58: gdb-x86_64-i386-syscall-restart.patch
Patch59: gdb-core-open-vdso-warning.patch Patch59: gdb-bz533176-fortran-omp-step.patch
Patch60: gdb-x86_64-i386-syscall-restart.patch Patch60: gdb-follow-child-stale-parent.patch
Patch61: gdb-bz533176-fortran-omp-step.patch Patch61: gdb-ccache-workaround.patch
Patch62: gdb-follow-child-stale-parent.patch Patch62: gdb-archer-pie-addons.patch
Patch63: gdb-ccache-workaround.patch Patch63: gdb-archer-pie-addons-keep-disabled.patch
Patch64: gdb-archer-pie-addons.patch Patch64: gdb-lineno-makeup-test.patch
Patch65: gdb-archer-pie-addons-keep-disabled.patch Patch65: gdb-ppc-power7-test.patch
Patch66: gdb-lineno-makeup-test.patch Patch66: gdb-bz541866-rwatch-before-run.patch
Patch67: gdb-ppc-power7-test.patch Patch67: gdb-moribund-utrace-workaround.patch
Patch68: gdb-bz541866-rwatch-before-run.patch Patch68: gdb-archer-next-over-throw-cxx-exec.patch
Patch69: gdb-moribund-utrace-workaround.patch Patch69: gdb-bz601887-dwarf4-rh-test.patch
Patch70: gdb-archer-next-over-throw-cxx-exec.patch Patch70: gdb-6.6-buildid-locate-core-as-arg.patch
Patch71: gdb-bz601887-dwarf4-rh-test.patch Patch71: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
Patch72: gdb-6.6-buildid-locate-core-as-arg.patch Patch72: gdb-test-bt-cfi-without-die.patch
Patch73: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch Patch73: gdb-gdb-add-index-script.patch
Patch74: gdb-test-bt-cfi-without-die.patch Patch74: gdb-bz568248-oom-is-error.patch
Patch75: gdb-gdb-add-index-script.patch Patch75: gdb-bz634108-solib_address.patch
Patch76: gdb-bz568248-oom-is-error.patch Patch76: gdb-test-pid0-core.patch
Patch77: gdb-bz634108-solib_address.patch Patch77: gdb-test-dw2-aranges.patch
Patch78: gdb-test-pid0-core.patch Patch78: gdb-test-expr-cumulative-archer.patch
Patch79: gdb-test-dw2-aranges.patch Patch79: gdb-physname-pr11734-test.patch
Patch80: gdb-test-expr-cumulative-archer.patch Patch80: gdb-physname-pr12273-test.patch
Patch81: gdb-physname-pr11734-test.patch Patch81: gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
Patch82: gdb-physname-pr12273-test.patch Patch82: gdb-test-ivy-bridge.patch
Patch83: gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch Patch83: gdb-glibc-vdso-workaround.patch
Patch84: gdb-test-ivy-bridge.patch Patch84: gdb-runtest-pie-override.patch
Patch85: gdb-glibc-vdso-workaround.patch Patch85: gdb-attach-fail-reasons-5of5.patch
Patch86: gdb-runtest-pie-override.patch Patch86: gdb-stale-frame_info.patch
Patch87: gdb-attach-fail-reasons-5of5.patch Patch87: gdb-glibc-strstr-workaround.patch
Patch88: gdb-stale-frame_info.patch Patch88: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
Patch89: gdb-glibc-strstr-workaround.patch Patch89: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
Patch90: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch Patch90: gdb-rhbz795424-bitpos-20of25.patch
Patch91: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch Patch91: gdb-rhbz795424-bitpos-21of25.patch
Patch92: gdb-rhbz795424-bitpos-20of25.patch Patch92: gdb-rhbz795424-bitpos-22of25.patch
Patch93: gdb-rhbz795424-bitpos-21of25.patch Patch93: gdb-rhbz795424-bitpos-23of25.patch
Patch94: gdb-rhbz795424-bitpos-22of25.patch Patch94: gdb-rhbz795424-bitpos-25of25.patch
Patch95: gdb-rhbz795424-bitpos-23of25.patch Patch95: gdb-rhbz795424-bitpos-25of25-test.patch
Patch96: gdb-rhbz795424-bitpos-25of25.patch Patch96: gdb-rhbz795424-bitpos-lazyvalue.patch
Patch97: gdb-rhbz795424-bitpos-25of25-test.patch Patch97: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
Patch98: gdb-rhbz795424-bitpos-lazyvalue.patch Patch98: gdb-gnat-dwarf-crash-3of3.patch
Patch99: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch Patch99: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
Patch100: gdb-gnat-dwarf-crash-3of3.patch Patch100: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
Patch101: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch Patch101: gdb-archer-vla-tests.patch
Patch102: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch Patch102: gdb-vla-intel-tests.patch
Patch103: gdb-archer-vla-tests.patch Patch103: gdb-btrobust.patch
Patch104: gdb-vla-intel-tests.patch Patch104: gdb-fortran-frame-string.patch
Patch105: gdb-btrobust.patch Patch105: gdb-python-gil.patch
Patch106: gdb-fortran-frame-string.patch Patch106: gdb-rhbz1156192-recursive-dlopen-test.patch
Patch107: gdb-python-gil.patch Patch107: gdb-jit-reader-multilib.patch
Patch108: gdb-rhbz1156192-recursive-dlopen-test.patch Patch108: gdb-rhbz1149205-catch-syscall-after-fork-test.patch
Patch109: gdb-jit-reader-multilib.patch Patch109: gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch
Patch110: gdb-rhbz1149205-catch-syscall-after-fork-test.patch Patch110: gdb-rhbz1350436-type-printers-error.patch
Patch111: gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch Patch111: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
Patch112: gdb-rhbz1350436-type-printers-error.patch Patch112: gdb-bz1219747-attach-kills.patch
Patch113: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch Patch113: gdb-fedora-libncursesw.patch
Patch114: gdb-bz1219747-attach-kills.patch Patch114: gdb-opcodes-clflushopt-test.patch
Patch115: gdb-fedora-libncursesw.patch Patch115: gdb-dts-rhel6-python-compat.patch
Patch116: gdb-opcodes-clflushopt-test.patch Patch116: gdb-6.6-buildid-locate-rpm-scl.patch
Patch117: gdb-dts-rhel6-python-compat.patch Patch117: gdb-readline62-ask-more-rh.patch
Patch118: gdb-6.6-buildid-locate-rpm-scl.patch Patch118: gdb-6.8-attach-signalled-detach-stopped.patch
Patch119: gdb-readline62-ask-more-rh.patch Patch119: gdb-6.8-quit-never-aborts.patch
Patch120: gdb-6.8-attach-signalled-detach-stopped.patch Patch120: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch
Patch121: gdb-6.8-quit-never-aborts.patch Patch121: gdb-container-rh-pkg.patch
Patch122: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch Patch122: gdb-rhbz1325795-framefilters-test.patch
Patch123: gdb-container-rh-pkg.patch Patch123: gdb-linux_perf-bundle.patch
Patch124: gdb-rhbz1325795-framefilters-test.patch Patch124: gdb-tls-1of2.patch
Patch125: gdb-linux_perf-bundle.patch Patch125: gdb-tls-2of2.patch
Patch126: gdb-bison-old.patch Patch126: gdb-libexec-add-index.patch
Patch127: gdb-testsuite-casts.patch Patch127: gdb-add-index-chmod.patch
Patch128: gdb-testsuite-m-static.patch Patch128: gdb-rhbz1398387-tab-crash-test.patch
Patch129: gdb-tls-1of2.patch Patch129: gdb-release-werror.patch
Patch130: gdb-tls-2of2.patch Patch130: gdb-testsuite-readline63-sigint.patch
Patch131: gdb-testsuite-morestack-gold.patch
Patch132: gdb-libexec-add-index.patch
Patch133: gdb-add-index-chmod.patch
Patch134: gdb-testsuite-readline63-sigint.patch
#Fedora Packages end #Fedora Packages end
# Upstream patch to fix gcc -Werror # Upstream patch to fix gcc -Werror
@ -517,10 +513,6 @@ find -name "*.info*"|xargs rm -f
%patch128 -p1 %patch128 -p1
%patch129 -p1 %patch129 -p1
%patch130 -p1 %patch130 -p1
%patch131 -p1
%patch132 -p1
%patch133 -p1
%patch134 -p1
#Fedora patching end #Fedora patching end
%patch1002 -p1 %patch1002 -p1