- 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:
parent
a77728baf0
commit
50918c72d5
@ -256,8 +256,8 @@ diff -u -ruNp gdb-6.3-unpatched/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.exp
|
||||
+ fail "powerpc arch test"
|
||||
+ return
|
||||
+}
|
||||
+set objfile2 ${objdir}/${subdir}/${testfile}-asm.o
|
||||
+set binfile ${objdir}/${subdir}/${testfile}
|
||||
+set objfile2 [standard_output_file ${testfile}-asm.o]
|
||||
+set binfile [standard_output_file ${testfile}]
|
||||
+
|
||||
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile1} ${srcdir}/${subdir}/${srcfile2}" ${binfile} executable $flags] != ""} {
|
||||
+ return -1
|
||||
|
@ -1,6 +1,8 @@
|
||||
--- /dev/null 2008-03-23 13:41:46.072650180 +0100
|
||||
+++ gdb-6.3/gdb/testsuite/gdb.base/focus-cmd-prev.exp 2008-03-23 23:46:45.000000000 +0100
|
||||
@@ -0,0 +1,25 @@
|
||||
Index: gdb-7.12.50.20170226/gdb/testsuite/gdb.base/focus-cmd-prev.exp
|
||||
===================================================================
|
||||
--- /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.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
@ -24,5 +26,20 @@
|
||||
+gdb_exit
|
||||
+gdb_start
|
||||
+
|
||||
+gdb_test "focus cmd"
|
||||
+gdb_test "focus prev"
|
||||
+# Do not use gdb_test or \r\n there since:
|
||||
+# 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
|
||||
+ }
|
||||
+}
|
||||
|
@ -62,10 +62,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.exp
|
||||
+}
|
||||
+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"
|
||||
+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 $" {
|
||||
+ 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"
|
||||
+
|
||||
+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. $" {
|
||||
+ # gdb_load may connect us to a gdbserver.
|
||||
+ send_gdb "y\n"
|
||||
|
@ -11,11 +11,11 @@
|
||||
|
||||
* 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.10.50.20151022/gdb/doc/gdb.texinfo 2015-10-22 22:28:22.042554142 +0200
|
||||
@@ -1032,6 +1032,12 @@ Read each symbol file's entire symbol ta
|
||||
--- gdb-7.99.90.20170420.orig/gdb/doc/gdb.texinfo 2017-04-20 22:29:39.179740076 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/doc/gdb.texinfo 2017-04-20 22:29:40.924751096 +0200
|
||||
@@ -1037,6 +1037,12 @@
|
||||
the default, which is to read it incrementally as it is needed.
|
||||
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
|
||||
|
||||
@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.10.50.20151022/gdb/main.c 2015-10-22 22:28:22.042554142 +0200
|
||||
@@ -604,6 +604,7 @@ captured_main (void *data)
|
||||
--- gdb-7.99.90.20170420.orig/gdb/main.c 2017-04-20 22:29:39.182740095 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/main.c 2017-04-20 22:29:40.925751103 +0200
|
||||
@@ -615,6 +615,7 @@
|
||||
{"tui", no_argument, 0, OPT_TUI},
|
||||
{"dbx", no_argument, &dbx_commands, 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},
|
||||
{"quiet", 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\
|
||||
--symbols=SYMFILE Read symbols from SYMFILE.\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\
|
||||
"), stream);
|
||||
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.10.50.20151022/gdb/symfile.c 2015-10-22 22:28:22.043554148 +0200
|
||||
@@ -80,6 +80,7 @@ static void clear_symtab_users_cleanup (
|
||||
--- gdb-7.99.90.20170420.orig/gdb/symfile.c 2017-04-20 22:29:39.183740101 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/symfile.c 2017-04-20 22:29:40.926751109 +0200
|
||||
@@ -79,6 +79,7 @@
|
||||
|
||||
/* Global variables owned by this file. */
|
||||
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. */
|
||||
|
||||
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.10.50.20151022/gdb/dwarf2read.c 2015-10-22 22:29:17.664881642 +0200
|
||||
@@ -70,6 +70,7 @@
|
||||
#include "filestuff.h"
|
||||
#include "build-id.h"
|
||||
#include "namespace.h"
|
||||
--- gdb-7.99.90.20170420.orig/gdb/dwarf2read.c 2017-04-20 22:29:39.190740145 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/dwarf2read.c 2017-04-20 22:29:57.973858766 +0200
|
||||
@@ -73,6 +73,7 @@
|
||||
#include "common/function-view.h"
|
||||
#include "common/gdb_optional.h"
|
||||
#include "common/underlying.h"
|
||||
+#include "top.h"
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <sys/types.h>
|
||||
@@ -2059,7 +2060,8 @@ dwarf2_has_info (struct objfile *objfile
|
||||
@@ -2208,7 +2209,8 @@
|
||||
(void *) names);
|
||||
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->abbrev.is_virtual
|
||||
&& 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.10.50.20151022/gdb/top.h 2015-10-22 22:28:22.047554171 +0200
|
||||
@@ -74,6 +74,7 @@ extern int gdb_in_secondary_prompt_p (vo
|
||||
--- gdb-7.99.90.20170420.orig/gdb/top.h 2017-04-20 22:29:39.191740152 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/top.h 2017-04-20 22:29:40.932751147 +0200
|
||||
@@ -269,6 +269,7 @@
|
||||
|
||||
/* From random places. */
|
||||
extern int readnow_symbol_files;
|
||||
|
@ -3,11 +3,11 @@
|
||||
* gdb.gdb/selftest.exp: Add matching on specific Red Hat only version
|
||||
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.1.90.20100711/gdb/testsuite/gdb.gdb/selftest.exp 2010-07-12 09:59:42.000000000 +0200
|
||||
@@ -342,6 +342,9 @@ proc test_with_self { executable } {
|
||||
--- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.gdb/selftest.exp 2017-02-07 19:47:06.472874620 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.gdb/selftest.exp 2017-02-07 19:48:12.593380575 +0100
|
||||
@@ -53,6 +53,9 @@
|
||||
-re ".\[0-9\]+ = +.+ +0x.*\[0-9.\]+.*$gdb_prompt $" {
|
||||
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
|
||||
|
@ -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
|
||||
<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.10.90.20160211/gdb/printcmd.c 2016-02-15 23:33:31.068968762 +0100
|
||||
@@ -1003,6 +1003,10 @@
|
||||
--- gdb-7.12.50.20170207.orig/gdb/printcmd.c 2017-02-07 21:06:20.196593884 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/printcmd.c 2017-02-07 21:07:10.230973906 +0100
|
||||
@@ -1258,6 +1258,10 @@
|
||||
|
||||
if (exp && *exp)
|
||||
{
|
||||
@ -46,13 +46,13 @@ Index: gdb-7.10.90.20160211/gdb/printcmd.c
|
||||
+ function descriptors. */
|
||||
+ if (target_has_execution && strcmp (exp, "errno") == 0)
|
||||
+ exp = "*(*(int *(*)(void)) __errno_location) ()";
|
||||
expr = parse_expression (exp);
|
||||
make_cleanup (free_current_contents, &expr);
|
||||
val = evaluate_expression (expr);
|
||||
Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-errno.c
|
||||
expression_up expr = parse_expression (exp);
|
||||
val = evaluate_expression (expr.get ());
|
||||
}
|
||||
Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno.c
|
||||
===================================================================
|
||||
--- /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 @@
|
||||
+/* 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 */
|
||||
+}
|
||||
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
|
||||
+++ 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 @@
|
||||
+# 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.
|
||||
+# 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
|
||||
+++ 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 @@
|
||||
+/* 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 */
|
||||
+}
|
||||
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
|
||||
+++ 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 @@
|
||||
+# Copyright 2007 Free Software Foundation, Inc.
|
||||
+
|
||||
|
@ -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
|
||||
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.9.50.20150531/gdb/exec.c 2015-05-31 20:07:35.092878685 +0200
|
||||
--- gdb-7.12.50.20170226.orig/gdb/exec.c 2017-02-27 22:18:00.945026211 +0100
|
||||
+++ gdb-7.12.50.20170226/gdb/exec.c 2017-02-27 22:18:08.111076350 +0100
|
||||
@@ -35,6 +35,7 @@
|
||||
#include "progspace.h"
|
||||
#include "gdb_bfd.h"
|
||||
@ -70,7 +70,7 @@ Index: gdb-7.9.50.20150531/gdb/exec.c
|
||||
|
||||
#include <fcntl.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))
|
||||
{
|
||||
@ -101,13 +101,13 @@ Index: gdb-7.9.50.20150531/gdb/exec.c
|
||||
}
|
||||
|
||||
if (build_section_table (exec_bfd, §ions, §ions_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.9.50.20150531/gdb/main.c 2015-05-31 20:10:05.095845935 +0200
|
||||
@@ -435,6 +435,37 @@ typedef struct cmdarg {
|
||||
/* Define type VEC (cmdarg_s). */
|
||||
DEF_VEC_O (cmdarg_s);
|
||||
--- gdb-7.12.50.20170226.orig/gdb/main.c 2017-02-27 22:18:00.945026211 +0100
|
||||
+++ gdb-7.12.50.20170226/gdb/main.c 2017-02-27 22:18:08.112076357 +0100
|
||||
@@ -459,6 +459,37 @@
|
||||
char *string;
|
||||
};
|
||||
|
||||
+/* 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
|
||||
@ -140,10 +140,10 @@ Index: gdb-7.9.50.20150531/gdb/main.c
|
||||
+ END_CATCH
|
||||
+}
|
||||
+
|
||||
static int
|
||||
captured_main (void *data)
|
||||
static void
|
||||
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];
|
||||
execarg = argv[optind];
|
||||
@ -152,7 +152,7 @@ Index: gdb-7.9.50.20150531/gdb/main.c
|
||||
optind++;
|
||||
}
|
||||
|
||||
@@ -1080,11 +1113,25 @@ captured_main (void *data)
|
||||
@@ -1060,11 +1093,25 @@
|
||||
&& symarg != NULL
|
||||
&& strcmp (execarg, symarg) == 0)
|
||||
{
|
||||
@ -178,14 +178,14 @@ Index: gdb-7.9.50.20150531/gdb/main.c
|
||||
+ as a core file. */
|
||||
+ if (catch_command_errors_const (func, execarg, !batch_flag)
|
||||
+ && core_bfd == NULL)
|
||||
catch_command_errors_const (symbol_file_add_main, symarg,
|
||||
catch_command_errors_const (symbol_file_add_main_adapter, symarg,
|
||||
!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.9.50.20150531/gdb/common/common-exceptions.h 2015-05-31 20:07:35.093878692 +0200
|
||||
@@ -105,6 +105,9 @@ enum errors {
|
||||
--- gdb-7.12.50.20170226.orig/gdb/common/common-exceptions.h 2017-02-27 22:18:00.946026218 +0100
|
||||
+++ gdb-7.12.50.20170226/gdb/common/common-exceptions.h 2017-02-27 22:18:08.112076357 +0100
|
||||
@@ -106,6 +106,9 @@
|
||||
"_ERROR" is appended to the name. */
|
||||
MAX_COMPLETIONS_REACHED_ERROR,
|
||||
|
||||
|
@ -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
|
||||
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
|
||||
+++ 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 @@
|
||||
+# 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.
|
||||
+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.10.90.20160211/gdb/build-id.c 2016-02-15 23:30:55.778866186 +0100
|
||||
--- gdb-7.12.50.20170207.orig/gdb/build-id.c 2017-02-26 19:14:51.943562799 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/build-id.c 2017-02-26 19:14:58.492609659 +0100
|
||||
@@ -589,7 +589,10 @@
|
||||
do_cleanups (inner);
|
||||
|
||||
@ -131,5 +131,5 @@ Index: gdb-7.10.90.20160211/gdb/build-id.c
|
||||
+ continue;
|
||||
+ }
|
||||
|
||||
if (build_id_verify (abfd, build_id_len, build_id))
|
||||
if (build_id_verify (abfd.get(), build_id_len, build_id))
|
||||
break;
|
||||
|
@ -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.11.50.20160630/gdb/corelow.c 2016-07-03 14:34:32.022753582 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/corelow.c 2017-04-20 23:00:35.415584426 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/corelow.c 2017-04-20 23:00:43.358629183 +0200
|
||||
@@ -45,6 +45,10 @@
|
||||
#include "gdb_bfd.h"
|
||||
#include "completer.h"
|
||||
@ -13,7 +13,7 @@ Index: gdb-7.11.50.20160630/gdb/corelow.c
|
||||
|
||||
#ifndef O_LARGEFILE
|
||||
#define O_LARGEFILE 0
|
||||
@@ -266,6 +270,53 @@
|
||||
@@ -266,6 +270,54 @@
|
||||
inferior_ptid = ptid; /* Yes, make it current. */
|
||||
}
|
||||
|
||||
@ -52,7 +52,8 @@ Index: gdb-7.11.50.20160630/gdb/corelow.c
|
||||
+ {
|
||||
+ make_cleanup (xfree, execfilename);
|
||||
+ 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)
|
||||
+ 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. */
|
||||
|
||||
static void
|
||||
@@ -404,6 +455,14 @@
|
||||
@@ -402,6 +454,14 @@
|
||||
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);
|
||||
|
||||
/* Now go through the target stack looking for threads since there
|
||||
@@ -1068,4 +1127,11 @@
|
||||
@@ -1079,4 +1139,11 @@
|
||||
init_core_ops ();
|
||||
|
||||
add_target_with_completer (&core_ops, filename_completer);
|
||||
@ -94,11 +95,11 @@ Index: gdb-7.11.50.20160630/gdb/corelow.c
|
||||
+ NULL, NULL, NULL,
|
||||
+ &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.11.50.20160630/gdb/doc/gdb.texinfo 2016-07-03 14:34:32.030753651 +0200
|
||||
@@ -18916,6 +18916,27 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/doc/gdb.texinfo 2017-04-20 23:00:35.415584426 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/doc/gdb.texinfo 2017-04-20 23:00:43.366629228 +0200
|
||||
@@ -18987,6 +18987,27 @@
|
||||
|
||||
@end table
|
||||
|
||||
@ -126,10 +127,10 @@ Index: gdb-7.11.50.20160630/gdb/doc/gdb.texinfo
|
||||
@cindex @code{.gnu_debuglink} sections
|
||||
@cindex debug link sections
|
||||
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.11.50.20160630/gdb/solib-svr4.c 2016-07-03 14:34:32.031753659 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/solib-svr4.c 2017-04-20 23:00:35.415584426 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/solib-svr4.c 2017-04-20 23:00:43.367629234 +0200
|
||||
@@ -45,6 +45,7 @@
|
||||
#include "auxv.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 int svr4_have_link_map_offsets (void);
|
||||
@@ -1416,9 +1417,52 @@
|
||||
@@ -1420,9 +1421,52 @@
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -194,41 +195,37 @@ Index: gdb-7.11.50.20160630/gdb/solib-svr4.c
|
||||
xfree (buffer);
|
||||
|
||||
/* 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.11.50.20160630/gdb/elfread.c 2016-07-03 14:34:32.031753659 +0200
|
||||
@@ -1259,9 +1259,10 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/elfread.c 2017-04-20 23:00:35.415584426 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/elfread.c 2017-04-20 23:00:43.367629234 +0200
|
||||
@@ -1265,8 +1265,9 @@
|
||||
&& objfile->separate_debug_objfile == NULL
|
||||
&& objfile->separate_debug_objfile_backlink == NULL)
|
||||
{
|
||||
- char *debugfile;
|
||||
+ char *debugfile, *build_id_filename;
|
||||
|
||||
- debugfile = find_separate_debug_file_by_buildid (objfile);
|
||||
+ debugfile = find_separate_debug_file_by_buildid (objfile,
|
||||
+ &build_id_filename);
|
||||
+ gdb::unique_xmalloc_ptr<char> build_id_filename;
|
||||
gdb::unique_xmalloc_ptr<char> debugfile
|
||||
- (find_separate_debug_file_by_buildid (objfile));
|
||||
+ (find_separate_debug_file_by_buildid (objfile, &build_id_filename));
|
||||
|
||||
if (debugfile == NULL)
|
||||
debugfile = find_separate_debug_file_by_debuglink (objfile);
|
||||
@@ -1275,6 +1276,12 @@
|
||||
symbol_file_add_separate (abfd, debugfile, symfile_flags, objfile);
|
||||
do_cleanups (cleanup);
|
||||
debugfile.reset (find_separate_debug_file_by_debuglink (objfile));
|
||||
@@ -1278,6 +1279,10 @@
|
||||
symbol_file_add_separate (abfd.get (), debugfile.get (),
|
||||
symfile_flags, objfile);
|
||||
}
|
||||
+ /* Check if any separate debug info has been extracted out. */
|
||||
+ else if (bfd_get_section_by_name (objfile->obfd, ".gnu_debuglink")
|
||||
+ != NULL)
|
||||
+ debug_print_missing (objfile_name (objfile), build_id_filename);
|
||||
+
|
||||
+ xfree (build_id_filename);
|
||||
+ debug_print_missing (objfile_name (objfile), build_id_filename.get ());
|
||||
}
|
||||
}
|
||||
|
||||
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.11.50.20160630/gdb/symfile.h 2016-07-03 14:34:32.032753668 +0200
|
||||
@@ -589,6 +589,10 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/symfile.h 2017-04-20 23:00:35.415584426 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/symfile.h 2017-04-20 23:00:43.368629240 +0200
|
||||
@@ -567,6 +567,10 @@
|
||||
void map_symbol_filenames (symbol_filename_ftype *fun, void *data,
|
||||
int need_fullname);
|
||||
|
||||
@ -239,11 +236,11 @@ Index: gdb-7.11.50.20160630/gdb/symfile.h
|
||||
/* From dwarf2read.c */
|
||||
|
||||
/* 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.11.50.20160630/gdb/testsuite/lib/gdb.exp 2016-07-03 14:34:32.033753676 +0200
|
||||
@@ -1641,6 +1641,16 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/testsuite/lib/gdb.exp 2017-04-20 23:00:35.415584426 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/testsuite/lib/gdb.exp 2017-04-20 23:00:43.369629245 +0200
|
||||
@@ -1646,6 +1646,16 @@
|
||||
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
|
||||
}
|
||||
|
||||
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.11.50.20160630/gdb/testsuite/lib/mi-support.exp 2016-07-03 14:34:32.033753676 +0200
|
||||
@@ -309,6 +309,16 @@ proc default_mi_gdb_start { args } {
|
||||
--- gdb-7.99.90.20170420.orig/gdb/testsuite/lib/mi-support.exp 2017-04-20 23:00:35.415584426 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/testsuite/lib/mi-support.exp 2017-04-20 23:00:43.369629245 +0200
|
||||
@@ -309,6 +309,16 @@
|
||||
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 } {
|
||||
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
|
||||
+++ 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
|
||||
Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.base/new-ui-pending-input.exp
|
||||
===================================================================
|
||||
--- 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 ""
|
||||
append options " -iex \"set height 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 " -ex \"b $bpline\""
|
||||
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.11.50.20160630/gdb/objfiles.h 2016-07-03 14:34:32.034753685 +0200
|
||||
@@ -489,6 +489,10 @@
|
||||
|
||||
#define OBJF_NOT_FILENAME (1 << 6)
|
||||
--- gdb-7.99.90.20170420.orig/gdb/objfiles.h 2017-04-20 23:00:35.415584426 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/objfiles.h 2017-04-20 23:00:43.370629251 +0200
|
||||
@@ -444,6 +444,10 @@
|
||||
htab_t static_links;
|
||||
};
|
||||
|
||||
+/* 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 */
|
||||
|
||||
extern struct objfile *allocate_objfile (bfd *, const char *name, int);
|
||||
Index: gdb-7.11.50.20160630/gdb/testsuite/gdb.base/corefile.exp
|
||||
extern struct objfile *allocate_objfile (bfd *, const char *name,
|
||||
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.11.50.20160630/gdb/testsuite/gdb.base/corefile.exp 2016-07-03 14:34:32.034753685 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.base/corefile.exp 2017-04-20 23:00:35.415584426 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.base/corefile.exp 2017-04-20 23:00:43.370629251 +0200
|
||||
@@ -293,3 +293,33 @@
|
||||
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 .*"
|
||||
+ 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.11.50.20160630/gdb/build-id.c 2016-07-03 14:36:50.124938187 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/build-id.c 2017-04-20 23:00:35.415584426 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/build-id.c 2017-04-20 23:03:00.060399474 +0200
|
||||
@@ -26,11 +26,67 @@
|
||||
#include "objfiles.h"
|
||||
#include "filenames.h"
|
||||
@ -775,7 +774,7 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
|
||||
|
||||
if (found == NULL)
|
||||
warning (_("File \"%s\" has no build-id, file skipped"),
|
||||
@@ -65,23 +463,56 @@
|
||||
@@ -65,23 +463,54 @@
|
||||
return retval;
|
||||
}
|
||||
|
||||
@ -797,17 +796,15 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
|
||||
+ target = xstrdup (buf);
|
||||
+ else
|
||||
+ {
|
||||
+ char *dir = ldirname (symlink);
|
||||
+ const std::string dir (ldirname (symlink));
|
||||
+
|
||||
+ if (dir == NULL)
|
||||
+ return xstrdup (symlink);
|
||||
+ target = xstrprintf ("%s"
|
||||
+#ifndef HAVE_DOS_BASED_FILE_SYSTEM
|
||||
+ "/"
|
||||
+#else /* 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);
|
||||
@ -817,7 +814,7 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
|
||||
+
|
||||
/* 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,
|
||||
+ 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;
|
||||
struct cleanup *back_to;
|
||||
int ix;
|
||||
bfd *abfd = NULL;
|
||||
gdb_bfd_ref_ptr abfd;
|
||||
- int alloc_len;
|
||||
|
||||
/* 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
|
||||
cause "/.build-id/..." lookups. */
|
||||
@@ -94,9 +525,12 @@
|
||||
@@ -94,9 +523,12 @@
|
||||
size_t debugdir_len = strlen (debugdir);
|
||||
const gdb_byte *data = build_id;
|
||||
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);
|
||||
s = &link[debugdir_len];
|
||||
@@ -110,47 +544,281 @@
|
||||
@@ -110,45 +542,290 @@
|
||||
*s++ = '/';
|
||||
while (size-- > 0)
|
||||
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);
|
||||
+ abfd = gdb_bfd_open (filename, gnutarget, -1);
|
||||
+ do_cleanups (inner);
|
||||
+
|
||||
+ if (abfd == NULL)
|
||||
+ continue;
|
||||
|
||||
- if (filename == NULL)
|
||||
- continue;
|
||||
+ if (abfd == NULL)
|
||||
+ continue;
|
||||
+ if (build_id_verify (abfd.get(), build_id_len, build_id))
|
||||
+ break;
|
||||
|
||||
- /* We expect to be silent on the non-existing files. */
|
||||
- inner = make_cleanup (xfree, filename);
|
||||
- abfd = gdb_bfd_open (filename, gnutarget, -1);
|
||||
- do_cleanups (inner);
|
||||
+ if (build_id_verify (abfd, build_id_len, build_id))
|
||||
+ break;
|
||||
+ abfd.release ();
|
||||
|
||||
- if (abfd == NULL)
|
||||
- continue;
|
||||
+ gdb_bfd_unref (abfd);
|
||||
+ abfd = NULL;
|
||||
|
||||
- if (build_id_verify (abfd, build_id_len, build_id))
|
||||
- break;
|
||||
+ filename = NULL;
|
||||
+ }
|
||||
|
||||
- gdb_bfd_unref (abfd);
|
||||
- abfd = NULL;
|
||||
- if (build_id_verify (abfd.get(), build_id_len, build_id))
|
||||
- break;
|
||||
+ if (filename != NULL)
|
||||
+ {
|
||||
+ /* LINK_ALL is not used below in this non-NULL FILENAME case. */
|
||||
+ xfree (link0);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
|
||||
- abfd.release ();
|
||||
+ /* If the symlink has target request to install the target.
|
||||
+ BASE-debuginfo.rpm contains the symlink but BASE.rpm may be missing.
|
||||
+ https://bugzilla.redhat.com/show_bug.cgi?id=981154 */
|
||||
@ -982,7 +977,7 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
|
||||
+char *
|
||||
+build_id_to_filename (const struct bfd_build_id *build_id, char **link_return)
|
||||
+{
|
||||
+ bfd *abfd;
|
||||
+ gdb_bfd_ref_ptr abfd;
|
||||
+ char *result;
|
||||
+
|
||||
+ 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;
|
||||
+
|
||||
+ result = xstrdup (bfd_get_filename (abfd));
|
||||
+ gdb_bfd_unref (abfd);
|
||||
+ abfd.release ();
|
||||
+ return result;
|
||||
+}
|
||||
+
|
||||
@ -1135,7 +1130,7 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
|
||||
char *
|
||||
-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;
|
||||
|
||||
@ -1146,15 +1141,25 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
|
||||
+ build_id = build_id_bfd_shdr_get (objfile->obfd);
|
||||
if (build_id != NULL)
|
||||
{
|
||||
bfd *abfd;
|
||||
|
||||
- abfd = build_id_to_debug_bfd (build_id->size, build_id->data);
|
||||
+ abfd = build_id_to_debug_bfd (build_id->size, build_id->data,
|
||||
+ build_id_filename_return, 1);
|
||||
+ char *build_id_filename_cstr = NULL;
|
||||
gdb_bfd_ref_ptr abfd (build_id_to_debug_bfd (build_id->size,
|
||||
- build_id->data));
|
||||
+ build_id->data,
|
||||
+ (!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. */
|
||||
if (abfd != NULL
|
||||
&& filename_cmp (bfd_get_filename (abfd),
|
||||
@@ -170,3 +838,21 @@
|
||||
&& filename_cmp (bfd_get_filename (abfd.get ()),
|
||||
@@ -160,3 +837,21 @@
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
@ -1176,13 +1181,13 @@ Index: gdb-7.11.50.20160630/gdb/build-id.c
|
||||
+
|
||||
+ 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.11.50.20160630/gdb/build-id.h 2016-07-03 14:34:32.035753694 +0200
|
||||
@@ -20,9 +20,10 @@
|
||||
#ifndef BUILD_ID_H
|
||||
#define BUILD_ID_H
|
||||
--- gdb-7.99.90.20170420.orig/gdb/build-id.h 2017-04-20 23:00:35.415584426 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/build-id.h 2017-04-20 23:00:43.371629257 +0200
|
||||
@@ -22,9 +22,10 @@
|
||||
|
||||
#include "gdb_bfd.h"
|
||||
|
||||
-/* Locate NT_GNU_BUILD_ID from ABFD and return its content. */
|
||||
+/* 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.
|
||||
Otherwise, issue a warning and return false. */
|
||||
@@ -36,13 +37,18 @@
|
||||
@@ -38,13 +39,19 @@
|
||||
the caller. */
|
||||
|
||||
extern bfd *build_id_to_debug_bfd (size_t build_id_len,
|
||||
- const bfd_byte *build_id);
|
||||
+ const bfd_byte *build_id, char **link_return,
|
||||
+ int add_debug_suffix);
|
||||
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,
|
||||
+ char **link_return,
|
||||
+ int add_debug_suffix);
|
||||
+
|
||||
+extern char *build_id_to_filename (const struct bfd_build_id *build_id,
|
||||
+ 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,
|
||||
+ char **build_id_filename_return);
|
||||
+ gdb::unique_xmalloc_ptr<char> *build_id_filename_return);
|
||||
|
||||
#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.11.50.20160630/gdb/dwarf2read.c 2016-07-03 14:34:32.040753736 +0200
|
||||
@@ -2535,7 +2535,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/dwarf2read.c 2017-04-20 23:00:35.415584426 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/dwarf2read.c 2017-04-20 23:00:43.375629279 +0200
|
||||
@@ -2671,7 +2671,7 @@
|
||||
}
|
||||
|
||||
if (dwz_bfd == NULL)
|
||||
@ -1227,11 +1233,11 @@ Index: gdb-7.11.50.20160630/gdb/dwarf2read.c
|
||||
|
||||
if (dwz_bfd == NULL)
|
||||
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.11.50.20160630/gdb/python/py-objfile.c 2016-07-03 14:34:32.040753736 +0200
|
||||
@@ -136,7 +136,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/python/py-objfile.c 2017-04-20 23:00:35.415584426 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/python/py-objfile.c 2017-04-20 23:00:43.375629279 +0200
|
||||
@@ -137,7 +137,7 @@
|
||||
|
||||
TRY
|
||||
{
|
||||
@ -1240,7 +1246,7 @@ Index: gdb-7.11.50.20160630/gdb/python/py-objfile.c
|
||||
}
|
||||
CATCH (except, RETURN_MASK_ALL)
|
||||
{
|
||||
@@ -547,7 +547,7 @@
|
||||
@@ -544,7 +544,7 @@
|
||||
/* Don't return separate debug files. */
|
||||
if (objfile->separate_debug_objfile_backlink != NULL)
|
||||
continue;
|
||||
@ -1249,11 +1255,11 @@ Index: gdb-7.11.50.20160630/gdb/python/py-objfile.c
|
||||
if (obfd_build_id == NULL)
|
||||
continue;
|
||||
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.11.50.20160630/gdb/coffread.c 2016-07-03 14:34:32.041753745 +0200
|
||||
@@ -737,7 +737,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/coffread.c 2017-04-20 23:00:35.415584426 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/coffread.c 2017-04-20 23:00:43.376629285 +0200
|
||||
@@ -734,7 +734,7 @@
|
||||
{
|
||||
char *debugfile;
|
||||
|
||||
|
@ -209,7 +209,7 @@ Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/atomic-seq-threaded.exp
|
||||
+
|
||||
+set testfile atomic-seq-threaded
|
||||
+set srcfile ${testfile}.c
|
||||
+set binfile ${objdir}/${subdir}/${testfile}
|
||||
+set binfile [standard_output_file ${testfile}]
|
||||
+
|
||||
+foreach opts {{} {compiler=gcc4} {FAIL}} {
|
||||
+ if {$opts eq "FAIL"} {
|
||||
|
@ -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.11.90.20160904/gdb/infrun.c 2016-09-04 17:57:45.568145391 +0200
|
||||
--- gdb-7.12.50.20170207.orig/gdb/infrun.c 2017-02-07 21:07:40.321202448 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/infrun.c 2017-02-07 21:07:42.680220365 +0100
|
||||
@@ -2218,7 +2218,7 @@
|
||||
schedlock_replay,
|
||||
NULL
|
||||
@ -11,10 +11,10 @@ Index: gdb-7.11.90.20160904/gdb/infrun.c
|
||||
static void
|
||||
show_scheduler_mode (struct ui_file *file, int from_tty,
|
||||
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.11.90.20160904/gdb/testsuite/gdb.mi/mi-cli.exp 2016-09-04 17:57:45.569145399 +0200
|
||||
--- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.mi/mi-cli.exp 2017-02-07 21:07:40.322202455 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi-cli.exp 2017-02-07 21:07:42.680220365 +0100
|
||||
@@ -199,7 +199,7 @@
|
||||
# Test that the token is output even for CLI commands
|
||||
# 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"
|
||||
|
||||
# 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.11.90.20160904/gdb/testsuite/gdb.mi/mi-logging.exp 2016-09-04 17:57:45.569145399 +0200
|
||||
--- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.mi/mi-logging.exp 2017-02-07 21:07:42.681220372 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi-logging.exp 2017-02-07 21:09:36.950088269 +0100
|
||||
@@ -53,7 +53,7 @@
|
||||
|
||||
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=\"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 {
|
||||
fail "Log file contents"
|
||||
fail "log file contents"
|
||||
@@ -76,7 +76,7 @@
|
||||
set logcontent [read $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=\"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 {
|
||||
fail "Redirect log file contents"
|
||||
Index: gdb-7.11.90.20160904/gdb/testsuite/gdb.mi/mi-console.exp
|
||||
fail "redirect log file contents"
|
||||
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.11.90.20160904/gdb/testsuite/gdb.mi/mi-console.exp 2016-09-04 17:57:45.569145399 +0200
|
||||
--- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.mi/mi-console.exp 2017-02-07 21:07:40.323202463 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi-console.exp 2017-02-07 21:07:42.681220372 +0100
|
||||
@@ -60,6 +60,9 @@
|
||||
|
||||
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
|
||||
# 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
|
||||
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.11.90.20160904/gdb/testsuite/gdb.opt/inline-cmds.exp 2016-09-04 18:00:04.616380027 +0200
|
||||
--- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.opt/inline-cmds.exp 2017-02-07 21:07:40.323202463 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/inline-cmds.exp 2017-02-07 21:07:42.681220372 +0100
|
||||
@@ -331,7 +331,7 @@
|
||||
|
||||
send_gdb "interpreter-exec console \"step\"\n"
|
||||
|
@ -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.4.50.20111219/gdb/testsuite/gdb.threads/staticthreads.exp 2011-12-19 22:08:55.444514127 +0100
|
||||
@@ -45,6 +45,13 @@ gdb_test_no_output "set print sevenbit-s
|
||||
--- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.threads/staticthreads.exp 2017-02-26 17:24:48.392316045 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.threads/staticthreads.exp 2017-02-26 17:25:38.649677595 +0100
|
||||
@@ -41,6 +41,13 @@
|
||||
# See if the static multi-threaded program runs.
|
||||
|
||||
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 "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" {
|
||||
|
@ -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.11.50.20160716/gdb/infrun.c 2016-07-16 14:37:10.636188765 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/infrun.c 2017-04-20 23:19:16.056434309 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/infrun.c 2017-04-20 23:19:22.932480367 +0200
|
||||
@@ -620,6 +620,13 @@
|
||||
target_pid_to_str (process_ptid));
|
||||
}
|
||||
@ -16,10 +16,10 @@ Index: gdb-7.11.50.20160716/gdb/infrun.c
|
||||
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.11.50.20160716/gdb/linux-nat.c 2016-07-16 14:38:09.574663094 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/linux-nat.c 2017-04-20 23:19:16.058434322 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/linux-nat.c 2017-04-20 23:19:22.933480373 +0200
|
||||
@@ -194,6 +194,11 @@
|
||||
static struct target_ops *linux_ops;
|
||||
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. */
|
||||
static void (*linux_nat_new_thread) (struct lwp_info *);
|
||||
|
||||
@@ -1047,6 +1052,9 @@
|
||||
@@ -1055,6 +1060,9 @@
|
||||
if (debug_linux_nat)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
"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
|
||||
stop, unless the kernel predates the TASK_STOPPED /
|
||||
@@ -1404,6 +1412,25 @@
|
||||
@@ -1412,6 +1420,25 @@
|
||||
return gdb_signal_to_host (signo);
|
||||
}
|
||||
|
||||
@ -68,7 +68,7 @@ Index: gdb-7.11.50.20160716/gdb/linux-nat.c
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1562,6 +1589,10 @@
|
||||
@@ -1570,6 +1597,10 @@
|
||||
detach_one_lwp (main_lwp, &signo);
|
||||
|
||||
inf_ptrace_detach_success (ops);
|
||||
@ -77,9 +77,9 @@ Index: gdb-7.11.50.20160716/gdb/linux-nat.c
|
||||
+ pid_was_stopped = 0;
|
||||
+#endif
|
||||
}
|
||||
delete_lwp (main_lwp->ptid);
|
||||
}
|
||||
@@ -1823,6 +1854,16 @@
|
||||
|
||||
@@ -1830,6 +1861,16 @@
|
||||
return;
|
||||
}
|
||||
|
||||
@ -96,7 +96,7 @@ Index: gdb-7.11.50.20160716/gdb/linux-nat.c
|
||||
if (resume_many)
|
||||
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. */
|
||||
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
|
||||
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.11.50.20160716/gdb/testsuite/gdb.threads/attach-stopped.exp 2016-07-16 14:37:10.640188797 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2017-04-20 23:19:16.059434329 +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 @@
|
||||
gdb_reinitialize_dir $srcdir/$subdir
|
||||
gdb_load ${binfile}
|
||||
|
@ -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-6.8.50.20090803/gdb/valops.c 2009-08-04 06:33:05.000000000 +0200
|
||||
@@ -926,10 +926,18 @@ value_assign (struct value *toval, struc
|
||||
--- gdb-7.12.50.20170207.orig/gdb/valops.c 2017-02-26 17:26:43.839146565 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/valops.c 2017-02-26 17:28:40.840988272 +0100
|
||||
@@ -1112,6 +1112,8 @@
|
||||
struct gdbarch *gdbarch;
|
||||
int value_reg;
|
||||
|
||||
- /* Figure out which frame this is in currently. */
|
||||
- frame = frame_find_by_id (VALUE_FRAME_ID (toval));
|
||||
value_reg = VALUE_REGNUM (toval);
|
||||
+ value_reg = VALUE_REGNUM (toval);
|
||||
+
|
||||
/* Figure out which frame this is in currently.
|
||||
|
||||
+ /* Figure out which frame this is in currently. */
|
||||
+ frame = frame_find_by_id (VALUE_FRAME_ID (toval));
|
||||
We use VALUE_FRAME_ID for obtaining the value's frame id instead of
|
||||
@@ -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,
|
||||
+ but frame_find_by_id returns NULL here (RH bug 436037).
|
||||
+ Use current frame, it represents CPU state in this case.
|
||||
|
@ -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
|
||||
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.11.50.20160630/gdb/defs.h 2016-07-03 16:41:08.568271741 +0200
|
||||
@@ -175,6 +175,10 @@
|
||||
--- gdb-7.12.50.20170207.orig/gdb/defs.h 2017-02-26 21:11:35.654350580 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/defs.h 2017-02-26 21:11:52.932473129 +0100
|
||||
@@ -169,6 +169,10 @@
|
||||
/* Flag that function quit should call quit_force. */
|
||||
extern volatile int sync_quit_force_run;
|
||||
|
||||
@ -20,10 +20,10 @@ Index: gdb-7.11.50.20160630/gdb/defs.h
|
||||
extern void quit (void);
|
||||
|
||||
/* 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.11.50.20160630/gdb/extension.c 2016-07-03 16:41:44.896550309 +0200
|
||||
--- gdb-7.12.50.20170207.orig/gdb/extension.c 2017-02-26 21:11:35.655350587 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/extension.c 2017-02-26 21:11:52.933473136 +0100
|
||||
@@ -830,6 +830,11 @@
|
||||
int i, result = 0;
|
||||
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)
|
||||
{
|
||||
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.11.50.20160630/gdb/top.c 2016-07-03 16:40:43.424078934 +0200
|
||||
@@ -1617,7 +1617,13 @@
|
||||
qt.args = args;
|
||||
--- gdb-7.12.50.20170207.orig/gdb/top.c 2017-02-26 21:11:35.655350587 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/top.c 2017-02-26 21:11:52.933473136 +0100
|
||||
@@ -1619,7 +1619,13 @@
|
||||
qt.args = NULL;
|
||||
qt.from_tty = from_tty;
|
||||
|
||||
+#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. */
|
||||
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.11.50.20160630/gdb/utils.c 2016-07-03 16:41:38.961504799 +0200
|
||||
@@ -109,6 +109,13 @@
|
||||
--- gdb-7.12.50.20170207.orig/gdb/utils.c 2017-02-26 21:11:35.657350601 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/utils.c 2017-02-26 21:11:52.934473143 +0100
|
||||
@@ -106,6 +106,13 @@
|
||||
|
||||
int job_control;
|
||||
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fc284fa344bd7d3440da19fd8660b4e9e524dea32abea0bddbf4e2225845140e
|
||||
size 27786483
|
3
gdb-7.99.90.20170420.tar.bz2
Normal file
3
gdb-7.99.90.20170420.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a2d8698118e74ab3b0f770630961db92b86505b8d46672da807790f053579502
|
||||
size 28146459
|
@ -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.11.90.20160829/gdb/breakpoint.c 2016-08-29 09:45:04.166612376 +0200
|
||||
@@ -16176,6 +16176,50 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/breakpoint.c 2017-04-20 23:04:39.627960523 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/breakpoint.c 2017-04-20 23:07:29.854919725 +0200
|
||||
@@ -16086,6 +16086,50 @@
|
||||
static struct cmd_list_element *enablebreaklist = NULL;
|
||||
|
||||
void
|
||||
@ -45,19 +45,19 @@ Index: gdb-7.11.90.20160829/gdb/breakpoint.c
|
||||
+ }
|
||||
+
|
||||
+ if (changed)
|
||||
+ qsort (bp_location, bp_location_count, sizeof (*bp_location),
|
||||
+ bp_location_compare);
|
||||
+ qsort (bp_locations, bp_locations_count, sizeof (*bp_locations),
|
||||
+ bp_locations_compare);
|
||||
+}
|
||||
+
|
||||
+void
|
||||
_initialize_breakpoint (void)
|
||||
{
|
||||
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.11.90.20160829/gdb/breakpoint.h 2016-08-29 09:42:24.370129320 +0200
|
||||
@@ -1644,4 +1644,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/breakpoint.h 2017-04-20 23:04:39.627960523 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/breakpoint.h 2017-04-20 23:04:48.331009563 +0200
|
||||
@@ -1646,4 +1646,7 @@
|
||||
UIOUT iff debugging multiple threads. */
|
||||
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);
|
||||
+
|
||||
#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.11.90.20160829/gdb/objfiles.c 2016-08-29 09:42:24.370129320 +0200
|
||||
@@ -916,6 +916,11 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/objfiles.c 2017-04-20 23:04:39.627960523 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/objfiles.c 2017-04-20 23:04:48.332009569 +0200
|
||||
@@ -909,6 +909,11 @@
|
||||
obj_section_addr (s));
|
||||
}
|
||||
|
||||
|
@ -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_DWARF_BLOCK(thistype, n) FIELD_DWARF_BLOCK (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
|
||||
===================================================================
|
||||
--- gdb-7.9.50.20150520.orig/gdb/value.c 2015-05-31 16:55:29.725475497 +0200
|
||||
|
@ -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/gdb/testsuite/gdb.ada/packed_array.exp 2016-10-22 09:45:15.849013467 +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.50.20170207/gdb/testsuite/gdb.ada/packed_array.exp 2017-02-26 19:15:36.597882316 +0100
|
||||
@@ -56,5 +56,11 @@
|
||||
# are. Observed with (FSF GNU Ada 4.5.3 20110124).
|
||||
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
|
||||
+++ 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 @@
|
||||
+ .file "x86_64-vla-pointer.c"
|
||||
+ .text
|
||||
@ -377,10 +377,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.arch/x86_64-vla-pointer-foo.S
|
||||
+ .string "array"
|
||||
+ .ident "GCC: (GNU) 6.2.1 20160916 (Red Hat 6.2.1-2)"
|
||||
+ .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
|
||||
+++ 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 @@
|
||||
+/* 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
|
||||
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
|
||||
+++ 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 @@
|
||||
+# 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_t" "type = char \\\[variable length\\\]" "second: whatis array_t"
|
||||
+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
|
||||
+++ 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 @@
|
||||
+ .file "x86_64-vla-typedef.c"
|
||||
+ .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)"
|
||||
+ .ident "GCC: (GNU) 4.3.2 20081105 (Red Hat 4.3.2-7)"
|
||||
+ .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
|
||||
+++ 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 @@
|
||||
+/* 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
|
||||
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
|
||||
+++ 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 @@
|
||||
+# 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 "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/gdb/testsuite/gdb.base/arrayidx.c 2016-10-22 09:45:15.851013482 +0200
|
||||
--- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.base/arrayidx.c 2017-02-26 19:15:28.555824772 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/arrayidx.c 2017-02-26 19:15:36.599882330 +0100
|
||||
@@ -17,6 +17,13 @@
|
||||
|
||||
int array[] = {1, 2, 3, 4};
|
||||
@ -1094,13 +1094,13 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/arrayidx.c
|
||||
int
|
||||
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/gdb/testsuite/gdb.base/arrayidx.exp 2016-10-22 09:45:15.851013482 +0200
|
||||
--- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.base/arrayidx.exp 2017-02-26 19:15:28.555824772 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/arrayidx.exp 2017-02-26 19:15:36.599882330 +0100
|
||||
@@ -49,4 +49,12 @@
|
||||
"\\{\\\[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\]"
|
||||
@ -1112,10 +1112,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/arrayidx.exp
|
||||
+ 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
|
||||
+++ 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 @@
|
||||
+/* 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 {
|
||||
+ int field;
|
||||
+} 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
|
||||
+++ 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 @@
|
||||
+# 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 {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
|
||||
+++ 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 @@
|
||||
+/* 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);
|
||||
+ 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
|
||||
+++ 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 @@
|
||||
+# 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.*"
|
||||
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
|
||||
+++ 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 @@
|
||||
+/* 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;
|
||||
+}
|
||||
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
|
||||
+++ 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 @@
|
||||
+# 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()"
|
||||
+
|
||||
+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
|
||||
+++ 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 @@
|
||||
+/* 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);
|
||||
+ 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
|
||||
+++ 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 @@
|
||||
+# 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 temp2" " = '2' <repeats 78 times>" "second: print temp2"
|
||||
+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
|
||||
+++ 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 @@
|
||||
+/* 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
|
||||
+++ 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 @@
|
||||
+# 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" \
|
||||
+ ".*catch (...).*" \
|
||||
+ "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
|
||||
+++ 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 @@
|
||||
+/* 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"
|
||||
+.Luint_str:
|
||||
+ .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
|
||||
+++ 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 @@
|
||||
+# 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.
|
||||
+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
|
||||
+++ 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 @@
|
||||
+/* 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);
|
||||
+ 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
|
||||
+++ 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 @@
|
||||
+# Copyright 2006 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -2348,10 +2348,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp
|
||||
+gdb_test "step" \
|
||||
+ "func.* \\(.*\\) at .*" \
|
||||
+ "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
|
||||
+++ 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 @@
|
||||
+/* 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 */
|
||||
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
|
||||
+++ 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 @@
|
||||
+# 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
|
||||
+
|
||||
+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
|
||||
+++ 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 @@
|
||||
+/* 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 */
|
||||
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
|
||||
+++ 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 @@
|
||||
+# 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 "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
|
||||
+++ 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 @@
|
||||
+# 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_test "p c40pt(1)" " = '0-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
|
||||
+++ 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 @@
|
||||
+! 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
|
||||
+
|
||||
+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
|
||||
+++ 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 @@
|
||||
+# 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"
|
||||
+# maps to foo::vary(1,3)
|
||||
+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
|
||||
+++ 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 @@
|
||||
+! 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 (3, 1) .ne. 10) call abort
|
||||
+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
|
||||
+++ 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 @@
|
||||
+# 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_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"
|
||||
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
|
||||
+++ 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 @@
|
||||
+! Copyright 2008 Free Software Foundation, Inc.
|
||||
+!
|
||||
@ -3108,10 +3108,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.fortran/string.f90
|
||||
+ h = 'h'
|
||||
+ call foo (g, h)
|
||||
+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
|
||||
+++ 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 @@
|
||||
+# Copyright 2011 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -3185,10 +3185,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.fortran/subrange.exp
|
||||
+gdb_unload
|
||||
+setup_kfail "*-*-*" "vlaregression/9999"
|
||||
+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
|
||||
+++ 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 @@
|
||||
+! Copyright 2011 Free Software Foundation, Inc.
|
||||
+!
|
||||
@ -3218,10 +3218,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.fortran/subrange.f90
|
||||
+ ptr => a
|
||||
+ write (*,*) a ! break-static
|
||||
+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
|
||||
+++ 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 @@
|
||||
+/* 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;
|
||||
+}
|
||||
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
|
||||
+++ 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 @@
|
||||
+# 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_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
|
||||
+++ 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 @@
|
||||
+/* 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];
|
||||
+}
|
||||
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
|
||||
+++ 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 @@
|
||||
+/* 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;
|
||||
+}
|
||||
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
|
||||
+++ 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 @@
|
||||
+# Copyright 2009 Free Software Foundation, Inc.
|
||||
+#
|
||||
@ -3409,10 +3409,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.opt/array-from-register.exp
|
||||
+# Seen regression:
|
||||
+# Address requested for identifier "arr" which is in register $rdi
|
||||
+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
|
||||
+++ 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 @@
|
||||
+# 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 "ptype s" "type = character\\*3"
|
||||
+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
|
||||
+++ 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 @@
|
||||
+! Copyright 2009 Free Software Foundation, Inc.
|
||||
+!
|
||||
@ -3486,10 +3486,10 @@ Index: gdb-7.12/gdb/testsuite/gdb.opt/fortran-string.f90
|
||||
+ program main
|
||||
+ call f ('foo')
|
||||
+ 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
|
||||
+++ 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 @@
|
||||
+# 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"
|
||||
+
|
||||
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
|
||||
+++ 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 @@
|
||||
+{
|
||||
+ 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';
|
||||
+ writeln(s); { set breakpoint 2 here }
|
||||
+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/gdb/testsuite/lib/gdb.exp 2016-10-22 09:45:15.858013534 +0200
|
||||
@@ -173,6 +173,11 @@
|
||||
--- gdb-7.12.50.20170207.orig/gdb/testsuite/lib/gdb.exp 2017-02-26 19:15:28.564824836 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/testsuite/lib/gdb.exp 2017-02-26 19:15:36.607882387 +0100
|
||||
@@ -178,6 +178,11 @@
|
||||
send_gdb "y\n"
|
||||
exp_continue
|
||||
}
|
||||
@ -3698,10 +3698,10 @@ Index: gdb-7.12/gdb/testsuite/lib/gdb.exp
|
||||
-re "Discard symbol table from .*y or n.*$" {
|
||||
send_gdb "y\n"
|
||||
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/gdb/testsuite/lib/pascal.exp 2016-10-22 09:45:15.859013541 +0200
|
||||
--- gdb-7.12.50.20170207.orig/gdb/testsuite/lib/pascal.exp 2017-02-26 19:15:28.565824844 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/testsuite/lib/pascal.exp 2017-02-26 19:15:36.607882387 +0100
|
||||
@@ -37,6 +37,9 @@
|
||||
global pascal_compiler_is_fpc
|
||||
global gpc_compiler
|
||||
|
187
gdb-archer.patch
187
gdb-archer.patch
@ -2,7 +2,7 @@ http://sourceware.org/gdb/wiki/ProjectArcher
|
||||
http://sourceware.org/gdb/wiki/ArcherBranchManagement
|
||||
|
||||
GIT snapshot:
|
||||
commit cfee64ee869a6a6e4ab0b64af149d4cf59517d80
|
||||
commit 718a1618b2f691a7f407213bb50f100ac59f91c3
|
||||
|
||||
tromey/python
|
||||
|
||||
@ -16,10 +16,10 @@ index 0000000..173b8ea
|
||||
+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.
|
||||
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
|
||||
index 5af6103..9c69cb0 100644
|
||||
index 291b1a0..150a8ef 100644
|
||||
--- a/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= \
|
||||
$(SHELL) config.status
|
||||
|
||||
@ -33,21 +33,22 @@ index 5af6103..9c69cb0 100644
|
||||
$(SHELL) config.status --recheck
|
||||
|
||||
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
|
||||
+++ 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/prompt.py \
|
||||
gdb/xmethod.py \
|
||||
+ gdb/types.py \
|
||||
gdb/command/__init__.py \
|
||||
+ gdb/command/ignore_errors.py \
|
||||
+ gdb/command/pahole.py \
|
||||
gdb/command/xmethods.py \
|
||||
+ gdb/command/xmethods.py \
|
||||
gdb/command/explore.py \
|
||||
gdb/command/frame_filters.py \
|
||||
gdb/command/unwinders.py \
|
||||
@@ -78,6 +81,8 @@ PYTHON_FILE_LIST = \
|
||||
gdb/command/pretty_printers.py \
|
||||
@@ -89,6 +93,8 @@ PYTHON_FILE_LIST = \
|
||||
gdb/function/as_string.py \
|
||||
gdb/function/caller_is.py \
|
||||
gdb/function/strfns.py \
|
||||
@ -57,10 +58,10 @@ index 3f23516..b5d6390 100644
|
||||
gdb/printer/bound_registers.py
|
||||
|
||||
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
|
||||
+++ 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.
|
||||
@c FIXME: kingdon thinks there is more to -tty. Investigate.
|
||||
|
||||
@ -78,7 +79,7 @@ index f5dde61..1d92bd6 100644
|
||||
@item -tui
|
||||
@cindex @code{--tui}
|
||||
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
|
||||
+++ b/gdb/doc/python.texi
|
||||
@@ -88,8 +88,6 @@ containing @code{end}. For example:
|
||||
@ -111,7 +112,7 @@ index 05a38b2..9801fdf 100644
|
||||
set variable $gdb_init_done = 1
|
||||
|
||||
diff --git a/gdb/main.c b/gdb/main.c
|
||||
index 5477379..b7e413f 100644
|
||||
index df4b111..6aca8b0 100644
|
||||
--- a/gdb/main.c
|
||||
+++ b/gdb/main.c
|
||||
@@ -33,6 +33,7 @@
|
||||
@ -122,16 +123,16 @@ index 5477379..b7e413f 100644
|
||||
#include "source.h"
|
||||
#include "cli/cli-cmds.h"
|
||||
#include "objfiles.h"
|
||||
@@ -459,6 +460,8 @@ captured_main (void *data)
|
||||
char *cdarg = NULL;
|
||||
char *ttyarg = NULL;
|
||||
@@ -459,7 +460,7 @@ struct cmdarg
|
||||
};
|
||||
|
||||
+ int python_script = 0;
|
||||
+
|
||||
/* These are static so that we can take their address in an
|
||||
initializer. */
|
||||
static int print_help;
|
||||
@@ -663,10 +666,14 @@ captured_main (void *data)
|
||||
static void
|
||||
-captured_main_1 (struct captured_main_args *context)
|
||||
+captured_main_1 (struct captured_main_args *context, int &python_script)
|
||||
{
|
||||
int argc = context->argc;
|
||||
char **argv = context->argv;
|
||||
@@ -676,10 +677,14 @@ captured_main_1 (struct captured_main_args *context)
|
||||
{"args", no_argument, &set_args, 1},
|
||||
{"l", required_argument, 0, 'l'},
|
||||
{"return-child-result", no_argument, &return_child_result, 1},
|
||||
@ -147,7 +148,7 @@ index 5477379..b7e413f 100644
|
||||
{
|
||||
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:
|
||||
/* Long option that just sets a flag. */
|
||||
break;
|
||||
@ -157,7 +158,7 @@ index 5477379..b7e413f 100644
|
||||
case OPT_SE:
|
||||
symarg = 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
|
||||
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
|
||||
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. */
|
||||
@ -200,9 +201,14 @@ index 5477379..b7e413f 100644
|
||||
|
||||
if (batch_flag)
|
||||
{
|
||||
@@ -1138,13 +1173,25 @@ captured_main (void *data)
|
||||
/* Show time and/or space usage. */
|
||||
do_cleanups (pre_stat_chain);
|
||||
@@ -1138,16 +1171,29 @@ static void
|
||||
captured_main (void *data)
|
||||
{
|
||||
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
|
||||
- moving this loop and the code found in captured_command_loop()
|
||||
@ -211,16 +217,16 @@ index 5477379..b7e413f 100644
|
||||
- while (1)
|
||||
+#if HAVE_PYTHON
|
||||
+ if (python_script)
|
||||
{
|
||||
- catch_errors (captured_command_loop, 0, "", RETURN_MASK_ALL);
|
||||
+ {
|
||||
+ extern int pagination_enabled;
|
||||
+ pagination_enabled = 0;
|
||||
+ run_python_script (argc - optind, &argv[optind]);
|
||||
+ return 1;
|
||||
+ run_python_script (context->argc - optind, &context->argv[optind]);
|
||||
+ return;
|
||||
+ }
|
||||
+ else
|
||||
+#endif
|
||||
+ {
|
||||
{
|
||||
- catch_errors (captured_command_loop, 0, "", RETURN_MASK_ALL);
|
||||
+ /* NOTE: cagney/1999-11-07: There is probably no reason for not
|
||||
+ moving this loop and the code found in captured_command_loop()
|
||||
+ 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. */
|
||||
}
|
||||
@@ -1187,6 +1234,12 @@ print_gdb_help (struct ui_file *stream)
|
||||
@@ -1190,6 +1236,12 @@ print_gdb_help (struct ui_file *stream)
|
||||
fputs_unfiltered (_("\
|
||||
This is the GNU debugger. Usage:\n\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\
|
||||
"), stream);
|
||||
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
|
||||
fputs_unfiltered (_("\
|
||||
--dbx DBX compatibility mode.\n\
|
||||
@ -442,8 +448,22 @@ index 0000000..8742680
|
||||
+ return wanted == found
|
||||
+
|
||||
+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
|
||||
index 621e201..703a1a0 100644
|
||||
index 7e0c507..a67fbc3 100644
|
||||
--- a/gdb/python/python.c
|
||||
+++ b/gdb/python/python.c
|
||||
@@ -95,6 +95,8 @@ const struct extension_language_defn extension_language_python =
|
||||
@ -455,7 +475,37 @@ index 621e201..703a1a0 100644
|
||||
#include "target.h"
|
||||
#include "gdbthread.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.
|
||||
There always is one. */
|
||||
@ -473,7 +523,7 @@ index 621e201..703a1a0 100644
|
||||
+ if (! running_python_script || in_cli)
|
||||
+ 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."));
|
||||
+
|
||||
+ in_cli = 1;
|
||||
@ -548,7 +598,7 @@ index 621e201..703a1a0 100644
|
||||
|
||||
static PyObject *
|
||||
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\
|
||||
a Python String containing the output of the command if to_string is\n\
|
||||
set to True." },
|
||||
@ -558,7 +608,7 @@ index 621e201..703a1a0 100644
|
||||
"Return a gdb parameter's value" },
|
||||
|
||||
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
|
||||
+++ b/gdb/python/python.h
|
||||
@@ -25,4 +25,6 @@
|
||||
@ -568,23 +618,8 @@ index b810187..a3620ab 100644
|
||||
+extern void run_python_script (int argc, char **argv);
|
||||
+
|
||||
#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
|
||||
index b5a4682..d5451a6 100644
|
||||
index f5d4a3c..3546f7b 100644
|
||||
--- a/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
|
||||
@ -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')))" \
|
||||
" = True" \
|
||||
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
|
||||
+++ 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"
|
||||
}
|
||||
|
||||
@ -616,11 +651,43 @@ index 57a9ba1..d90d85a 100644
|
||||
# Regression test for invalid subscript operations. The bug was that
|
||||
# the type of the value was not being checked before allowing a
|
||||
# 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_lazy_strings
|
||||
test_value_after_death
|
||||
+test_cast_regression
|
||||
|
||||
# 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);
|
||||
|
||||
|
@ -37,13 +37,13 @@ gdb/gdbserver/
|
||||
(linux_create_inferior, linux_tracefork_child): Call it instead of
|
||||
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.11.90.20160829/gdb/nat/linux-ptrace.c 2016-08-29 09:35:43.162384100 +0200
|
||||
@@ -25,6 +25,10 @@
|
||||
#include "gdb_ptrace.h"
|
||||
--- gdb-7.12.50.20170226.orig/gdb/nat/linux-ptrace.c 2017-02-26 21:27:14.780009449 +0100
|
||||
+++ gdb-7.12.50.20170226/gdb/nat/linux-ptrace.c 2017-02-26 21:27:18.838038193 +0100
|
||||
@@ -27,6 +27,10 @@
|
||||
#include <sys/procfs.h>
|
||||
#endif
|
||||
|
||||
+#ifdef HAVE_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.
|
||||
A value of -1 means we did not check for features yet. A value
|
||||
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 "
|
||||
"- the process has already terminated"),
|
||||
(int) pid);
|
||||
@ -61,7 +61,7 @@ Index: gdb-7.11.90.20160829/gdb/nat/linux-ptrace.c
|
||||
}
|
||||
|
||||
/* See linux-ptrace.h. */
|
||||
@@ -592,6 +598,22 @@
|
||||
@@ -594,6 +600,22 @@
|
||||
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. */
|
||||
|
||||
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.11.90.20160829/gdb/nat/linux-ptrace.h 2016-08-29 09:35:43.162384100 +0200
|
||||
--- gdb-7.12.50.20170226.orig/gdb/nat/linux-ptrace.h 2017-02-26 21:27:14.780009449 +0100
|
||||
+++ gdb-7.12.50.20170226/gdb/nat/linux-ptrace.h 2017-02-26 21:27:18.838038193 +0100
|
||||
@@ -185,6 +185,7 @@
|
||||
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_enable_event_reporting (pid_t pid, int attached);
|
||||
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.11.90.20160829/gdb/configure.ac 2016-08-29 09:35:43.163384109 +0200
|
||||
@@ -2108,6 +2108,10 @@
|
||||
--- gdb-7.12.50.20170226.orig/gdb/configure.ac 2017-02-26 21:27:14.781009456 +0100
|
||||
+++ gdb-7.12.50.20170226/gdb/configure.ac 2017-02-26 21:27:18.839038200 +0100
|
||||
@@ -2092,6 +2092,10 @@
|
||||
esac
|
||||
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.
|
||||
|
||||
# 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.11.90.20160829/gdb/gdbserver/configure.ac 2016-08-29 09:35:43.163384109 +0200
|
||||
@@ -472,6 +472,10 @@
|
||||
--- gdb-7.12.50.20170226.orig/gdb/gdbserver/configure.ac 2017-02-26 21:27:14.781009456 +0100
|
||||
+++ gdb-7.12.50.20170226/gdb/gdbserver/configure.ac 2017-02-26 21:27:18.839038200 +0100
|
||||
@@ -469,6 +469,10 @@
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -126,11 +126,11 @@ Index: gdb-7.11.90.20160829/gdb/gdbserver/configure.ac
|
||||
AC_SUBST(GDBSERVER_DEPFILES)
|
||||
AC_SUBST(GDBSERVER_LIBS)
|
||||
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.11.90.20160829/gdb/gdbserver/linux-low.c 2016-08-29 09:35:43.165384128 +0200
|
||||
@@ -933,6 +933,29 @@
|
||||
--- gdb-7.12.50.20170226.orig/gdb/gdbserver/linux-low.c 2017-02-26 21:27:14.783009470 +0100
|
||||
+++ gdb-7.12.50.20170226/gdb/gdbserver/linux-low.c 2017-02-26 21:27:18.841038214 +0100
|
||||
@@ -946,6 +946,29 @@
|
||||
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.
|
||||
ALLARGS is a vector of program-name and args. */
|
||||
|
||||
@@ -956,7 +979,7 @@
|
||||
@@ -969,7 +992,7 @@
|
||||
if (pid == 0)
|
||||
{
|
||||
close_most_fds ();
|
||||
@ -169,31 +169,11 @@ Index: gdb-7.11.90.20160829/gdb/gdbserver/linux-low.c
|
||||
|
||||
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.11.90.20160829/gdb/inf-ptrace.c 2016-08-29 09:35:43.165384128 +0200
|
||||
@@ -79,7 +79,15 @@
|
||||
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 @@
|
||||
--- gdb-7.12.50.20170226.orig/gdb/linux-nat.c 2017-02-26 21:27:14.785009484 +0100
|
||||
+++ gdb-7.12.50.20170226/gdb/linux-nat.c 2017-02-26 21:27:18.842038221 +0100
|
||||
@@ -1110,6 +1110,7 @@
|
||||
{
|
||||
struct cleanup *restore_personality
|
||||
= 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
|
||||
we have to mask the async mode. */
|
||||
@@ -1109,7 +1110,28 @@
|
||||
@@ -1117,7 +1118,28 @@
|
||||
/* Make sure we report all signals during startup. */
|
||||
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);
|
||||
}
|
||||
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.11.90.20160829/gdb/config.in 2016-08-29 09:35:43.166384137 +0200
|
||||
@@ -267,6 +267,9 @@
|
||||
--- gdb-7.12.50.20170226.orig/gdb/config.in 2017-02-26 21:27:14.786009491 +0100
|
||||
+++ gdb-7.12.50.20170226/gdb/config.in 2017-02-26 21:27:18.842038221 +0100
|
||||
@@ -270,6 +270,9 @@
|
||||
/* Define if librpm library is being used. */
|
||||
#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. */
|
||||
#undef HAVE_LIBUNWIND_IA64_H
|
||||
|
||||
@@ -399,6 +402,9 @@
|
||||
@@ -402,6 +405,9 @@
|
||||
/* Define to 1 if you have the `scm_new_smob' function. */
|
||||
#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. */
|
||||
#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.11.90.20160829/gdb/configure 2016-08-29 09:35:43.170384175 +0200
|
||||
@@ -14642,6 +14642,64 @@
|
||||
--- gdb-7.12.50.20170226.orig/gdb/configure 2017-02-26 21:27:14.790009519 +0100
|
||||
+++ gdb-7.12.50.20170226/gdb/configure 2017-02-26 21:27:18.846038249 +0100
|
||||
@@ -15492,6 +15492,64 @@
|
||||
_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,
|
||||
# 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.11.90.20160829/gdb/gdbserver/config.in 2016-08-29 09:35:43.170384175 +0200
|
||||
@@ -120,6 +120,9 @@
|
||||
--- gdb-7.12.50.20170226.orig/gdb/gdbserver/config.in 2017-02-26 21:27:14.791009527 +0100
|
||||
+++ gdb-7.12.50.20170226/gdb/gdbserver/config.in 2017-02-26 21:27:18.846038249 +0100
|
||||
@@ -123,6 +123,9 @@
|
||||
/* Define to 1 if you have the `mcheck' library (-lmcheck). */
|
||||
#undef HAVE_LIBMCHECK
|
||||
|
||||
@ -338,7 +318,7 @@ Index: gdb-7.11.90.20160829/gdb/gdbserver/config.in
|
||||
/* Define if the target supports branch tracing. */
|
||||
#undef HAVE_LINUX_BTRACE
|
||||
|
||||
@@ -196,6 +199,9 @@
|
||||
@@ -199,6 +202,9 @@
|
||||
/* Define to 1 if you have the `pwrite' function. */
|
||||
#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. */
|
||||
#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.11.90.20160829/gdb/gdbserver/configure 2016-08-29 09:35:43.172384194 +0200
|
||||
@@ -7561,6 +7561,64 @@
|
||||
--- gdb-7.12.50.20170226.orig/gdb/gdbserver/configure 2017-02-26 21:27:14.793009541 +0100
|
||||
+++ gdb-7.12.50.20170226/gdb/gdbserver/configure 2017-02-26 21:27:18.848038263 +0100
|
||||
@@ -8429,6 +8429,64 @@
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -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.9.50.20150520/gdb/python/py-framefilter.c 2015-05-31 17:55:01.884788031 +0200
|
||||
@@ -1523,6 +1523,7 @@ gdbpy_apply_frame_filter (const struct e
|
||||
PyObject *iterable;
|
||||
PyObject *item;
|
||||
htab_t levels_printed;
|
||||
--- gdb-7.12.50.20170226.orig/gdb/python/py-framefilter.c 2017-02-26 21:33:23.150618708 +0100
|
||||
+++ gdb-7.12.50.20170226/gdb/python/py-framefilter.c 2017-02-26 21:33:29.993667179 +0100
|
||||
@@ -1388,6 +1388,7 @@
|
||||
htab_eq_pointer,
|
||||
NULL));
|
||||
|
||||
+ int count_printed = 0;
|
||||
|
||||
if (!gdb_python_initialized)
|
||||
return EXT_LANG_BT_NO_FILTERS;
|
||||
@@ -1543,24 +1544,7 @@ gdbpy_apply_frame_filter (const struct e
|
||||
iterable = bootstrap_python_frame_filters (frame, frame_low, frame_high);
|
||||
|
||||
if (iterable == NULL)
|
||||
- {
|
||||
- /* Normally if there is an error GDB prints the exception,
|
||||
- abandons the backtrace and exits. The user can then call "bt
|
||||
- no-filters", and get a default backtrace (it would be
|
||||
- confusing to automatically start a standard backtrace halfway
|
||||
- through a Python filtered backtrace). However in the case
|
||||
- where GDB cannot initialize the frame filters (most likely
|
||||
- due to incorrect auto-load paths), GDB has printed nothing.
|
||||
- In this case it is OK to print the default backtrace after
|
||||
- printing the error message. GDB returns EXT_LANG_BT_NO_FILTERS
|
||||
- here to signify there are no filters after printing the
|
||||
- initialization error. This return code will trigger a
|
||||
- default backtrace. */
|
||||
-
|
||||
- gdbpy_print_stack ();
|
||||
- do_cleanups (cleanups);
|
||||
- return EXT_LANG_BT_NO_FILTERS;
|
||||
- }
|
||||
+ goto error_nothing_printed;
|
||||
|
||||
/* If iterable is None, then there are no frame filters registered.
|
||||
If this is the case, defer to default GDB printing routines in MI
|
||||
@@ -1591,15 +1575,40 @@ gdbpy_apply_frame_filter (const struct e
|
||||
while (true)
|
||||
{
|
||||
gdbpy_ref<> item (PyIter_Next (iterable.get ()));
|
||||
@@ -1397,7 +1398,7 @@
|
||||
if (PyErr_Occurred ())
|
||||
{
|
||||
gdbpy_print_stack ();
|
||||
- return EXT_LANG_BT_ERROR;
|
||||
+ return count_printed > 0 ? EXT_LANG_BT_ERROR : EXT_LANG_BT_NO_FILTERS;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1409,6 +1410,7 @@
|
||||
error and continue with other frames. */
|
||||
if (success == EXT_LANG_BT_ERROR)
|
||||
gdbpy_print_stack ();
|
||||
+
|
||||
+ count_printed++;
|
||||
}
|
||||
|
||||
if (item == NULL && PyErr_Occurred ())
|
||||
- goto error;
|
||||
+ {
|
||||
+ if (count_printed > 0)
|
||||
+ goto error;
|
||||
+ else
|
||||
+ goto error_nothing_printed;
|
||||
+ }
|
||||
|
||||
done:
|
||||
do_cleanups (cleanups);
|
||||
return success;
|
||||
|
||||
+ /* Normally if there is an error GDB prints the exception,
|
||||
+ abandons the backtrace and exits. The user can then call "bt
|
||||
+ no-filters", and get a default backtrace (it would be
|
||||
+ confusing to automatically start a standard backtrace halfway
|
||||
+ through a Python filtered backtrace). However in the case
|
||||
+ where GDB cannot initialize the frame filters (most likely
|
||||
+ due to incorrect auto-load paths), GDB has printed nothing.
|
||||
+ In this case it is OK to print the default backtrace after
|
||||
+ printing the error message. GDB returns EXT_LANG_BT_NO_FILTERS
|
||||
+ here to signify there are no filters after printing the
|
||||
+ initialization error. This return code will trigger a
|
||||
+ default backtrace. */
|
||||
+
|
||||
+ error_nothing_printed:
|
||||
+ gdbpy_print_stack ();
|
||||
+ do_cleanups (cleanups);
|
||||
+ return EXT_LANG_BT_NO_FILTERS;
|
||||
+
|
||||
/* Exit and abandon backtrace on error, printing the exception that
|
||||
is set. */
|
||||
error:
|
||||
|
@ -1,30 +1,30 @@
|
||||
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.11.50.20160630/gdb/data-directory/Makefile.in 2016-07-03 16:32:17.868198850 +0200
|
||||
@@ -61,6 +61,8 @@
|
||||
gdb/frames.py \
|
||||
gdb/FrameIterator.py \
|
||||
--- gdb-7.12.50.20170207.orig/gdb/data-directory/Makefile.in 2017-02-26 21:10:31.418894975 +0100
|
||||
+++ gdb-7.12.50.20170207/gdb/data-directory/Makefile.in 2017-02-26 21:11:07.083147930 +0100
|
||||
@@ -71,6 +71,8 @@
|
||||
gdb/__init__.py \
|
||||
gdb/FrameDecorator.py \
|
||||
gdb/FrameIterator.py \
|
||||
+ gdb/FrameWrapper.py \
|
||||
+ gdb/backtrace.py \
|
||||
gdb/types.py \
|
||||
gdb/frames.py \
|
||||
gdb/printing.py \
|
||||
gdb/unwinder.py \
|
||||
@@ -77,6 +79,7 @@
|
||||
gdb/command/pretty_printers.py \
|
||||
gdb/command/prompt.py \
|
||||
gdb/prompt.py \
|
||||
@@ -83,6 +85,7 @@
|
||||
gdb/command/pahole.py \
|
||||
gdb/command/xmethods.py \
|
||||
gdb/command/explore.py \
|
||||
+ gdb/command/backtrace.py \
|
||||
gdb/function/__init__.py \
|
||||
gdb/function/as_string.py \
|
||||
gdb/function/caller_is.py \
|
||||
Index: gdb-7.11.50.20160630/gdb/python/lib/gdb/FrameWrapper.py
|
||||
gdb/command/frame_filters.py \
|
||||
gdb/command/pretty_printers.py \
|
||||
gdb/command/prompt.py \
|
||||
Index: gdb-7.12.50.20170207/gdb/python/lib/gdb/FrameWrapper.py
|
||||
===================================================================
|
||||
--- /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 @@
|
||||
+# Wrapper API for frames.
|
||||
+
|
||||
@ -62,7 +62,7 @@ Index: gdb-7.11.50.20160630/gdb/python/lib/gdb/FrameWrapper.py
|
||||
+ if val != None:
|
||||
+ val = str (val)
|
||||
+ # FIXME: would be nice to have a more precise exception here.
|
||||
+ except RuntimeError, text:
|
||||
+ except RuntimeError as text:
|
||||
+ val = text
|
||||
+ if val == None:
|
||||
+ stream.write ("???")
|
||||
@ -148,10 +148,10 @@ Index: gdb-7.11.50.20160630/gdb/python/lib/gdb/FrameWrapper.py
|
||||
+
|
||||
+ def __getattr__ (self, 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
|
||||
+++ 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 @@
|
||||
+# Filtering backtrace.
|
||||
+
|
||||
@ -195,10 +195,10 @@ Index: gdb-7.11.50.20160630/gdb/python/lib/gdb/backtrace.py
|
||||
+ return 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
|
||||
+++ 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 @@
|
||||
+# New backtrace command.
|
||||
+
|
||||
|
@ -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 executable ${testfile}
|
||||
+set srcfile start.c
|
||||
+set binfile ${objdir}/${subdir}/${executable}
|
||||
+set binfile [standard_output_file ${executable}]
|
||||
+
|
||||
+if [prepare_for_testing ${testfile}.exp $executable $srcfile] {
|
||||
+ return -1
|
||||
|
@ -34,11 +34,11 @@ gdb/
|
||||
|
||||
* dwarf2read.c (process_die): Change gdb_assert to complaint.
|
||||
|
||||
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
index 3eaa0b1..71f5d34 100644
|
||||
--- a/gdb/dwarf2read.c
|
||||
+++ b/gdb/dwarf2read.c
|
||||
@@ -8029,7 +8029,13 @@ process_die (struct die_info *die, struct dwarf2_cu *cu)
|
||||
Index: gdb-7.99.90.20170420/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/dwarf2read.c 2017-04-20 23:15:26.578897210 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/dwarf2read.c 2017-04-20 23:15:57.805106371 +0200
|
||||
@@ -8426,7 +8426,13 @@
|
||||
struct cleanup *in_process;
|
||||
|
||||
/* We should only be processing those not already in process. */
|
||||
@ -47,12 +47,9 @@ index 3eaa0b1..71f5d34 100644
|
||||
+ {
|
||||
+ complaint (&symfile_complaints,
|
||||
+ _("DIE at 0x%x attempted to be processed twice"),
|
||||
+ die->offset.sect_off);
|
||||
+ to_underlying (die->sect_off));
|
||||
+ return;
|
||||
+ }
|
||||
|
||||
die->in_process = 1;
|
||||
in_process = make_cleanup (reset_die_in_process,die);
|
||||
|
||||
--6TrnltStXW4iwmi0--
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.arch/powerpc-power7.exp
|
||||
+++ b/gdb/testsuite/gdb.arch/powerpc-power7rh.exp
|
||||
@@ -0,0 +1,182 @@
|
||||
+# Copyright 2009 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -24,7 +24,7 @@
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
+set testfile "powerpc-power7"
|
||||
+set testfile "powerpc-power7rh"
|
||||
+set srcfile ${testfile}.s
|
||||
+set objfile [standard_output_file ${testfile}.o]
|
||||
+
|
||||
@ -184,7 +184,7 @@
|
||||
+func_check 0x198 "frsqrtes. f14,f15"
|
||||
+func_check 0x19c "isel r2,r3,r4,28"
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.arch/powerpc-power7.s
|
||||
+++ b/gdb/testsuite/gdb.arch/powerpc-power7rh.s
|
||||
@@ -0,0 +1,107 @@
|
||||
+ .text
|
||||
+ .globl func
|
||||
|
@ -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.11.50.20160630/gdb/doc/python.texi 2016-07-03 16:30:42.812387867 +0200
|
||||
@@ -229,6 +229,14 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/doc/python.texi 2017-04-20 23:16:30.895328018 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/doc/python.texi 2017-04-20 23:16:35.690360136 +0200
|
||||
@@ -230,6 +230,14 @@
|
||||
return value is @code{None}. If @var{to_string} is @code{True}, the
|
||||
@value{GDBN} virtual terminal will be temporarily set to unlimited width
|
||||
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
|
||||
|
||||
@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.11.50.20160630/gdb/python/python-internal.h 2016-07-03 16:30:42.812387867 +0200
|
||||
@@ -140,6 +140,8 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/python/python-internal.h 2017-04-20 23:16:30.896328024 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/python/python-internal.h 2017-04-20 23:16:35.690360136 +0200
|
||||
@@ -142,6 +142,8 @@
|
||||
#define PyGILState_Release(ARG) ((void)(ARG))
|
||||
#define PyEval_InitThreads()
|
||||
#define PyThreadState_Swap(ARG) ((void)(ARG))
|
||||
@ -30,34 +30,32 @@ Index: gdb-7.11.50.20160630/gdb/python/python-internal.h
|
||||
#define PyEval_ReleaseLock()
|
||||
#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.11.50.20160630/gdb/python/python.c 2016-07-03 16:31:16.324673783 +0200
|
||||
@@ -619,13 +619,18 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/python/python.c 2017-04-20 23:16:30.897328031 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/python/python.c 2017-04-20 23:18:11.377001070 +0200
|
||||
@@ -594,12 +594,16 @@
|
||||
{
|
||||
const char *arg;
|
||||
PyObject *from_tty_obj = NULL, *to_string_obj = NULL;
|
||||
- int from_tty, to_string;
|
||||
- static char *keywords[] = {"command", "from_tty", "to_string", NULL };
|
||||
+ PyObject *release_gil_obj = NULL;
|
||||
- static const char *keywords[] = { "command", "from_tty", "to_string", NULL };
|
||||
+ int from_tty, to_string, release_gil;
|
||||
+ static char *keywords[] = {"command", "from_tty", "to_string",
|
||||
+ "release_gil", NULL };
|
||||
char *result = NULL;
|
||||
+ static const char *keywords[] = {"command", "from_tty", "to_string", "release_gil", NULL };
|
||||
+ PyObject *release_gil_obj = NULL;
|
||||
+ /* Initialize it just to avoid a GCC false warning. */
|
||||
+ PyThreadState *state = NULL;
|
||||
|
||||
- if (! PyArg_ParseTupleAndKeywords (args, kw, "s|O!O!", keywords, &arg,
|
||||
+ if (! PyArg_ParseTupleAndKeywords (args, kw, "s|O!O!O!", keywords, &arg,
|
||||
&PyBool_Type, &from_tty_obj,
|
||||
- &PyBool_Type, &to_string_obj))
|
||||
+ &PyBool_Type, &to_string_obj,
|
||||
+ &PyBool_Type, &release_gil_obj))
|
||||
- if (!gdb_PyArg_ParseTupleAndKeywords (args, kw, "s|O!O!", keywords, &arg,
|
||||
+ if (!gdb_PyArg_ParseTupleAndKeywords (args, kw, "s|O!O!O!", keywords, &arg,
|
||||
&PyBool_Type, &from_tty_obj,
|
||||
- &PyBool_Type, &to_string_obj))
|
||||
+ &PyBool_Type, &to_string_obj,
|
||||
+ &PyBool_Type, &release_gil_obj))
|
||||
return NULL;
|
||||
|
||||
from_tty = 0;
|
||||
@@ -646,6 +651,15 @@
|
||||
@@ -620,6 +624,15 @@
|
||||
to_string = cmp;
|
||||
}
|
||||
|
||||
@ -70,11 +68,11 @@ Index: gdb-7.11.50.20160630/gdb/python/python.c
|
||||
+ release_gil = cmp;
|
||||
+ }
|
||||
+
|
||||
std::string to_string_res;
|
||||
|
||||
TRY
|
||||
{
|
||||
/* Copy the argument text in case the command modifies it. */
|
||||
@@ -653,6 +667,13 @@
|
||||
struct cleanup *cleanup = make_cleanup (xfree, copy);
|
||||
@@ -628,6 +641,13 @@
|
||||
std::string copy (arg);
|
||||
struct interp *interp;
|
||||
|
||||
+ /* 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)
|
||||
+ state = PyEval_SaveThread();
|
||||
+
|
||||
make_cleanup_restore_integer (¤t_ui->async);
|
||||
current_ui->async = 0;
|
||||
|
||||
@@ -671,11 +692,23 @@
|
||||
execute_command (copy, from_tty);
|
||||
}
|
||||
scoped_restore save_async = make_scoped_restore (¤t_ui->async, 0);
|
||||
|
||||
scoped_restore save_uiout = make_scoped_restore (¤t_uiout);
|
||||
@@ -642,10 +662,22 @@
|
||||
to_string_res = execute_command_to_string (©[0], from_tty);
|
||||
else
|
||||
execute_command (©[0], from_tty);
|
||||
+
|
||||
+ /* Reacquire the GIL if it was released earlier. */
|
||||
+ if (release_gil)
|
||||
+ PyEval_RestoreThread (state);
|
||||
+
|
||||
do_cleanups (cleanup);
|
||||
}
|
||||
CATCH (except, RETURN_MASK_ALL)
|
||||
{
|
||||
@ -112,8 +109,10 @@ Index: gdb-7.11.50.20160630/gdb/python/python.c
|
||||
}
|
||||
END_CATCH
|
||||
|
||||
--- /dev/null 2016-09-12 21:37:05.332693927 +0200
|
||||
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.python/py-gil-mthread.c 2016-09-12 21:51:53.750317187 +0200
|
||||
Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.c
|
||||
===================================================================
|
||||
--- /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 @@
|
||||
+#include <stdio.h>
|
||||
+#include <unistd.h>
|
||||
@ -128,8 +127,10 @@ Index: gdb-7.11.50.20160630/gdb/python/python.c
|
||||
+ printf ("Sleeping %d\n", i);
|
||||
+ }
|
||||
+}
|
||||
--- /dev/null 2016-09-12 21:37:05.332693927 +0200
|
||||
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.python/py-gil-mthread.exp 2016-09-12 21:52:38.605750360 +0200
|
||||
Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.exp
|
||||
===================================================================
|
||||
--- /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 @@
|
||||
+# 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
|
||||
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.python/py-gil-mthread.py 2016-09-12 21:59:02.668459286 +0200
|
||||
Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.py
|
||||
===================================================================
|
||||
--- /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 @@
|
||||
+try:
|
||||
+ import thread
|
||||
@ -216,7 +219,7 @@ Index: gdb-7.11.50.20160630/gdb/python/python.c
|
||||
+ while count < 10:
|
||||
+ time.sleep(1)
|
||||
+ count += 1
|
||||
+ print ("Hello (", count, ")")
|
||||
+ print ("Hello ( %d )" % count)
|
||||
+
|
||||
+# Create a threads a continue
|
||||
+try:
|
||||
|
74
gdb-release-werror.patch
Normal file
74
gdb-release-werror.patch
Normal 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+--
|
||||
|
@ -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 srcfile ${testfile}.c
|
||||
+set binfile ${objdir}/${subdir}/${testfile}
|
||||
+set binfile [standard_output_file ${testfile}]
|
||||
+
|
||||
+if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } {
|
||||
+ return -1
|
||||
|
@ -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
|
||||
+++ 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.
|
||||
+
|
||||
+# 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 }
|
||||
+
|
||||
+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 } {
|
||||
+ 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 "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
|
||||
Index: gdb-7.6.1/gdb/testsuite/gdb.base/rhbz1261564-aarch64-watchpoint.c
|
||||
===================================================================
|
||||
|
448
gdb-rhbz1398387-tab-crash-test.patch
Normal file
448
gdb-rhbz1398387-tab-crash-test.patch
Normal 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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
|
||||
+M`,.^+BG;`ZF7BV09<[-_][:8^4KLHF.(1`0<SWGYJ3I.3K!0![LX-.34%X
|
||||
+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
|
||||
+M@A`\#X%A8B2?ZU1)$9%)(Q%@"@LDG-D`8'(&,"(8(YS�!3:QMRG/,TU?%R
|
||||
+MG7'NZ/Y>C6R':]3T>]R:N[G/F>L^-Z8W(@05",604",9-Y"A3TN;K^7U_D?5
|
||||
+M]+)>,!C#_7R<;\D\CX1PL]S$<S^5PCQ;Y]N7OG-3"G1I4&VM7_;EN(G/K_I[
|
||||
+MN:N:C<>^X[C@`P,/0"-31'T61;6DR@][DZ>GRX>I6>`E\3;J]#&J;J-QZDEZ
|
||||
+MN`Z"S<>Q9D;G8<GSMW1G=>V4DQ'4T:78NL=:(*1TE&S_R-!0N)EE'3[0&B*!
|
||||
+MXQ*NL=1!1^MME#CP3"#Z\>EWS"6?=]^))<L/*'D&0)_+'NT37FKB6HHED8[\
|
||||
+MP@8?\?J3Q]N@LL\X@V,1(0:0)L21V28:XQN,AB[Z8TJAUKCT1M]NHG:;H(B@
|
||||
+MS^R5=M$+[^_8K"^&BP,&JT$M,/?@J\LZP'!<-A.;DV<5D0!J$((TAJ[I<=8O
|
||||
+M<WXT`V#3<Y.[4_ZJ&0Q+;CH%#^?(=#@2S:]3(($2XI=O_SZY(DP\(RP(.)68
|
||||
+MXW^IE\%0)2B[NW^6>"@K:@'@@WDG:-N)I=7TH:&]V:HU#$8H@2H7&5C!B8/<
|
||||
+M>+*R`ZN=[,`1\>^V(NU#+I]][;J]J$$)=@@8!C&8F38Z2ZYW@!C;&*7UJH?S
|
||||
+MQ*8,+&MJ!D'$H2WJ"=:##R1L!V.SV:FBB#KMJZ-A8U=P'F)%DBD+Y(]`W<76
|
||||
+M0"B`P'7/I#2C1W`Q//G]JRCF4N!U6V.,:6B(^'F_PM]?37_I^G\>W:F,#`!L
|
||||
+M#$,?SLN]D@92+./&PT_IX_D\#C]]P.?H=A[GX8-3>EHG#-5Y:9#51"%*"@8,
|
||||
+MR,#P4(,M6C4*U0!009;_,O-S^;=Q%1U4]/RN)VFLJGPB`SJ%?B]A6)UT%0>\
|
||||
+M7?CM)8U>&P!P_@=A7"`%&/ZL=2/B:J/Z>/Q_QN./XO]HL>FR%6\R]CX<7IV1
|
||||
+MM0K6BSY&M4Q1/\^R5ZB<#`'BZ1KJHV!@LE\&)<,`$827-VNZ1PXSI0/%T;N2
|
||||
+M:'A7:2NQC\#-SZFY*DG.9SA'QL/C0XYFJ`..@)-DDV29VD5#RDE>]G8Q^3VW
|
||||
+ML)IY;;C3C--_D9B/%?0-[\A)B^]1S.A,'R5))?(UTRN%AZ[R=7^#1>8QD6;?
|
||||
+M\\>9'WS7+Q2MMQB$4G'&LKKE_5:P6VHX=!IXC/A?V!&;E12BA`S"D%5]>PD&
|
||||
+MLS[;Q-_NX\>E1,6!J!`.E>BKU-7><]ML_>YUY`*]=J1"%3^'=ZG#M`_=FP\5
|
||||
+M_1@U\L5HC!6/M^AK=6RKL$<4WMRZ#=/)WD-JE[^K[$5:2F,WF$W:PM9.*M4Y
|
||||
+M,1F3/&3Z4AKF[0P[+OYJE&NVX5N("$H-U)M)Q]U1O+/^/[+5!F0AOSIW)JO1
|
||||
+M-W"XB@\FPFF^^+'I5<9E=\R":I,J$XM:0Y$V!"D*0/[J>C4]94.6F>7>N3E^
|
||||
+MZS4N7`.VR=BDAPI]W\W2SM;LA4L[C%P*HES%0]GNJ_4,L#<[Z^]\A0P/G_9<
|
||||
+M-GJDQ,;U!M7+G$4.Q774HG@<3ZR^,@.(C5#=9R1V,1BJ>G;B^X1G8:0*J9PI
|
||||
+M0O;M#TOG'I,BH@=IM=C3M.?3S+JKI7#,9^+T0K`E=MSFF.*<'F(&]5Y[G99G
|
||||
+M$Q0MHQB/4_,W&S73.T(4?>X?VDZ)REP[?IQJS%,A"CV=$(_EC6+=\=C[AZ^L
|
||||
+MT6_?WU:<<"*P,*F!BTVR-7-UZ8R*<(0Z,?*JV<():T68@T1[:_##<>AN:?DT
|
||||
+MFK>X6UN;;41]M,=73:_5`8T)T.!>[ADD@M$)!&9DX4_BU5+'$2![3L[L]J^Z
|
||||
+MNB>(E(74J3W"%&E0J0Z!0A1"@K/[XD5C,*BGM#&WV3BL+08N0>"'P6\JH&%[
|
||||
+M_'ONYQUCK5P8Z@\6BSVU0/@G(./1*RH.1^?4F$S2GX":4R%3D!X_,0:@()!,
|
||||
+MX.-/LI6"D^5H9QOY(BMN;Y[FTCO5U^=_V]-005[^R6@N"H]!I"@*J2I9445_
|
||||
+M?LM+4&A$:4*A`@3/(K`5895(TB768N-]$Y",C9W-PTE8>7<6FSV_800?X^2Q
|
||||
+ML6'"\!JHI4"AC#]EJ"+343WC0<ZAD@1A"H"(J`@@>"P%!X6Z=Z+>/#;E\:3H
|
||||
+M*J9Z)ZHG?FL$!@@([X%`13X]*>3\4W=4+!:?80*1;@X_:7`V2$",%O%+Y;NW
|
||||
+MSK?IH.1]7FZJ%F6T;`NP\"[HC>M:RB9@9<!0@5"8`P*!0@1$`LLUJIW\LM)S
|
||||
+MF[S%QOO]V&GJZZ7=Y^!.7U#[F<<`H4I]\$##HI(@BL0*84T)]KZODY'.!>CM
|
||||
+MN5V'C^C]SZ+:[B[]+=^EM]A+]F_!\*>SA;M^^UT*,[^Z802/D8,&I$20.<B(
|
||||
+MCG.#[O,*QA>*F'Q/!Z_P-@_2/8^OT^"0@))K'@?MU`W<04B($7/6DU3`./KY
|
||||
+M:1.?^/Y_JBD3"%"(29.P4)IHI_DA+0R?6Z%LR#'D>>-RY]_<[&]";4S'N9LZ
|
||||
+M"Y_Z2\H5#%Z.7J?>2_*H\+?3*3@?E2><BI;"X*(;,/-+C,[=@5'(68`+PB!`
|
||||
+M#C_4Q&I:S[CCH7Y:*R(MYAZ3$#(('E4F32%9#TE.LCN?!L.UW0)R1?-163@K
|
||||
+MO!L)_7#I?&D`X'CGK&)`F`0($&-=4.70?Q[8?'Y'=?L7-;)4HWWPM+-;Q<?\
|
||||
+MPHWN=Q_5QAJX)>)5$*M1;0//-@K!L7>5:>)F4[WO4.>,LM,94O5/E$SMAZ>H
|
||||
+M\![?H>XT]I<WJ1C!D"Q\E)CXE^',%,QY\#?+K(L,A+-J!*'@`E7""M'JSH[0
|
||||
+MUB@AHPP#0@JTHUF+"76.<IL,-PG^56DB=_X26G4W"#V!U`"%2_G9](:V%<B%
|
||||
+M8D2#0B*R5^%$):,5*PP%)5UR0$23)=/4U*ZKG[YHVWO^<L\[K9S52*(GH-%8
|
||||
+M.AT9AJE>?,L*YE4(_XY&?7:=O,PS0::.'M8IM8F#)34%%76)^HW?:5.<Q"C'
|
||||
+M2:=*$+RR0P"&_NARU_58F=B!'.CV6U<3$SB/0]<\S`,Q`RYR@UGN_@3[D2$A
|
||||
+M2@\5)7=&<#+6DAP&6G1<Y0?K)I'^0?*I;KT-36H=7@XN\CH+O%4M8SN]0Y71
|
||||
+M5+6*G'.H$8AY0:/,=+=![_R=V&ZU[O#-+:+#/%EZM=YPV];`,V`I2IW'O-@:
|
||||
+MTR\CFZ#1#1MY4,,!/NLBSMLDH*+&FJ^>S=Y6&,4AE,AE@%G2V47(DXEPJT)0
|
||||
+M..PL_..*EQ<M%G=D73[G&VS+Y]`Y,;1*H49.QW2.+@L=M`K2F;+-E>-^+I,4
|
||||
+M56.:ST1Q#2EAT>"]%8+(?\>5O`*'!.B37T7>L6.7PW*[?5@`6%UD\A!('2L+
|
||||
+M.$R'/6!C>GKC#<5U,GN3M%F9WZDL`#J<E\*\/W>-4OYO1/K#W'8/.+L-B!CG
|
||||
+MX>C5+"2X.U^#\@\X%#M@H7^B?UMO@_`IC<6<>OX?O"ZMQ?_D-P]Z(A[$]Z_%
|
||||
+M+`/EE#J)UQ1L@*%@C[$1"K]>"A+B&;O@8'Q?I;)U?/;1OP=SD7<Z1,"Q'K2J
|
||||
+M&8*.,0G/J6["QSZC4H^$KDKMLP$UIEA7KG..+UK'S4LB]:_+Y2>X(0+@/D`C
|
||||
+M/D>5DIGL#VVM`4V40(D($48(AZH0`3N`(J^_Z7C^-$K2C]+3I-44+?CE2BE:
|
||||
+M#.]`(@$(E,*(A?*OS&D'J%0$X>>2#.C>W]UAB?==P[^@X@.USAH$4HVQ5N0`
|
||||
+MZODUS#,W(T.=7,.=4Z"1PJ7D&>!D_"SMO9HN>!IEBHY@LWU&4`A2C*%!*P@F
|
||||
+M8:NPEZZ1OJ+8!2PM4`I5D,(BM2`%DHF4@!@-D)G$G;9"2$@VMR@%5`*C5O"T
|
||||
+M4`BYZ*`8%I9>WMXV(`8>GP<;"C@H!&EW$,0`H)-61KVF4`"BE8`&6*P(T5MY
|
||||
+M[,,;ND@P0:%;$:!6,4@"?R*`@&(I`?/V.OR$P*:HNV,TP%#5A;Z`2JI_A9J'
|
||||
+M][V!`!.$/:?0EGVF8TSR<_YI`4.0%0RB(=X"A!$/`!0OJ`)50["B$$0M!0I0
|
||||
+M2"H11'R04*J-04+S-FYJBAX210"0]YV;<VQ?3JG\W</I?IJ?0;"&6#OQLOO:
|
||||
+M>I/?,69?B1'DF7D;]MP`1`).+&>KUBK4B?4=S:MC<=XWW$U4KM[G[J2EVCN;
|
||||
+M/@/-;<73F[?O[4P!0W`4.`%#R=[`2!W.O9K37>X]!V]56Z^)X;I9Q1+C!41$
|
||||
+MA)"20]?3*9`AEP?L?*3)N`Q3!3D0`LC0"E*)%1I%>]!0VP4.J"ALW`8GBTD@
|
||||
+M#L^)$P#&[CW_!W%E/`IFIAB>S2DGPA)&9)!F9F`A"*L=/@R,)LXZQI19P9&2
|
||||
+M15")D#(0,00(D`:\P,X<1RJ9G3.Q+U&^0G`B'FW@#<8A8&_T9K"I@@00;!0V
|
||||
+MFV+(\9;GZW-.K6N_:8*<.7D+*!;[0KZ.DM+/;Q1#DO]1P=U<X&3$<1$.0%"*
|
||||
+MH<`*'E@2@$0$5RP`1`-WN-,0AUS2828S:@01!X.]G)S7NM%=TJNDV/?;4LNK
|
||||
+M9==J]QN<W=-HVD=HVIY8(+3K@H5#U'4Q[`N.(E/ZR\FGLB#GL'$&0`SMZ<IM
|
||||
+M0''1*9&)%*8X2[=1)6&V:])@<X\`/.E:&%G2(^"PVUD9M`.6ZEG[0T*!?XE7
|
||||
+M*)NJBN5KJ^!WS"V*^K3[TX(8P@Q9C?XV^B!<F-!/`)_$P0<6L!@6\&;4)*0:
|
||||
+M&Y]1?6>0K$SDMIB"0,=)TI=B1D1`&1@9+]015`AUX.G%YCZTQSMP&.NF[Q2D
|
||||
+MLFF^%S/`X*6,"GT/\-3\<Q7JRJ4003DG:>I.+EJ[:-C*DVU%JVK?RT55HA5M
|
||||
+M=IL\W`ZX8X'%R6G6UJ($"HG#NPH6)[9)5#I>#661&#'.,(R#0BA?#,(=4P<9
|
||||
+MC849O*SG1$]L9,1UH*!1HCV=J7?)NP'\_L2T\!H*$(67:P!AE18K\Z$!Z8K#
|
||||
+M3<BJ0S<9XFVSY4)'@Q'==>**H"OOKTP&`WF3K!\@2',QTC=T"G1R-J+][XLV
|
||||
+M(+8U@=`1MFP\,V/E5"&F8=JAMA>ST4A8R]DFB-V.8J;>MYL^"G(IU)_!1T1S
|
||||
+M1ZKUQC]A"6W+L==(4)^N[[/IW.W'V>OI3ZQ3I)5#=,;"[4`WYH:H"EIO#QP]
|
||||
+MSLR@!H'@:TL;M]IPBL<^H8]HE8\TV##;I=QSPY_<XST^OOP\'_QP8U>]QF;P
|
||||
+MM/>O"3T)[*80=VMJ@'7HE+(S=H(%<+PY^)\@S<S(YO;%WJ,P^Q(GUFG48GD\
|
||||
+MSS=G`-LA=((YY8/GUFD`N^9-KZ<U.6L5,N0),)!"")LGCS71M,"L:S=[>]_<
|
||||
+M;HPZ-X4BF#W(*'(0`K;8HF.\+K,J(@7U(\$0%_L?>;GX@ZBQQ8+SQM-(KZ,T
|
||||
+M9C:"/-1$LP6-!UB!H'J`"Z[BU1&&*B])JICY7IM$"$[=1A]Z(`N00(;F^!CC
|
||||
+M5^P%&$;?H8DTT347F=$+184JB<Q,?@UJPRZEVLNV,M;F81Y6W*E@8F-@:UW+
|
||||
+MUCE\O;C^9QGZN\AOP.GI?,(3UYO5//\C5J\WO?ZOCGWOHGAO*2,@R&)`"9BU
|
||||
+M["+8KH`$+7&@&Z4>Y0.(9!0,+$N[M:9UZ'XN<E/AUZW;U/DPCMHB0"*]#D#^
|
||||
+M_VR]PLKFTC<0TYX!26Z*67#0#.`5B05(;M=<(K='`Y!WC;<K`NI[;MT+6A3*
|
||||
+MD`9\`(NC+0,%F#@A`TAR1`BB3V>^`PG`&KU$<SX&CQE>+X:VQP^/<A5[6J*S
|
||||
+M!/4M6\;"HA!RDBH@?3RBPKBIEH32=%7I;"K<Z0EZ_,I6[07?[4-:1=_'4[-S
|
||||
+MP9F-I"D)V=7>6EA!K$],NI#&V[..-H-1%"/>\UILE?@CGDZ_->"R,B!V.L@$
|
||||
+M\&)YAC4=[_/OLTGHN.\HM45P\AYL%3UTXX8UK89FA0IA!,I6./VBK\XR="PY
|
||||
+MX$>0E!].'NBXP53HL[#=M+887P^KJ$O*\J%%R3%HS53F3>PW"W)RE^0XP`&B
|
||||
+MX5S4FXKO7KFF=!'B*40SE(LCGE4:[%<'28D=N(EZTAK?KT,J8/+0;J:&KD4Q
|
||||
+MB[OTEDH1OBO+GDKUP8>/$/I/K&79VH!DW(/A#%O11Q,@?43>'>UDD\ER#*FT
|
||||
+M')J(=2J>5.VW66K+2X(DT)IN(PK1W!R2F&OY&3M18,?"*L,:G@I^8P.Q>&WF
|
||||
+M#.EZ:?20E*9N80_^%7)T<D'&5M0J$6&RB+T(USCCMKU739O\/1518<*YIG-0
|
||||
+M#65V@+'Y%U6DOF2-F>'JNIOAM2U8J7U%SQ!5SP<%>O\CD:[T#9<P6C))@P9F
|
||||
+MXA#D)&#<BYHDU%EY4Z)&<30'1LTC]25P84V4D'%1LVS6@>,"[%5=`GHARQIT
|
||||
+M%\QD4*(FQ4)1^"94)MT,<05.QG++X<\&]/K$6S/WCS493!P1"*-:=F<4IPIN
|
||||
+M/+HA_?]9K12Z4?9#B^ZG``&8)YPC&'J`:.$+6*I=A&GX74>)[[HP]&G1Q'WD
|
||||
+M&I$34#4[D:E&0X>6!PZ:3'B0^W>(,D=*^/92`7Q>Q9-VAPUEQY3OTL_HZO#;
|
||||
+M>#LA+:6P2J`"-2V,RA8$1Z7F[]*K)3,'CQHY$78K\B']@`8P%]=;,/U'E7#N
|
||||
+M*&)X?MY1EQ%FK,8H:9K><W!,3A+XJ7WC>;;!S?'N^@'EQ,87%WG+>)!%3C>!
|
||||
+MPG)6ZNZG!P'@4%04Y;)`BM,$\7AB]3RL4:\XW7W00(".LJFSTKGT*M2TN^L7
|
||||
+M%@0`B`(A<`$"(1N!QX5FD<SH=5450P&>\?@KO;H<;O.81WCXCX0Q*/U9@/0C
|
||||
+M%(`V()O@A7*8\:4@&#F)EC0I05R7\PBCBCE#2XF,#"KCFN@W<DX")&7&2Q%U
|
||||
+M#O13N<&2B9&HDMZKMM0,]DIS60L1JBKZ01&R=S*!1\9-8U7.?SM9E<+5'C]>
|
||||
+M>X>>N2Q1:\ZY(2F0,Q?:''2/&A[N9<9W,W"C.BFA"X6`#S/>PH?FQ$NZU?L5
|
||||
+M:%KJY31\`:46RYB8<C4G8&[Y>I12>4+@=KUF'V84*AZ9)<=+3`TMQSW!&4&1
|
||||
+MOVK3F)P\F'+M>@6I@UR)FR&V&]@54]WN43U=;>HIBQ14'9V"IBLL3##*Q],)
|
||||
+M]QWNQWGS@"VU^,'ZK(O"&XX73+[$P:JK;=PJN[)<HRDVO8<U1[*Q-UY0SL%'
|
||||
+M/WY"1A*,7:^X[^'K4RX?([G;.-QYYN`'K@D#KM8RHW,O:;&,_:T"^M`+*E*E
|
||||
+M+79L^KAV(>=#R\,!3RVIIE4%#$M#M:[T;+*^L[L\_E->?;7GBTF.WV'SA^,C
|
||||
+MI_(U5I*^F0K_A\E2M,7C("1S"";,76BQS-J0\@"(!@A7K8LPYTN8I$"81B%1
|
||||
+M`2=VC#?M08HPA"!^5`AU)@H2LH%WI7IIQW$(44H5I@A&_(*0&2]9BH$/S424
|
||||
+MA[ID(4F0PG+%CL8%'F96&M\T#-$984"5((`<NZN89TN`%QI6,JR;F?(Y#K];
|
||||
+MTW,[F5"RU555SJEF<,8,<G[#W?6<[YKPOF/&LPZ32F8Z1HT>GI9O\^J`G)"3
|
||||
+MF$F&UPO%T7I"-_4@?=<7448N.,D(T:\SOC/B0Q[.&;'-BYP3#<._R"(7]"@2
|
||||
+MB;[:-2ACE"YUZ)"\@RP@*&P7C0%#GO?PG1<VFPRE-.NY$NW7,W!;O\J3[+KI
|
||||
+M4Z-E)T7A["ERR(`0@6'W$QV])]<:,6/5R*`)ZX%"Y`3KF9>Z($QPJPJX;0J%
|
||||
+MM77KK\]``=R#J10T14"4D%<\6L+ME\?UG3^>^5U.OD!0]L0`3B!0@@KR<9-P
|
||||
+MXQ-;L=B_?>*S;KP@@@<.\Z#.-M"Q%IPM$S$,EA?"(H)'AE%@E>(`38$0KENH
|
||||
+M]!A=)P]Y_=LLSAE$R%+").Z_8;-;K9`DT\WCWG0Y"P]#];[*TR"=W$V,V91A
|
||||
+M71,P*$:G9H`TMG,HETJ\/!38KNF;OK\P*&5H!OJJO>I!4(\(*&-IF"F@%#?:
|
||||
+MYPX,&FHI(<=[S*;`*%B<R!K\*VFQX6WU[K78U-Z*&LE9"8[6N1=@I0I:6BU*
|
||||
+MDZZ;!:UO34V.1L-QA5R@8UP=L.`*9/85?J_JH!D`1'SD(B!#-P*C!$NG>V3+
|
||||
+M@P&<#C!ZMB!2%%`=4,*!O.H4S#`@H%NK\B\5#*>?XGQMCF8W'\*G4SGM?J3$
|
||||
+M.[`K2U%`44!BQ&16V,KX'0*3KCCC(@8G90&TX@*';F\]9.BEPZ+322R/-M10
|
||||
+MR5`$IZ@@N9>,I984,W=;)`QC)JX*%<D70I#0,L/'L#HP'.DM!0M!0L=C5=''
|
||||
+M14W+0!*UU''>>Y?0&'-AM15=<-%!(&;ZK>!O.*&]IL/,LNP44\D;(=EVWGN.
|
||||
+M<:*;Y.R9TN"O:[A73N%1/,)PN)6#(&+%6B&Y"2A!;:[G-0<O!LKJ]=W&^;>(
|
||||
+M^-\(=F/B/>'L(+-)POFTHV%?R5\SNC[ABBN!J7%-YELS%@L5(H5@58P5D`B`
|
||||
+MQ/D!-HQ7,::HBH&,@RH3&"0PAK<0`BHRSV)WVT<&3@">YM+7(7/6<0U33JH%
|
||||
+MFYS:'!VWP`!*]J2!E)"0B0B*((HQ$11B/WIB!1L2$UPD9"-3(1C`4W^Z@.T2
|
||||
+M$RV=VM%5165C3(]7JSZ`N=#Z<"=NM9G/\83I['_K/4_HWCFKHWV:J:Y?Y'7A
|
||||
+M?DI$1`BM`$0%(``A]#ENPDS3Z^)MN7]3\W6%<T-&>.*Z'<&R.8+:@@0!@(0%
|
||||
+M"09`0($!0@H)Q;WT=+2$%0GCY,%<C811E_?+U:6R.#+0NHZS]YRS=_SY1%7^
|
||||
+M5G?HC\/?M15/RPB@`/!S,N^=WR5*':Y8?')V/`\/I/*RLVF#JS#JB:"[02*`
|
||||
+M(@,L`B`8VC"`T1V#0(X948JAZ&79='7Y?9/I#DH9\FJ9FA)"2LKEYN(?4URS
|
||||
+MK.S,^\-'K^>V.FV#8+C555,5:JE1I*&A64J4TRPD#?A"`A7A?E=V;H^5^.-Z
|
||||
+M6;9:`B>RV7/ZWMF<\GFAL7@"0.W=<"A9CT-E%!,43[^,@)S]'FB,H9"!IZQH
|
||||
+MH1S!EM)#>P@B%+J@H=P:#%`(H!&-^E\:4(U/%V"IIP!0VP4,!8N3#&7E(4*%
|
||||
+M)0E+QR`H8:"X`T;-Y?41POCSN=O=DYGW<]63['4"AD9$])!#N0$%Y%49R1H]
|
||||
+M6*"?%YJ!HJ9E39'VPG`9;O/EH#D8L95,.A8F&DHX/>60794`1,M0S,&B"%^>
|
||||
+M[P>L"]1T,P1:P($'TD0"Y41OAU@4,@*&P>W@],!U&R'%CMFQ:HY5&CU!-N[:
|
||||
+M:`]:H6HH)F;`H[WL[.Z[\^9ZZ[8.CHFX(ZCAF4T3E@H1&D:F)3>UXW%).3O]
|
||||
+MRT3:,VU>!F(A42\]S]WA?`OT/W'0ZPB&3&:)2,V*VM25/IZA($,I-Z0HI"08
|
||||
+M-.R5&JC:35G(%UE`@`EGDP"BC`(HW^#4+@4(!-L%"/8+F@V"(0E!$*(9H2M"
|
||||
+MHP<I@(A3.EH*%/A10BIZG)RGTY"X'GC!0"*`08_BV;4):=,W*'1$>D"AN&["
|
||||
+MHYN6'+C&PP%&S;A:II;HDMNP,&X`2"C<T`$\BWO'G`H<X1#048]X,!(!5';5
|
||||
+M9!`7Q65`NR`#)@+Q?`%PB!9N'JL.24`"=TBC8<^264I[CX?H76/"[!!S/&:.
|
||||
+M%X#M7\\`373'H-'>@&373*.8%#/6+@=`;!$.`>9,UQMY*T*=9H'VFCSJY7!1
|
||||
+MH?-G*<O,SZM)H[S5ACLRWLNC#>%!;>7G+:^;0H7;MI8I6M-//XE"IS@R@H7E
|
||||
+MY\2C1W-"$VZCS`4,FYEC"$C)Q.UJUX'<V"C-8*&,!0P.5E--UX7@*&H.B;%0
|
||||
+ML+&6EQKHA_$SSME2NEX/@\11XBG.X,`4--8G3ED+.WP7^'FY4Y7)CEWI**H9
|
||||
+M44)PT)$0/,^UQZ'N/X]?+\725]GGS$W`4(.Y4IXFLYV[SPZ/.7ID;*W5,DZ7
|
||||
+M6NO,9"[`%LY37W7WV2T8:.]H"AB:H&G4F3,'3ADO=?%))6R;'4M$0U]M1N4<
|
||||
+M,V)O"@MH*''QS7D)N`H?*TZ#32Y1#:TPJ%X*%502"V(;4JY>2_3P_3?C7Y81
|
||||
+MP,^I,KDUEX*'2RG3Z1TR=K[S57UI`^G-6<@AIA:KW**=FLHRLF,>RE9I:;CV
|
||||
+M4C_OU2_?Z=CQ.71PKA'F+1J.K@V'#!L0F\Q=I##\/`0="-8S0ZE_`R/TQ<ZV
|
||||
+M&3,_K3)<4$0*N!0XCG>F'CHT4`W8<[TPTZU!0+[.[FW,VK1354`PU6:N@I$Y
|
||||
+M1)%S)K0='IB5-T]&)5RK!@S/9"_3E$4!NNR>F!0@9T1/(CV^`DDA/[34!0RQ
|
||||
+M%#(P6<\X#56L2%-:EHOT6QP7!X.0;!#X&/ASC>:8LLPWEBS*LKKB9-)5-!59
|
||||
+M;6UU`W:U?"X$VMI5J-"JJM33NIPX&OL!*OGM;9XNSKN6C=V;OA4M:TIL8[8*
|
||||
+M%^J)980DA-L3E:P4-XO,2W1]3!ORDA(8FT"AA0<T0`B0@@$AD<IIX]K7)))?
|
||||
+M<.[GHCS^J;>@TH(;+`IJ,.ZW<J;D-%3:3/3Q\*J;-,MSQHN:?A,B!F[43+*A
|
||||
+M3T`NL]D$+W",F=1;?[324]FE`>.(-U!^J\((H=5D)E'S]CYGC\FGS[,.=D#,
|
||||
+M(@6/J18(LK%TQ`B`(48]'1WW<%0RDAXIVF(Y#P3)VT/;XM<X*$(=^2K1'24&
|
||||
+M55^C@6F/V]WOI]OR"@NK\CN)K%SO$([H`B`/5XM7"(&62-<CT\*JF+[2+_WG
|
||||
+MKXK0J9>?VC8[E<)6]2F'B^O^_4N,>`RGOW`@G[W'RU`?#%[PDA$DU(]^8A?^
|
||||
+MDQ/MS"1D8>ER,>3H3/'H7"ZZZZZ8`23.A,Z?;PB*/NR+C\>IA[S;IO[X\L(U
|
||||
+M*8+6$!40?^>X!1K^-^)7O8>D0_%NKYCSH<TR'OLV.OQ`4@X0_2\83>ZS]:)(
|
||||
+M#/7AQ%$8&:1AS>,M=[MMCGM6%&D&#F`2`,8!0\5[J>,"A_;L#]"=R+AE/7]C
|
||||
+M8_=MCV(DO(2>>\_GL\JRX/G?045JAA`"?.G7@>0?@4#[;Q3V6/>^I+CR_SZ/
|
||||
+M,QH'S_0_0J>U@>)/_$/5:-1JY7&7'UTX3B"P`2@J&]3PK1Y37045.-[&RU@C
|
||||
+MRZE!QRM1S7R%'CX/#[_R-&9Z3/H$A9[*ITAY+H87N/MQ^XRSN=4GN]8J"*9T
|
||||
+M4R?\IT_Z'OD_W1@',I\5%O.?>V!^_>KA%_VPS55;10&&]E*IK?KLI,/7_/>L
|
||||
+M^UO:R&]I_AK"3J<UAO"':52CZ0SHW&=@[_]DDT5E69\1(RM#Y('517P>+\;_
|
||||
+M27^:>[[K:'0_IRO#AY]*0D\W_]V,W?7WO7[;][\4N]4J;74]OKR<YX+,3HS5
|
||||
+M-^>#I("ZF)[\D.+7[JW<1M_S+T\R07]^.GHN2N_V9W^UAH/?M6L(]G=;K8`^
|
||||
+MNGF*OQV7S(P>`QF$K9K.8#_/:_`86%)Q#=W]L'PKE*TZ/Q/>W0X:[]Z!=<AP
|
||||
+M[M,3V:G65?K3L9DD?V^Q*VB.OE[QI9PM'#=^<;.7QLQSN>MVAGZ3XE<T)#Y?
|
||||
+MF*H8QF?OJ!!W!F41S*"'QE"1;W2$G@CFMLBQZBT?S1KV.)RT(3((Y1TN%]N\
|
||||
+M[?\DP3J"1[<&#L#@)<<.!W^8K$$/A-T3CHK\\@8_A2\!>^R4@7Z<;!&Y2#\_
|
||||
+MZ)!2!?*E\$B%&8XI)1DC5[YX0Q.D!U5!X>T_#9.<7W8\W8*\2(#[7OKPL/%P
|
||||
+MMCZ'U_NJ)T\='S>((D_7A^ELI=U(3,[P-9[+TT'PWDE'"$\!X=_\_).ROW^?
|
||||
+MC=.S-W,8.>T2CBVG&3T>S'H/R<V,(]17Y\?Z9949J%A>==M"JX)?-VOP7GM-
|
||||
+M?2\':;;5N;OB<3>9^20W4&3S:/LW:AA<AG0Q/QE^%$C9;^YY5[*/TX4]:U)+
|
||||
+MR.=ENOC<%J+`\(2[L7FL9$7U_UQ["R"69C;JW556R,+O.,RK&&>RVH-G6TXL
|
||||
+MDV\!)L(@OU(`.H@8<80FQRK)$PE(T\YV=T-QZICXH'U:!W.%:XYY4M:_.D`5
|
||||
+M6YB":A=D94"H`(#`W"$#%A,')0]-U:>&S":X@W%\BOH3^V+%,$"HQKE""HB-
|
||||
+M0A!C@V((WR@$O#G3>I#[/G[2P@U&5UR47BO1?WMZ5$;Y`0%V0?IONU7!O;OQ
|
||||
+M$->N4W#HL,OL_MU_I-KT.>\Z;3O>4:*LX#Q,&CM7">7Z$\6]4ZMY7I=NTYM%
|
||||
+MZ)IY48P2K*WEJ^2V-(B`/`IKS(?6MQ2E'=>U[*5&>8($I,!YRH*,FI%59T3G
|
||||
+MCT@9#11"[,IUXXTZJ=+@L^BO,#!,@8`B,,'D:[,(IRKJN!N(PCUN7ETFMNQ>
|
||||
+MT.M,<5L4#9FB*%?$W!57FM?/^ZBA@2T-7E"Z%F;\[:8XR0<6)_+$E*H!FF8.
|
||||
+M-XG<(8#8^U:S%08IU0*`6B3A$>0E<[+<ZK@N!FS4:YV48;0PM!EH/5%A[CMP
|
||||
+M$&^(`B?L%`P>JG_>:@;>-`Y1E`&`8=(RYUE')]1`TYY(A:#RB0FG3$PE+)8S
|
||||
+MGU.@!,R[6^+K@E&1>47'U:5Y9^H"9N$SLJ5J?%:_%JV9"PQ"#C%I;C:?MTG)
|
||||
+M<_+^*U#T[J#O`$?NA$H`J5@CT><;M?J"+89:J5'/N15EU7F7>F1"I0/G+">Y
|
||||
+M3+-@8%+J^"D)LAGHE1:IW4%D>L70=!S'KQZ=T/&:X3,<[QS#1;Q0:L.Y4(WR
|
||||
+MIS8('-XK,_=EA`C,5^$HZS9@[X!)(&TP;5L0+F9IIL:86^R:&;<$8IY<9"=$
|
||||
+M980D2B%BWIQ8MF1**D<C'(B(H>]I;;CK69[X^A0WPLO@0K_*(X]F;<'PTXE7
|
||||
+M=W36:V(H)-<H3-9VJ2*8<)R3>CY_U'(8WEH]4NH>1WYRQ+BR</?UNR'F7?3D
|
||||
+MMT2R'C%XN48K6]_0=R98O.?AXM=&"^,8F;?1F5KU"<RW6$%"J"HU6`[)>@4%
|
||||
+M$1U.K,)S+4!]61]+Q!Q];=1<:0H&&9F^&`@320!JS8'6STZ[:=E*IZ;&BDC7
|
||||
+M0Z/7-5O>MY:IK*BM/5>;X56^9&U^#42.H)OFI54HV1)`TJC7_B33GAVXJ]7O
|
||||
+M;?1"OI([IPP,[MV,/M;SJ$X)F]1/8&A&510:&ID)5D![*U)9=_1^5X(."9$3
|
||||
+MAKAD3Q"G(58]/R>7K9'EWM'SQL4<(VSXPXG5&YKMU-_C3ND*S57\G4:0+B9,
|
||||
+MJ5UN=Z]5!0TZS\:=[S.J>H-<K0YH6-N7,(0P<'BJ!U.&WQQQ+M=8D`JJ%TC`
|
||||
+MV8O[\4"(>)[0]<R`YSOCG4S:@B1`=(&#*9Q5"$!`TZ\[P<5B!VH%*9$H@-=[
|
||||
+M@OO8,]4"KEF@KLC'OVU1@TC.JJ5E+%4@H:S!+"N5'H0`/I[O@]/6&@/E8.VK
|
||||
+M1A8',GW)\Y&$!8FA`9,)%T=LD&Q69%/J(]AM-J[P;/M==J8K$*&@89V&ME8"
|
||||
+MND7RM#$V]AD=V*V[6[S=23=Z!389@HD9G;3JULY3B57)>6K0B-@S.BC387!M
|
||||
+M$S)!YJMA-!`JT[;'[Z^+^[0R-)::%H%<W@K)X=V]%EM'[L1N-/H$+/ZPK=PZ
|
||||
+M90IF0PY)Q1"6)NO=H,!ANF>GHKM=7G#8VW_]:.U^;<&A9&M/6UP?W""!BY%`
|
||||
+M#![EE,U-#7?W49=0ZXLS<=KZ:P-?Z3.X9G9?7W,9U.N2TLZ.@I-#Z@G7\7TV
|
||||
+MWHSA0AEJ*,1,`G^Y-'RV*AEKF,/?,:P^UZ&F<"J&#J0NMG0&<\V@F>9R#G`8
|
||||
+M8"2$M4:2?X:&&W[K8\*=>CQHL8G]'<]@CN1F#'"X-ZO8\(=;X+BJT=]2+C:H
|
||||
+M4PL_D99">XRIU6^@S@B;6=;A"S6J!DD&;F8.@CY3\G*1J,;<LF7<C4PQ,D/U
|
||||
+M<-TY*?E&G^YK2P,`]W0X8'Q->%1,\3U?C65;#&*>6O<Z/7LG$Y-:=(5M<>E!
|
||||
+MFVJJJM,IDRO),/K661%M4\6#1,IBT04O9HXN64;!]\FH*H#<46AK6%-'LCF9
|
||||
+MR+1L24TY4/W_$$4`;*4R6-)=-<[!3VX70!7=GKY%5A/>5U.!K<CQI^/OK%BE
|
||||
+M6S8>P4`/<AR`HXY(>^X".'H%Q?;P',T8(,[(O1T\\K!%">*#TZ3L)AZ$/:3#
|
||||
+MN#L_''38,`!CF+]:(8[7>H+[G4L`8'8$'2;(;A-TB>Y-?`Z0SHGO<-&]>=?1
|
||||
+M.%\D]#]-"\?6"0!S,$=]"\WZJKFWW+0,KN8@H5#,P4JO+2[I8+)K.GE;OZ'7
|
||||
+MW6^-;6=X]"-%4;W@V9C.#*N(]M'VAWIC7&N_#'E;W?3^T'>]-2-X=9B^4;U\
|
||||
+MT'*-(H-.>>8:,Q(3.V46OUD]TQT7D-PM+!C5]1&$A5_.0$FU.WL(&AB[^J(W
|
||||
+MC9_.U;3@%I%C#)%M;R_(%(ZBT`U7Z%$^2K53FF"->R$&0GTQ1HJCRC*ZNL1@
|
||||
+M;F!0>FK6OK[E(YYHF^=GYS,F>9DC+2@>J2@N@/>\BL^-6Z=!H*-?OLIAZ_NK
|
||||
+MLDN"E,GB8]*I2!;=UH7JBS.6AF88^:>-ZOR=_N7A"M\B,YE=CK<O+*-R,X#L
|
||||
+MY9<)!(/=I<-GKYE)T>V?B(2%+;-$FTH0P@=0=)7(@D5HIYCOV$EW.MZP_:HB
|
||||
+M&,OED]W=BZGUITM#NKAC8,`1SO"V/<*,?4Q+AGF/V=O(_QZ9Q08'TG;(.%W>
|
||||
+M3QI"^R0+9F25\+`V81V6@)V/X&8HAATY-]YTO.V[=I1-2`X6_"5%@0JCBP0?
|
||||
+M!4@"!(7#-S*G*12#Q7ISP]OR(^?&&48%!EP>;\@B($4F'_XNY(IPH2!)0!**
|
||||
+`
|
||||
+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
@ -137,11 +137,11 @@ Content-Type: text/x-patch
|
||||
Content-Transfer-Encoding: 7bit
|
||||
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.11.50.20160716/gdb/alpha-tdep.c 2016-07-16 14:35:47.511519788 +0200
|
||||
@@ -299,17 +299,17 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/alpha-tdep.c 2017-04-20 23:12:07.894566371 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/alpha-tdep.c 2017-04-20 23:12:11.228588703 +0200
|
||||
@@ -300,17 +300,17 @@
|
||||
{
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
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);
|
||||
|
||||
/* 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;)
|
||||
{
|
||||
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. */
|
||||
if (offset < sizeof(arg_reg_buffer))
|
||||
@@ -442,7 +442,7 @@
|
||||
@@ -443,7 +443,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -183,11 +183,11 @@ Index: gdb-7.11.50.20160716/gdb/alpha-tdep.c
|
||||
memcpy (arg_reg_buffer + offset, contents, tlen);
|
||||
offset += 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.11.50.20160716/gdb/amd64-tdep.c 2016-07-16 14:35:47.512519796 +0200
|
||||
@@ -729,7 +729,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/amd64-tdep.c 2017-04-20 23:12:07.897566391 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/amd64-tdep.c 2017-04-20 23:12:11.229588710 +0200
|
||||
@@ -735,7 +735,7 @@
|
||||
gdb_byte *readbuf, const gdb_byte *writebuf)
|
||||
{
|
||||
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 sse_regnum[] = { AMD64_XMM0_REGNUM, AMD64_XMM1_REGNUM };
|
||||
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);
|
||||
int num_stack_args = 0;
|
||||
@ -207,7 +220,7 @@ Index: gdb-7.11.50.20160716/gdb/amd64-tdep.c
|
||||
int integer_reg = 0;
|
||||
int sse_reg = 0;
|
||||
int i;
|
||||
@@ -893,7 +893,7 @@
|
||||
@@ -899,7 +899,7 @@
|
||||
for (i = 0; i < nargs; 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];
|
||||
int needed_integer_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.11.50.20160716/gdb/amd64-windows-tdep.c 2016-07-16 14:35:47.512519796 +0200
|
||||
@@ -288,7 +288,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/amd64-windows-tdep.c 2017-04-20 23:12:07.897566391 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/amd64-windows-tdep.c 2017-04-20 23:12:11.230588717 +0200
|
||||
@@ -290,7 +290,7 @@
|
||||
struct type *type, struct regcache *regcache,
|
||||
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;
|
||||
|
||||
/* 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.11.50.20160716/gdb/arm-tdep.c 2016-07-16 14:36:30.328864376 +0200
|
||||
@@ -3443,7 +3443,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/arm-tdep.c 2017-04-20 23:12:07.905566445 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/arm-tdep.c 2017-04-20 23:12:11.233588737 +0200
|
||||
@@ -3492,7 +3492,7 @@
|
||||
array). Vector types are not currently supported, matching the
|
||||
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,
|
||||
enum arm_vfp_cprc_base_type *base_type)
|
||||
{
|
||||
@@ -3526,7 +3526,7 @@
|
||||
@@ -3575,7 +3575,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -251,7 +273,7 @@ Index: gdb-7.11.50.20160716/gdb/arm-tdep.c
|
||||
unsigned unitlen;
|
||||
|
||||
count = arm_vfp_cprc_sub_candidate (TYPE_TARGET_TYPE (t),
|
||||
@@ -3549,12 +3549,12 @@
|
||||
@@ -3598,12 +3598,12 @@
|
||||
|
||||
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)))
|
||||
sub_count = arm_vfp_cprc_sub_candidate (TYPE_FIELD_TYPE (t, i),
|
||||
@@ -3578,13 +3578,15 @@
|
||||
@@ -3627,13 +3627,15 @@
|
||||
|
||||
case TYPE_CODE_UNION:
|
||||
{
|
||||
@ -285,7 +307,7 @@ Index: gdb-7.11.50.20160716/gdb/arm-tdep.c
|
||||
if (sub_count == -1)
|
||||
return -1;
|
||||
count = (count > sub_count ? count : sub_count);
|
||||
@@ -3620,7 +3622,7 @@
|
||||
@@ -3669,7 +3671,7 @@
|
||||
int *count)
|
||||
{
|
||||
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)
|
||||
return 0;
|
||||
*base_type = b;
|
||||
@@ -3701,7 +3703,7 @@
|
||||
@@ -3750,7 +3752,7 @@
|
||||
|
||||
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 *target_type;
|
||||
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.11.50.20160716/gdb/avr-tdep.c 2016-07-16 14:35:47.516519828 +0200
|
||||
@@ -1195,13 +1195,13 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/avr-tdep.c 2017-04-20 23:12:07.907566458 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/avr-tdep.c 2017-04-20 23:12:11.234588743 +0200
|
||||
@@ -1191,13 +1191,13 @@
|
||||
|
||||
struct stack_item
|
||||
{
|
||||
@ -323,7 +345,7 @@ Index: gdb-7.11.50.20160716/gdb/avr-tdep.c
|
||||
{
|
||||
struct stack_item *si;
|
||||
si = XNEW (struct stack_item);
|
||||
@@ -1289,12 +1289,12 @@
|
||||
@@ -1285,12 +1285,12 @@
|
||||
|
||||
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.
|
||||
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.11.50.20160716/gdb/bfin-tdep.c 2016-07-16 14:35:47.516519828 +0200
|
||||
@@ -502,7 +502,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/bfin-tdep.c 2017-04-20 23:12:07.907566458 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/bfin-tdep.c 2017-04-20 23:12:11.234588743 +0200
|
||||
@@ -504,7 +504,7 @@
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int i;
|
||||
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--)
|
||||
{
|
||||
@@ -524,7 +524,7 @@
|
||||
@@ -526,7 +526,7 @@
|
||||
{
|
||||
struct type *value_type = value_enclosing_type (args[i]);
|
||||
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;
|
||||
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.11.50.20160716/gdb/cris-tdep.c 2016-07-16 14:35:47.517519836 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/cris-tdep.c 2017-04-20 23:12:07.909566471 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/cris-tdep.c 2017-04-20 23:12:11.235588750 +0200
|
||||
@@ -663,13 +663,13 @@
|
||||
|
||||
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? */
|
||||
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.11.50.20160716/gdb/h8300-tdep.c 2016-07-16 14:35:47.517519836 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/h8300-tdep.c 2017-04-20 23:12:07.910566478 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/h8300-tdep.c 2017-04-20 23:12:11.235588750 +0200
|
||||
@@ -637,7 +637,7 @@
|
||||
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)
|
||||
{
|
||||
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.11.50.20160716/gdb/hppa-tdep.c 2016-07-16 14:35:47.518519844 +0200
|
||||
@@ -991,7 +991,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/hppa-tdep.c 2017-04-20 23:12:07.911566485 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/hppa-tdep.c 2017-04-20 23:12:11.236588757 +0200
|
||||
@@ -989,7 +989,7 @@
|
||||
{
|
||||
struct value *arg = args[i];
|
||||
struct type *type = value_type (arg);
|
||||
@ -448,7 +470,7 @@ Index: gdb-7.11.50.20160716/gdb/hppa-tdep.c
|
||||
const bfd_byte *valbuf;
|
||||
bfd_byte fptrbuf[8];
|
||||
int regnum;
|
||||
@@ -1186,7 +1186,7 @@
|
||||
@@ -1184,7 +1184,7 @@
|
||||
struct type *type, struct regcache *regcache,
|
||||
gdb_byte *readbuf, const gdb_byte *writebuf)
|
||||
{
|
||||
@ -457,11 +479,11 @@ Index: gdb-7.11.50.20160716/gdb/hppa-tdep.c
|
||||
int regnum, offset;
|
||||
|
||||
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.11.50.20160716/gdb/i386-darwin-tdep.c 2016-07-16 14:35:47.518519844 +0200
|
||||
@@ -163,7 +163,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/i386-darwin-tdep.c 2017-04-20 23:12:07.912566492 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/i386-darwin-tdep.c 2017-04-20 23:12:11.237588763 +0200
|
||||
@@ -167,7 +167,7 @@
|
||||
|
||||
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;
|
||||
|
||||
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.11.50.20160716/gdb/i386-tdep.c 2016-07-16 14:35:47.520519860 +0200
|
||||
@@ -2664,7 +2664,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/i386-tdep.c 2017-04-20 23:12:07.917566525 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/i386-tdep.c 2017-04-20 23:12:11.239588777 +0200
|
||||
@@ -2682,7 +2682,7 @@
|
||||
gdb_byte buf[4];
|
||||
int i;
|
||||
int write_pass;
|
||||
- int args_space = 0;
|
||||
+ LONGEST args_space = 0;
|
||||
|
||||
/* Determine the total space required for arguments and struct
|
||||
return address in a first pass (allowing for 16-byte-aligned
|
||||
@@ -2672,7 +2672,7 @@
|
||||
/* BND registers can be in arbitrary values at the moment of the
|
||||
inferior call. This can cause boundary violations that are not
|
||||
@@ -2697,7 +2697,7 @@
|
||||
|
||||
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)
|
||||
{
|
||||
@@ -2689,7 +2689,7 @@
|
||||
@@ -2714,7 +2714,7 @@
|
||||
|
||||
for (i = 0; i < nargs; i++)
|
||||
{
|
||||
@ -501,7 +523,7 @@ Index: gdb-7.11.50.20160716/gdb/i386-tdep.c
|
||||
|
||||
if (write_pass)
|
||||
{
|
||||
@@ -2896,7 +2896,7 @@
|
||||
@@ -2921,7 +2921,7 @@
|
||||
{
|
||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||
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
|
||||
|| code == TYPE_CODE_UNION
|
||||
@@ -3718,7 +3718,7 @@
|
||||
@@ -3743,7 +3743,7 @@
|
||||
i386_convert_register_p (struct gdbarch *gdbarch,
|
||||
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
|
||||
formats aren't expressive enough to specify the locations, so
|
||||
@@ -3751,7 +3751,7 @@
|
||||
@@ -3776,7 +3776,7 @@
|
||||
int *optimizedp, int *unavailablep)
|
||||
{
|
||||
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))
|
||||
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,
|
||||
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))
|
||||
{
|
||||
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.11.50.20160716/gdb/iq2000-tdep.c 2016-07-16 14:35:47.520519860 +0200
|
||||
@@ -646,8 +646,9 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/iq2000-tdep.c 2017-04-20 23:12:07.918566532 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/iq2000-tdep.c 2017-04-20 23:12:11.239588777 +0200
|
||||
@@ -651,8 +651,9 @@
|
||||
const bfd_byte *val;
|
||||
bfd_byte buf[4];
|
||||
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. */
|
||||
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.11.50.20160716/gdb/m32r-tdep.c 2016-07-16 14:35:47.520519860 +0200
|
||||
@@ -685,7 +685,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/m32r-tdep.c 2017-04-20 23:12:11.239588777 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/m32r-tdep.c 2017-04-20 23:12:30.385717023 +0200
|
||||
@@ -681,7 +681,7 @@
|
||||
CORE_ADDR regval;
|
||||
gdb_byte *val;
|
||||
gdb_byte valbuf[MAX_REGISTER_SIZE];
|
||||
gdb_byte valbuf[M32R_ARG_REGISTER_SIZE];
|
||||
- int len;
|
||||
+ LONGEST len;
|
||||
|
||||
/* First force sp to a 4-byte alignment. */
|
||||
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.11.50.20160716/gdb/m68k-tdep.c 2016-07-16 14:35:47.520519860 +0200
|
||||
@@ -382,7 +382,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/m68k-tdep.c 2017-04-20 23:12:07.919566538 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/m68k-tdep.c 2017-04-20 23:12:11.240588783 +0200
|
||||
@@ -377,7 +377,7 @@
|
||||
{
|
||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||
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
|
||||
|| code == TYPE_CODE_COMPLEX);
|
||||
@@ -514,9 +514,9 @@
|
||||
@@ -509,9 +509,9 @@
|
||||
for (i = nargs - 1; i >= 0; 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
|
||||
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.11.50.20160716/gdb/m88k-tdep.c 2016-07-16 14:35:47.521519868 +0200
|
||||
@@ -257,13 +257,13 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/m88k-tdep.c 2017-04-20 23:12:07.919566538 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/m88k-tdep.c 2017-04-20 23:12:11.240588783 +0200
|
||||
@@ -254,13 +254,13 @@
|
||||
{
|
||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||
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)
|
||||
{
|
||||
@@ -305,8 +305,8 @@
|
||||
@@ -302,8 +302,8 @@
|
||||
{
|
||||
const bfd_byte *valbuf = value_contents (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))
|
||||
{
|
||||
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.11.50.20160716/gdb/mep-tdep.c 2016-07-16 14:35:47.521519868 +0200
|
||||
@@ -2272,7 +2272,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/mep-tdep.c 2017-04-20 23:12:07.920566545 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/mep-tdep.c 2017-04-20 23:12:11.241588790 +0200
|
||||
@@ -2262,7 +2262,7 @@
|
||||
|
||||
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)
|
||||
{
|
||||
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.11.50.20160716/gdb/mips-tdep.c 2016-07-16 14:35:47.523519884 +0200
|
||||
@@ -455,7 +455,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/mips-tdep.c 2017-04-20 23:12:07.928566599 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/mips-tdep.c 2017-04-20 23:12:11.243588804 +0200
|
||||
@@ -474,7 +474,7 @@
|
||||
mips_xfer_register (struct gdbarch *gdbarch, struct regcache *regcache,
|
||||
int reg_num, int length,
|
||||
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;
|
||||
|
||||
@@ -478,8 +478,8 @@
|
||||
@@ -497,8 +497,8 @@
|
||||
}
|
||||
if (mips_debug)
|
||||
fprintf_unfiltered (gdb_stderr,
|
||||
@ -660,7 +682,7 @@ Index: gdb-7.11.50.20160716/gdb/mips-tdep.c
|
||||
if (mips_debug && out != NULL)
|
||||
{
|
||||
int i;
|
||||
@@ -4529,13 +4529,13 @@
|
||||
@@ -4530,13 +4530,13 @@
|
||||
gdb_byte valbuf[MAX_REGISTER_SIZE];
|
||||
struct value *arg = args[argnum];
|
||||
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
|
||||
reference. */
|
||||
@@ -4804,7 +4804,7 @@
|
||||
@@ -4805,7 +4805,7 @@
|
||||
|
||||
static int
|
||||
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;
|
||||
|
||||
@@ -4819,7 +4819,7 @@
|
||||
@@ -4820,7 +4820,7 @@
|
||||
|
||||
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;
|
||||
|
||||
/* We're only looking at normal fields. */
|
||||
@@ -4861,7 +4861,7 @@
|
||||
@@ -4862,7 +4862,7 @@
|
||||
int argreg;
|
||||
int float_argreg;
|
||||
int argnum;
|
||||
@ -704,7 +726,7 @@ Index: gdb-7.11.50.20160716/gdb/mips-tdep.c
|
||||
int stack_offset = 0;
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
||||
@@ -5212,11 +5212,11 @@
|
||||
@@ -5213,11 +5213,11 @@
|
||||
: MIPS_V0_REGNUM);
|
||||
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)
|
||||
{
|
||||
/* A 16-byte long double field goes in two consecutive
|
||||
@@ -5258,8 +5258,8 @@
|
||||
@@ -5259,8 +5259,8 @@
|
||||
if (offset + xfer > TYPE_LENGTH (type))
|
||||
xfer = TYPE_LENGTH (type) - offset;
|
||||
if (mips_debug)
|
||||
@ -731,7 +753,7 @@ Index: gdb-7.11.50.20160716/gdb/mips-tdep.c
|
||||
mips_xfer_register (gdbarch, regcache,
|
||||
gdbarch_num_regs (gdbarch) + regnum,
|
||||
xfer, BFD_ENDIAN_UNKNOWN, readbuf, writebuf,
|
||||
@@ -5317,7 +5317,7 @@
|
||||
@@ -5318,7 +5318,7 @@
|
||||
int argreg;
|
||||
int float_argreg;
|
||||
int argnum;
|
||||
@ -740,7 +762,7 @@ Index: gdb-7.11.50.20160716/gdb/mips-tdep.c
|
||||
int stack_offset = 0;
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
||||
@@ -5381,13 +5381,13 @@
|
||||
@@ -5382,13 +5382,13 @@
|
||||
const gdb_byte *val;
|
||||
struct value *arg = args[argnum];
|
||||
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);
|
||||
|
||||
@@ -5842,8 +5842,8 @@
|
||||
@@ -5843,8 +5843,8 @@
|
||||
int argreg;
|
||||
int float_argreg;
|
||||
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);
|
||||
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
||||
|
||||
@@ -5903,13 +5903,13 @@
|
||||
@@ -5904,13 +5904,13 @@
|
||||
const gdb_byte *val;
|
||||
struct value *arg = args[argnum];
|
||||
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);
|
||||
|
||||
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.11.50.20160716/gdb/mn10300-tdep.c 2016-07-16 14:35:47.524519892 +0200
|
||||
@@ -1225,7 +1225,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/mn10300-tdep.c 2017-04-20 23:12:07.929566605 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/mn10300-tdep.c 2017-04-20 23:12:11.243588804 +0200
|
||||
@@ -1220,7 +1220,7 @@
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
const int push_size = register_size (gdbarch, E_PC_REGNUM);
|
||||
int regs_used;
|
||||
@ -798,11 +820,11 @@ Index: gdb-7.11.50.20160716/gdb/mn10300-tdep.c
|
||||
int stack_offset = 0;
|
||||
int argnum;
|
||||
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.11.50.20160716/gdb/mt-tdep.c 2016-07-16 14:35:47.524519892 +0200
|
||||
@@ -780,9 +780,9 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/mt-tdep.c 2017-04-20 23:12:07.930566612 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/mt-tdep.c 2017-04-20 23:12:11.244588810 +0200
|
||||
@@ -788,9 +788,9 @@
|
||||
gdb_byte buf[MT_MAX_STRUCT_SIZE];
|
||||
int argreg = MT_1ST_ARGREG;
|
||||
int split_param_len = 0;
|
||||
@ -814,11 +836,11 @@ Index: gdb-7.11.50.20160716/gdb/mt-tdep.c
|
||||
int i, j;
|
||||
|
||||
/* 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.11.50.20160716/gdb/ppc-sysv-tdep.c 2016-07-16 14:35:47.524519892 +0200
|
||||
@@ -66,7 +66,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/ppc-sysv-tdep.c 2017-04-20 23:12:07.931566619 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/ppc-sysv-tdep.c 2017-04-20 23:12:11.245588817 +0200
|
||||
@@ -67,7 +67,7 @@
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int opencl_abi = ppc_sysv_use_opencl_abi (value_type (function));
|
||||
ULONGEST saved_sp;
|
||||
@ -827,7 +849,7 @@ Index: gdb-7.11.50.20160716/gdb/ppc-sysv-tdep.c
|
||||
int write_pass;
|
||||
|
||||
gdb_assert (tdep->wordsize == 4);
|
||||
@@ -97,9 +97,9 @@
|
||||
@@ -98,9 +98,9 @@
|
||||
/* Next available vector register for vector arguments. */
|
||||
int vreg = 2;
|
||||
/* 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
|
||||
(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 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);
|
||||
|
||||
if (TYPE_CODE (type) == TYPE_CODE_FLT && len <= 8
|
||||
@@ -1283,11 +1283,11 @@
|
||||
@@ -1284,11 +1284,11 @@
|
||||
|
||||
static void
|
||||
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. */
|
||||
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.11.50.20160716/gdb/rl78-tdep.c 2016-07-16 14:35:47.525519900 +0200
|
||||
@@ -1336,8 +1336,8 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/rl78-tdep.c 2017-04-20 23:12:07.931566619 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/rl78-tdep.c 2017-04-20 23:12:11.245588817 +0200
|
||||
@@ -1352,8 +1352,8 @@
|
||||
for (i = nargs - 1; i >= 0; 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;
|
||||
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.11.50.20160716/gdb/rs6000-aix-tdep.c 2016-07-16 14:35:47.525519900 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/rs6000-aix-tdep.c 2017-04-20 23:12:07.932566626 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/rs6000-aix-tdep.c 2017-04-20 23:12:11.245588817 +0200
|
||||
@@ -186,9 +186,9 @@
|
||||
struct gdbarch_tdep *tdep = gdbarch_tdep (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)
|
||||
{
|
||||
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.11.50.20160716/gdb/s390-linux-tdep.c 2016-07-16 14:35:47.526519908 +0200
|
||||
@@ -3125,7 +3125,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/s390-linux-tdep.c 2017-04-20 23:12:07.934566639 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/s390-linux-tdep.c 2017-04-20 23:12:11.247588830 +0200
|
||||
@@ -3081,7 +3081,7 @@
|
||||
/* Determine whether N is a power of two. */
|
||||
|
||||
static int
|
||||
@ -915,7 +937,7 @@ Index: gdb-7.11.50.20160716/gdb/s390-linux-tdep.c
|
||||
{
|
||||
return n && ((n & (n - 1)) == 0);
|
||||
}
|
||||
@@ -3182,7 +3182,7 @@
|
||||
@@ -3138,7 +3138,7 @@
|
||||
enum bfd_endian byte_order, int is_unnamed)
|
||||
{
|
||||
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;
|
||||
|
||||
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.11.50.20160716/gdb/score-tdep.c 2016-07-16 14:35:47.527519916 +0200
|
||||
@@ -514,7 +514,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/score-tdep.c 2017-04-20 23:12:07.935566646 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/score-tdep.c 2017-04-20 23:12:11.248588837 +0200
|
||||
@@ -525,7 +525,7 @@
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int argnum;
|
||||
int argreg;
|
||||
@ -937,11 +959,11 @@ Index: gdb-7.11.50.20160716/gdb/score-tdep.c
|
||||
CORE_ADDR stack_offset = 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.11.50.20160716/gdb/sh-tdep.c 2016-07-16 14:35:47.527519916 +0200
|
||||
@@ -805,7 +805,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/sh-tdep.c 2017-04-20 23:12:07.936566652 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/sh-tdep.c 2017-04-20 23:12:11.248588837 +0200
|
||||
@@ -814,7 +814,7 @@
|
||||
static int
|
||||
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);
|
||||
|
||||
/* 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. */
|
||||
static const gdb_byte *
|
||||
@ -959,7 +981,7 @@ Index: gdb-7.11.50.20160716/gdb/sh-tdep.c
|
||||
{
|
||||
static gdb_byte valbuf[4];
|
||||
|
||||
@@ -1067,7 +1067,8 @@
|
||||
@@ -1076,7 +1076,8 @@
|
||||
struct type *type;
|
||||
CORE_ADDR regval;
|
||||
const gdb_byte *val;
|
||||
@ -969,7 +991,7 @@ Index: gdb-7.11.50.20160716/gdb/sh-tdep.c
|
||||
int pass_on_stack = 0;
|
||||
int treat_as_flt;
|
||||
int last_reg_arg = INT_MAX;
|
||||
@@ -1208,7 +1209,8 @@
|
||||
@@ -1217,7 +1218,8 @@
|
||||
struct type *type;
|
||||
CORE_ADDR regval;
|
||||
const gdb_byte *val;
|
||||
@ -979,11 +1001,11 @@ Index: gdb-7.11.50.20160716/gdb/sh-tdep.c
|
||||
int pass_on_stack = 0;
|
||||
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.11.50.20160716/gdb/sh64-tdep.c 2016-07-16 14:35:47.528519925 +0200
|
||||
@@ -1060,7 +1060,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/sh64-tdep.c 2017-04-20 23:12:07.937566659 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/sh64-tdep.c 2017-04-20 23:12:11.249588844 +0200
|
||||
@@ -1062,7 +1062,7 @@
|
||||
CORE_ADDR struct_addr)
|
||||
{
|
||||
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 float_arg_index = 0;
|
||||
int double_arg_index = 0;
|
||||
@@ -1069,7 +1069,7 @@
|
||||
@@ -1071,7 +1071,7 @@
|
||||
CORE_ADDR regval;
|
||||
const gdb_byte *val;
|
||||
gdb_byte valbuf[8];
|
||||
@ -1001,11 +1023,11 @@ Index: gdb-7.11.50.20160716/gdb/sh64-tdep.c
|
||||
int argreg_size;
|
||||
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.11.50.20160716/gdb/sparc-tdep.c 2016-07-16 14:35:47.528519925 +0200
|
||||
@@ -525,7 +525,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/sparc-tdep.c 2017-04-20 23:12:07.938566666 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/sparc-tdep.c 2017-04-20 23:12:11.249588844 +0200
|
||||
@@ -567,7 +567,7 @@
|
||||
for (i = 0; i < nargs; 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)
|
||||
|| (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.11.50.20160716/gdb/sparc64-tdep.c 2016-07-16 14:35:47.528519925 +0200
|
||||
@@ -636,7 +636,8 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/sparc64-tdep.c 2017-04-20 23:12:07.939566672 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/sparc64-tdep.c 2017-04-20 23:12:11.250588851 +0200
|
||||
@@ -696,7 +696,8 @@
|
||||
|
||||
static void
|
||||
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,
|
||||
+ LONGEST bitpos)
|
||||
{
|
||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||
int len = TYPE_LENGTH (type);
|
||||
|
||||
@@ -678,7 +679,7 @@
|
||||
@@ -740,7 +741,7 @@
|
||||
for (i = 0; i < TYPE_NFIELDS (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,
|
||||
element, subpos);
|
||||
@@ -710,7 +711,7 @@
|
||||
@@ -772,7 +773,7 @@
|
||||
|
||||
static void
|
||||
sparc64_extract_floating_fields (struct regcache *regcache, struct type *type,
|
||||
- gdb_byte *valbuf, int bitpos)
|
||||
+ gdb_byte *valbuf, LONGEST bitpos)
|
||||
{
|
||||
if (sparc64_floating_p (type))
|
||||
{
|
||||
@@ -747,7 +748,7 @@
|
||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||
|
||||
@@ -812,7 +813,7 @@
|
||||
for (i = 0; i < TYPE_NFIELDS (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);
|
||||
}
|
||||
@@ -780,7 +781,7 @@
|
||||
@@ -845,7 +846,7 @@
|
||||
for (i = 0; i < nargs; 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)
|
||||
|| (sparc64_complex_floating_p (type) && len == 32))
|
||||
@@ -880,7 +881,7 @@
|
||||
@@ -945,7 +946,7 @@
|
||||
{
|
||||
const gdb_byte *valbuf = value_contents (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;
|
||||
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.11.50.20160716/gdb/spu-tdep.c 2016-07-16 14:35:47.529519932 +0200
|
||||
@@ -1429,7 +1429,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/spu-tdep.c 2017-04-20 23:12:07.940566679 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/spu-tdep.c 2017-04-20 23:12:11.251588857 +0200
|
||||
@@ -1431,7 +1431,7 @@
|
||||
struct value *arg = args[i];
|
||||
struct type *type = check_typedef (value_type (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
|
||||
all subsequent arguments go to the stack. */
|
||||
@@ -1461,7 +1461,7 @@
|
||||
@@ -1463,7 +1463,7 @@
|
||||
{
|
||||
struct value *arg = args[i];
|
||||
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;
|
||||
|
||||
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.11.50.20160716/gdb/tic6x-tdep.c 2016-07-16 14:35:47.529519932 +0200
|
||||
@@ -892,7 +892,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/tic6x-tdep.c 2017-04-20 23:12:07.940566679 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/tic6x-tdep.c 2017-04-20 23:12:11.251588857 +0200
|
||||
@@ -899,7 +899,7 @@
|
||||
int argreg = 0;
|
||||
int argnum;
|
||||
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);
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
struct type *func_type = value_type (function);
|
||||
@@ -926,7 +926,7 @@
|
||||
@@ -933,7 +933,7 @@
|
||||
/* Now make space on the stack for the args. */
|
||||
for (argnum = 0; argnum < nargs; argnum++)
|
||||
{
|
||||
@ -1117,7 +1139,7 @@ Index: gdb-7.11.50.20160716/gdb/tic6x-tdep.c
|
||||
if (argnum >= 10 - argreg)
|
||||
references_offset += len;
|
||||
stack_offset += len;
|
||||
@@ -945,7 +945,7 @@
|
||||
@@ -952,7 +952,7 @@
|
||||
const gdb_byte *val;
|
||||
struct value *arg = args[argnum];
|
||||
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);
|
||||
|
||||
val = value_contents (arg);
|
||||
@@ -1105,7 +1105,8 @@
|
||||
@@ -1112,7 +1112,8 @@
|
||||
}
|
||||
else
|
||||
internal_error (__FILE__, __LINE__,
|
||||
@ -1136,11 +1158,11 @@ Index: gdb-7.11.50.20160716/gdb/tic6x-tdep.c
|
||||
|
||||
addr = sp + stack_offset;
|
||||
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.11.50.20160716/gdb/tilegx-tdep.c 2016-07-16 14:35:47.530519941 +0200
|
||||
@@ -288,7 +288,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/tilegx-tdep.c 2017-04-20 23:12:07.941566686 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/tilegx-tdep.c 2017-04-20 23:12:11.251588857 +0200
|
||||
@@ -289,7 +289,7 @@
|
||||
CORE_ADDR stack_dest = sp;
|
||||
int argreg = TILEGX_R0_REGNUM;
|
||||
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 };
|
||||
|
||||
/* 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.11.50.20160716/gdb/v850-tdep.c 2016-07-16 14:35:47.530519941 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/v850-tdep.c 2017-04-20 23:12:07.941566686 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/v850-tdep.c 2017-04-20 23:12:11.252588864 +0200
|
||||
@@ -1019,7 +1019,7 @@
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int argreg;
|
||||
@ -1171,10 +1193,10 @@ Index: gdb-7.11.50.20160716/gdb/v850-tdep.c
|
||||
gdb_byte *val;
|
||||
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.11.50.20160716/gdb/vax-tdep.c 2016-07-16 14:35:47.530519941 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/vax-tdep.c 2017-04-20 23:12:07.942566692 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/vax-tdep.c 2017-04-20 23:12:11.252588864 +0200
|
||||
@@ -111,7 +111,7 @@
|
||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||
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;
|
||||
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.11.50.20160716/gdb/xstormy16-tdep.c 2016-07-16 14:35:47.530519941 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/xstormy16-tdep.c 2017-04-20 23:12:07.942566692 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/xstormy16-tdep.c 2017-04-20 23:12:11.252588864 +0200
|
||||
@@ -233,8 +233,9 @@
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
CORE_ADDR stack_dest = sp;
|
||||
@ -1209,11 +1231,11 @@ Index: gdb-7.11.50.20160716/gdb/xstormy16-tdep.c
|
||||
const gdb_byte *val;
|
||||
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.11.50.20160716/gdb/xtensa-tdep.c 2016-07-16 14:35:47.531519949 +0200
|
||||
@@ -1638,8 +1638,7 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/xtensa-tdep.c 2017-04-20 23:12:07.944566706 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/xtensa-tdep.c 2017-04-20 23:12:11.253588870 +0200
|
||||
@@ -1637,8 +1637,7 @@
|
||||
|
||||
if (len > (callsize > 8 ? 8 : 16))
|
||||
internal_error (__FILE__, __LINE__,
|
||||
@ -1223,7 +1245,7 @@ Index: gdb-7.11.50.20160716/gdb/xtensa-tdep.c
|
||||
areg = arreg_number (gdbarch,
|
||||
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);
|
||||
int i;
|
||||
@ -1245,7 +1267,7 @@ Index: gdb-7.11.50.20160716/gdb/xtensa-tdep.c
|
||||
int regno; /* regno if in register. */
|
||||
} u;
|
||||
};
|
||||
@@ -1748,9 +1747,10 @@
|
||||
@@ -1747,9 +1746,10 @@
|
||||
{
|
||||
struct value *arg = args[i];
|
||||
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))
|
||||
{
|
||||
case TYPE_CODE_INT:
|
||||
@@ -1820,8 +1820,8 @@
|
||||
@@ -1819,8 +1819,8 @@
|
||||
info->align = TYPE_LENGTH (builtin_type (gdbarch)->builtin_long);
|
||||
break;
|
||||
}
|
||||
@ -1269,7 +1291,7 @@ Index: gdb-7.11.50.20160716/gdb/xtensa-tdep.c
|
||||
|
||||
/* Align size and onstack_size. */
|
||||
size = (size + info->align - 1) & ~(info->align - 1);
|
||||
@@ -1866,7 +1866,7 @@
|
||||
@@ -1865,7 +1865,7 @@
|
||||
|
||||
if (info->onstack)
|
||||
{
|
||||
@ -1278,7 +1300,7 @@ Index: gdb-7.11.50.20160716/gdb/xtensa-tdep.c
|
||||
CORE_ADDR offset = sp + info->u.offset;
|
||||
|
||||
/* Odd-sized structs are aligned to the lower side of a memory
|
||||
@@ -1882,7 +1882,7 @@
|
||||
@@ -1881,7 +1881,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -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.
|
||||
+
|
||||
+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} {
|
||||
+ untested "failed uudecode or bzip2"
|
||||
|
@ -26,11 +26,11 @@ dbfd7140bf4c0500d1f5d192be781f83f78f7922
|
||||
gdb/value.h | 2 +
|
||||
23 files changed, 1242 insertions(+), 183 deletions(-)
|
||||
|
||||
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
|
||||
index 548e468..560e16f 100644
|
||||
--- a/gdb/dwarf2loc.c
|
||||
+++ b/gdb/dwarf2loc.c
|
||||
@@ -2601,11 +2601,14 @@ dwarf2_locexpr_baton_eval (const struct dwarf2_locexpr_baton *dlbaton,
|
||||
Index: gdb-7.99.90.20170420/gdb/dwarf2loc.c
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/dwarf2loc.c 2017-04-20 22:25:43.973254685 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/dwarf2loc.c 2017-04-20 22:26:14.356446562 +0200
|
||||
@@ -2622,11 +2622,14 @@
|
||||
/* See dwarf2loc.h. */
|
||||
|
||||
int
|
||||
@ -47,7 +47,7 @@ index 548e468..560e16f 100644
|
||||
if (prop == NULL)
|
||||
return 0;
|
||||
|
||||
@@ -2629,7 +2632,7 @@ dwarf2_evaluate_property (const struct dynamic_prop *prop,
|
||||
@@ -2650,7 +2653,7 @@
|
||||
|
||||
*value = value_as_address (val);
|
||||
}
|
||||
@ -56,7 +56,7 @@ index 548e468..560e16f 100644
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -2651,7 +2654,7 @@ dwarf2_evaluate_property (const struct dynamic_prop *prop,
|
||||
@@ -2672,7 +2675,7 @@
|
||||
if (!value_optimized_out (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:
|
||||
*value = prop->data.const_val;
|
||||
@ -76,7 +76,7 @@ index 548e468..560e16f 100644
|
||||
case PROP_ADDR_OFFSET:
|
||||
{
|
||||
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,
|
||||
pinfo->addr + baton->offset_info.offset);
|
||||
*value = value_as_address (val);
|
||||
@ -84,9 +84,8 @@ index 548e468..560e16f 100644
|
||||
+ rc = 1;
|
||||
}
|
||||
+ break;
|
||||
}
|
||||
|
||||
- return 0;
|
||||
+ }
|
||||
+
|
||||
+ if (rc == 1 && is_signed == 1)
|
||||
+ {
|
||||
+ /* 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. */
|
||||
+ if (*value & (neg_mask))
|
||||
+ *value |= (neg_mask );
|
||||
+ }
|
||||
}
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
|
||||
- return 0;
|
||||
+int
|
||||
+dwarf2_evaluate_property (const struct dynamic_prop *prop,
|
||||
+ struct frame_info *frame,
|
||||
@ -117,11 +117,11 @@ index 548e468..560e16f 100644
|
||||
}
|
||||
|
||||
/* See dwarf2loc.h. */
|
||||
diff --git a/gdb/dwarf2loc.h b/gdb/dwarf2loc.h
|
||||
index fa83459..da6b9cd 100644
|
||||
--- a/gdb/dwarf2loc.h
|
||||
+++ b/gdb/dwarf2loc.h
|
||||
@@ -138,6 +138,12 @@ int dwarf2_evaluate_property (const struct dynamic_prop *prop,
|
||||
Index: gdb-7.99.90.20170420/gdb/dwarf2loc.h
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/dwarf2loc.h 2017-04-20 22:25:43.973254685 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/dwarf2loc.h 2017-04-20 22:26:14.356446562 +0200
|
||||
@@ -143,6 +143,12 @@
|
||||
struct property_addr_info *addr_stack,
|
||||
CORE_ADDR *value);
|
||||
|
||||
@ -134,11 +134,11 @@ index fa83459..da6b9cd 100644
|
||||
/* A helper for the compiler interface that compiles a single dynamic
|
||||
property to C code.
|
||||
|
||||
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
index 6658a38..a1ac659 100644
|
||||
--- a/gdb/dwarf2read.c
|
||||
+++ b/gdb/dwarf2read.c
|
||||
@@ -14952,7 +14952,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
Index: gdb-7.99.90.20170420/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/dwarf2read.c 2017-04-20 22:25:43.973254685 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/dwarf2read.c 2017-04-20 22:27:08.510788562 +0200
|
||||
@@ -15268,7 +15268,7 @@
|
||||
struct type *base_type, *orig_base_type;
|
||||
struct type *range_type;
|
||||
struct attribute *attr;
|
||||
@ -147,7 +147,7 @@ index 6658a38..a1ac659 100644
|
||||
int low_default_is_valid;
|
||||
int high_bound_is_count = 0;
|
||||
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;
|
||||
high.kind = PROP_CONST;
|
||||
@ -157,7 +157,7 @@ index 6658a38..a1ac659 100644
|
||||
|
||||
/* Set LOW_DEFAULT_IS_VALID if current language and DWARF version allow
|
||||
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;
|
||||
}
|
||||
|
||||
@ -166,12 +166,12 @@ index 6658a38..a1ac659 100644
|
||||
+ if (!attr_to_dynamic_prop (attr, die, cu, &stride))
|
||||
+ complaint (&symfile_complaints, _("Missing DW_AT_byte_stride "
|
||||
+ "- 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);
|
||||
if (attr)
|
||||
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))
|
||||
high.data.const_val |= negative_mask;
|
||||
|
||||
@ -180,11 +180,11 @@ index 6658a38..a1ac659 100644
|
||||
|
||||
if (high_bound_is_count)
|
||||
TYPE_RANGE_DATA (range_type)->flag_upper_bound_is_count = 1;
|
||||
diff --git a/gdb/eval.c b/gdb/eval.c
|
||||
index 00a107c..91d8a03 100644
|
||||
--- a/gdb/eval.c
|
||||
+++ b/gdb/eval.c
|
||||
@@ -399,29 +399,325 @@ init_array_element (struct value *array, struct value *element,
|
||||
Index: gdb-7.99.90.20170420/gdb/eval.c
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/eval.c 2017-04-20 22:25:43.973254685 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/eval.c 2017-04-20 22:26:14.362446600 +0200
|
||||
@@ -379,29 +379,325 @@
|
||||
return index;
|
||||
}
|
||||
|
||||
@ -209,11 +209,6 @@ index 00a107c..91d8a03 100644
|
||||
- = (enum range_type) longest_to_int (exp->elts[pc].longconst);
|
||||
-
|
||||
- *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 type *array_type = check_typedef (value_type (new_array));
|
||||
+ struct type *elt_type;
|
||||
@ -268,17 +263,21 @@ index 00a107c..91d8a03 100644
|
||||
+ {
|
||||
+ struct subscript_store *index = &subscript_array[i];
|
||||
|
||||
- if (range_type == HIGH_BOUND_DEFAULT || range_type == BOTH_BOUND_DEFAULT)
|
||||
- high_bound = TYPE_HIGH_BOUND (range);
|
||||
- if (range_type == LOW_BOUND_DEFAULT || range_type == BOTH_BOUND_DEFAULT)
|
||||
- low_bound = TYPE_LOW_BOUND (range);
|
||||
- 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.
|
||||
+ E.g.: "p arry(2:5)", "p arry( :5)", "p arry( : )", etc. */
|
||||
+ if (exp->elts[*pos].opcode == OP_RANGE)
|
||||
+ {
|
||||
+ int pc = (*pos) + 1;
|
||||
+ 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;
|
||||
+ range = &index->U.range;
|
||||
+
|
||||
@ -372,7 +371,8 @@ index 00a107c..91d8a03 100644
|
||||
+
|
||||
+ case SUBSCRIPT_INDEX:
|
||||
+ break;
|
||||
+
|
||||
|
||||
- return value_slice (array, low_bound, high_bound - low_bound + 1);
|
||||
+ }
|
||||
+
|
||||
+ array_type = TYPE_TARGET_TYPE (array_type);
|
||||
@ -492,8 +492,7 @@ index 00a107c..91d8a03 100644
|
||||
+ struct type *range_type, *interim_array_type;
|
||||
+
|
||||
+ 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
|
||||
+ bounds plus the start element itself. It may be modified by
|
||||
+ 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)
|
||||
{
|
||||
case TYPE_CODE_ARRAY:
|
||||
@ -549,7 +548,7 @@ index 00a107c..91d8a03 100644
|
||||
|
||||
case TYPE_CODE_PTR:
|
||||
case TYPE_CODE_FUNC:
|
||||
@@ -2223,49 +2508,6 @@ evaluate_subexp_standard (struct type *expect_type,
|
||||
@@ -2203,49 +2488,6 @@
|
||||
}
|
||||
return (arg1);
|
||||
|
||||
@ -599,7 +598,7 @@ index 00a107c..91d8a03 100644
|
||||
case BINOP_LOGICAL_AND:
|
||||
arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
|
||||
if (noside == EVAL_SKIP)
|
||||
@@ -3123,6 +3365,9 @@ calc_f77_array_dims (struct type *array_type)
|
||||
@@ -3102,6 +3344,9 @@
|
||||
int ndimen = 1;
|
||||
struct type *tmp_type;
|
||||
|
||||
@ -609,11 +608,11 @@ index 00a107c..91d8a03 100644
|
||||
if ((TYPE_CODE (array_type) != TYPE_CODE_ARRAY))
|
||||
error (_("Can't get dimensions for a non-array type"));
|
||||
|
||||
diff --git a/gdb/expprint.c b/gdb/expprint.c
|
||||
index c37ecb0..214d58e 100644
|
||||
--- a/gdb/expprint.c
|
||||
+++ b/gdb/expprint.c
|
||||
@@ -568,12 +568,10 @@ print_subexp_standard (struct expression *exp, int *pos,
|
||||
Index: gdb-7.99.90.20170420/gdb/expprint.c
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/expprint.c 2017-04-20 22:25:43.973254685 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/expprint.c 2017-04-20 22:26:14.363446607 +0200
|
||||
@@ -568,12 +568,10 @@
|
||||
*pos += 2;
|
||||
|
||||
fputs_filtered ("RANGE(", stream);
|
||||
@ -628,7 +627,7 @@ index c37ecb0..214d58e 100644
|
||||
print_subexp (exp, pos, stream, PREC_ABOVE_COMMA);
|
||||
fputs_filtered (")", stream);
|
||||
return;
|
||||
@@ -1055,16 +1053,16 @@ dump_subexp_body_standard (struct expression *exp,
|
||||
@@ -1055,16 +1053,16 @@
|
||||
|
||||
switch (range_type)
|
||||
{
|
||||
@ -649,7 +648,7 @@ index c37ecb0..214d58e 100644
|
||||
fputs_filtered ("Range 'EXP..EXP'", stream);
|
||||
break;
|
||||
default:
|
||||
@@ -1072,11 +1070,9 @@ dump_subexp_body_standard (struct expression *exp,
|
||||
@@ -1072,11 +1070,9 @@
|
||||
break;
|
||||
}
|
||||
|
||||
@ -663,12 +662,12 @@ index c37ecb0..214d58e 100644
|
||||
elt = dump_subexp (exp, stream, elt);
|
||||
}
|
||||
break;
|
||||
diff --git a/gdb/expression.h b/gdb/expression.h
|
||||
index 4952d84..34ca54b 100644
|
||||
--- a/gdb/expression.h
|
||||
+++ b/gdb/expression.h
|
||||
@@ -152,17 +152,17 @@ extern void dump_raw_expression (struct expression *,
|
||||
struct ui_file *, char *);
|
||||
Index: gdb-7.99.90.20170420/gdb/expression.h
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/expression.h 2017-04-20 22:25:43.973254685 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/expression.h 2017-04-20 22:26:14.363446607 +0200
|
||||
@@ -154,17 +154,17 @@
|
||||
struct ui_file *, const char *);
|
||||
extern void dump_prefix_expression (struct expression *, struct ui_file *);
|
||||
|
||||
-/* In an OP_RANGE expression, either bound could be empty, indicating
|
||||
@ -694,11 +693,11 @@ index 4952d84..34ca54b 100644
|
||||
};
|
||||
|
||||
#endif /* !defined (EXPRESSION_H) */
|
||||
diff --git a/gdb/f-exp.y b/gdb/f-exp.y
|
||||
index e3148a3..71f1823 100644
|
||||
--- a/gdb/f-exp.y
|
||||
+++ b/gdb/f-exp.y
|
||||
@@ -253,31 +253,63 @@ arglist : subrange
|
||||
Index: gdb-7.99.90.20170420/gdb/f-exp.y
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/f-exp.y 2017-04-20 22:25:43.973254685 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/f-exp.y 2017-04-20 22:26:14.363446607 +0200
|
||||
@@ -254,31 +254,63 @@
|
||||
|
||||
arglist : arglist ',' exp %prec ABOVE_COMMA
|
||||
{ arglist_len++; }
|
||||
@ -767,11 +766,11 @@ index e3148a3..71f1823 100644
|
||||
write_exp_elt_opcode (pstate, OP_RANGE); }
|
||||
;
|
||||
|
||||
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
|
||||
index 08215e2..e6eca6a 100644
|
||||
--- a/gdb/f-valprint.c
|
||||
+++ b/gdb/f-valprint.c
|
||||
@@ -121,8 +121,14 @@ f77_print_array_1 (int nss, int ndimensions, struct type *type,
|
||||
Index: gdb-7.99.90.20170420/gdb/f-valprint.c
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/f-valprint.c 2017-04-20 22:25:43.973254685 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/f-valprint.c 2017-04-20 22:26:14.364446613 +0200
|
||||
@@ -121,8 +121,14 @@
|
||||
|
||||
if (nss != ndimensions)
|
||||
{
|
||||
@ -787,11 +786,11 @@ index 08215e2..e6eca6a 100644
|
||||
|
||||
for (i = lowerbound;
|
||||
(i < upperbound + 1 && (*elts) < options->print_max);
|
||||
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
|
||||
index ec5c17a..eb83791 100644
|
||||
--- a/gdb/gdbtypes.c
|
||||
+++ b/gdb/gdbtypes.c
|
||||
@@ -836,7 +836,8 @@ allocate_stub_method (struct type *type)
|
||||
Index: gdb-7.99.90.20170420/gdb/gdbtypes.c
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/gdbtypes.c 2017-04-20 22:25:43.973254685 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/gdbtypes.c 2017-04-20 22:26:14.365446619 +0200
|
||||
@@ -862,7 +862,8 @@
|
||||
struct type *
|
||||
create_range_type (struct type *result_type, struct type *index_type,
|
||||
const struct dynamic_prop *low_bound,
|
||||
@ -801,7 +800,7 @@ index ec5c17a..eb83791 100644
|
||||
{
|
||||
if (result_type == NULL)
|
||||
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_RANGE_DATA (result_type)->low = *low_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)
|
||||
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,
|
||||
LONGEST low_bound, LONGEST high_bound)
|
||||
{
|
||||
@ -818,7 +817,7 @@ index ec5c17a..eb83791 100644
|
||||
|
||||
low.kind = PROP_CONST;
|
||||
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.data.const_val = high_bound;
|
||||
|
||||
@ -831,7 +830,7 @@ index ec5c17a..eb83791 100644
|
||||
|
||||
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_allocated (result_type)))
|
||||
{
|
||||
@ -853,7 +852,7 @@ index ec5c17a..eb83791 100644
|
||||
else if (bit_stride > 0)
|
||||
TYPE_LENGTH (result_type) =
|
||||
(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;
|
||||
struct type *static_range_type, *static_target_type;
|
||||
const struct dynamic_prop *prop;
|
||||
@ -868,7 +867,7 @@ index ec5c17a..eb83791 100644
|
||||
{
|
||||
low_bound.kind = PROP_CONST;
|
||||
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;
|
||||
@ -877,7 +876,7 @@ index ec5c17a..eb83791 100644
|
||||
{
|
||||
high_bound.kind = PROP_CONST;
|
||||
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;
|
||||
}
|
||||
|
||||
@ -899,11 +898,11 @@ index ec5c17a..eb83791 100644
|
||||
TYPE_RANGE_DATA (static_range_type)->flag_bound_evaluated = 1;
|
||||
return static_range_type;
|
||||
}
|
||||
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
|
||||
index 2dda074..bcc9200 100644
|
||||
--- a/gdb/gdbtypes.h
|
||||
+++ b/gdb/gdbtypes.h
|
||||
@@ -577,6 +577,10 @@ struct range_bounds
|
||||
Index: gdb-7.99.90.20170420/gdb/gdbtypes.h
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/gdbtypes.h 2017-04-20 22:25:43.973254685 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/gdbtypes.h 2017-04-20 22:26:14.365446619 +0200
|
||||
@@ -551,6 +551,10 @@
|
||||
|
||||
struct dynamic_prop high;
|
||||
|
||||
@ -914,7 +913,7 @@ index 2dda074..bcc9200 100644
|
||||
/* True if HIGH range bound contains the number of elements in the
|
||||
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. */
|
||||
|
||||
struct range_bounds *bounds;
|
||||
@ -922,7 +921,7 @@ index 2dda074..bcc9200 100644
|
||||
} flds_bnds;
|
||||
|
||||
/* * 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
|
||||
#define TYPE_LOW_BOUND_KIND(range_type) \
|
||||
TYPE_RANGE_DATA(range_type)->low.kind
|
||||
@ -938,7 +937,7 @@ index 2dda074..bcc9200 100644
|
||||
|
||||
/* Property accessors for the type data location. */
|
||||
#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))
|
||||
#define TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED(arraytype) \
|
||||
TYPE_LOW_BOUND_UNDEFINED(TYPE_INDEX_TYPE(arraytype))
|
||||
@ -948,7 +947,7 @@ index 2dda074..bcc9200 100644
|
||||
|
||||
#define TYPE_ARRAY_UPPER_BOUND_VALUE(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 *,
|
||||
const struct dynamic_prop *,
|
||||
@ -956,11 +955,11 @@ index 2dda074..bcc9200 100644
|
||||
const struct dynamic_prop *);
|
||||
|
||||
extern struct type *create_array_type (struct type *, struct type *,
|
||||
diff --git a/gdb/parse.c b/gdb/parse.c
|
||||
index 2b00708..992af87 100644
|
||||
--- a/gdb/parse.c
|
||||
+++ b/gdb/parse.c
|
||||
@@ -1006,22 +1006,20 @@ operator_length_standard (const struct expression *expr, int endpos,
|
||||
Index: gdb-7.99.90.20170420/gdb/parse.c
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/parse.c 2017-04-20 22:25:43.973254685 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/parse.c 2017-04-20 22:26:14.366446625 +0200
|
||||
@@ -1007,22 +1007,20 @@
|
||||
|
||||
case OP_RANGE:
|
||||
oplen = 3;
|
||||
@ -994,11 +993,11 @@ index 2b00708..992af87 100644
|
||||
|
||||
break;
|
||||
|
||||
diff --git a/gdb/rust-exp.y b/gdb/rust-exp.y
|
||||
index aeb6058..b1b9633 100644
|
||||
--- a/gdb/rust-exp.y
|
||||
+++ b/gdb/rust-exp.y
|
||||
@@ -2429,23 +2429,17 @@ convert_ast_to_expression (struct parser_state *state,
|
||||
Index: gdb-7.99.90.20170420/gdb/rust-exp.y
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/rust-exp.y 2017-04-20 22:25:43.973254685 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/rust-exp.y 2017-04-20 22:26:14.366446625 +0200
|
||||
@@ -2409,23 +2409,17 @@
|
||||
|
||||
case OP_RANGE:
|
||||
{
|
||||
@ -1025,11 +1024,11 @@ index aeb6058..b1b9633 100644
|
||||
}
|
||||
write_exp_elt_opcode (state, OP_RANGE);
|
||||
write_exp_elt_longcst (state, kind);
|
||||
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
|
||||
index 17b20c6..295002f 100644
|
||||
--- a/gdb/rust-lang.c
|
||||
+++ b/gdb/rust-lang.c
|
||||
@@ -1241,9 +1241,9 @@ rust_range (struct expression *exp, int *pos, enum noside noside)
|
||||
Index: gdb-7.99.90.20170420/gdb/rust-lang.c
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/rust-lang.c 2017-04-20 22:25:43.973254685 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/rust-lang.c 2017-04-20 22:26:14.367446632 +0200
|
||||
@@ -1314,9 +1314,9 @@
|
||||
kind = (enum range_type) longest_to_int (exp->elts[*pos + 1].longconst);
|
||||
*pos += 3;
|
||||
|
||||
@ -1041,7 +1040,7 @@ index 17b20c6..295002f 100644
|
||||
high = evaluate_subexp (NULL_TYPE, exp, pos, noside);
|
||||
|
||||
if (noside == EVAL_SKIP)
|
||||
@@ -1332,7 +1332,7 @@ rust_compute_range (struct type *type, struct value *range,
|
||||
@@ -1405,7 +1405,7 @@
|
||||
|
||||
*low = 0;
|
||||
*high = 0;
|
||||
@ -1050,7 +1049,7 @@ index 17b20c6..295002f 100644
|
||||
|
||||
if (TYPE_NFIELDS (type) == 0)
|
||||
return;
|
||||
@@ -1340,15 +1340,14 @@ rust_compute_range (struct type *type, struct value *range,
|
||||
@@ -1413,15 +1413,14 @@
|
||||
i = 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));
|
||||
}
|
||||
}
|
||||
@@ -1363,7 +1362,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside,
|
||||
@@ -1436,7 +1435,7 @@
|
||||
struct type *rhstype;
|
||||
LONGEST low, high_bound;
|
||||
/* Initialized to appease the compiler. */
|
||||
@ -1077,7 +1076,7 @@ index 17b20c6..295002f 100644
|
||||
LONGEST high = 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"));
|
||||
|
||||
if (want_slice
|
||||
@ -1086,7 +1085,7 @@ index 17b20c6..295002f 100644
|
||||
low = low_bound;
|
||||
if (low < 0)
|
||||
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;
|
||||
struct value *addrval, *tem;
|
||||
|
||||
@ -1095,11 +1094,10 @@ index 17b20c6..295002f 100644
|
||||
high = high_bound;
|
||||
if (high < 0)
|
||||
error (_("High index less than zero"));
|
||||
diff --git a/gdb/testsuite/gdb.fortran/static-arrays.exp b/gdb/testsuite/gdb.fortran/static-arrays.exp
|
||||
new file mode 100644
|
||||
index 0000000..cc9ecc0
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.fortran/static-arrays.exp
|
||||
Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/static-arrays.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/static-arrays.exp 2017-04-20 22:26:14.367446632 +0200
|
||||
@@ -0,0 +1,421 @@
|
||||
+# Copyright 2015 Free Software Foundation, Inc.
|
||||
+#
|
||||
@ -1522,11 +1520,10 @@ index 0000000..cc9ecc0
|
||||
+gdb_test "print ar1\(3:7\) = 42" \
|
||||
+ "Invalid cast." \
|
||||
+ "Assignment of value to subarray"
|
||||
diff --git a/gdb/testsuite/gdb.fortran/static-arrays.f90 b/gdb/testsuite/gdb.fortran/static-arrays.f90
|
||||
new file mode 100644
|
||||
index 0000000..f22fcbe
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.fortran/static-arrays.f90
|
||||
Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/static-arrays.f90
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/static-arrays.f90 2017-04-20 22:26:14.368446638 +0200
|
||||
@@ -0,0 +1,55 @@
|
||||
+! Copyright 2015 Free Software Foundation, Inc.
|
||||
+!
|
||||
@ -1583,11 +1580,11 @@ index 0000000..f22fcbe
|
||||
+program testprog
|
||||
+ call sub
|
||||
+end
|
||||
diff --git a/gdb/testsuite/gdb.fortran/vla-ptype.exp b/gdb/testsuite/gdb.fortran/vla-ptype.exp
|
||||
index 175661f..544d40a 100644
|
||||
--- a/gdb/testsuite/gdb.fortran/vla-ptype.exp
|
||||
+++ b/gdb/testsuite/gdb.fortran/vla-ptype.exp
|
||||
@@ -98,3 +98,7 @@ gdb_test "ptype vla2" "type = <not allocated>" "ptype vla2 not allocated"
|
||||
Index: gdb-7.99.90.20170420/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
|
||||
+++ 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(5, 45, 20)" \
|
||||
"no such vector element \\\(vector 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_continue_to_breakpoint "vla1-neg-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 8010c0a..f8258a1 100644
|
||||
--- a/gdb/testsuite/gdb.fortran/vla-sizeof.exp
|
||||
+++ b/gdb/testsuite/gdb.fortran/vla-sizeof.exp
|
||||
@@ -44,3 +44,7 @@ gdb_test "print sizeof(pvla)" " = 0" "print sizeof non-associated pvla"
|
||||
Index: gdb-7.99.90.20170420/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
|
||||
+++ 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_breakpoint [gdb_get_line_number "pvla-associated"]
|
||||
gdb_continue_to_breakpoint "pvla-associated"
|
||||
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_continue_to_breakpoint "vla1-neg-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
|
||||
new file mode 100644
|
||||
index 0000000..dcf15e5
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.fortran/vla-stride.exp
|
||||
Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-stride.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-stride.exp 2017-04-20 22:26:14.368446638 +0200
|
||||
@@ -0,0 +1,44 @@
|
||||
+# Copyright 2016 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -1657,11 +1653,10 @@ index 0000000..dcf15e5
|
||||
+gdb_continue_to_breakpoint "single-element"
|
||||
+gdb_test "print pvla" " = \\\(5\\\)" "print 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
|
||||
new file mode 100644
|
||||
index 0000000..8d24252
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.fortran/vla-stride.f90
|
||||
Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-stride.f90
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla-stride.f90 2017-04-20 22:26:14.368446638 +0200
|
||||
@@ -0,0 +1,29 @@
|
||||
+! Copyright 2016 Free Software Foundation, Inc.
|
||||
+!
|
||||
@ -1692,11 +1687,11 @@ index 0000000..8d24252
|
||||
+
|
||||
+ pvla => null() ! single-element
|
||||
+end program vla_stride
|
||||
diff --git a/gdb/testsuite/gdb.fortran/vla.f90 b/gdb/testsuite/gdb.fortran/vla.f90
|
||||
index c76d24c..ef307b7 100644
|
||||
--- a/gdb/testsuite/gdb.fortran/vla.f90
|
||||
+++ b/gdb/testsuite/gdb.fortran/vla.f90
|
||||
@@ -54,4 +54,14 @@ program vla
|
||||
Index: gdb-7.99.90.20170420/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
|
||||
+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/vla.f90 2017-04-20 22:26:14.368446638 +0200
|
||||
@@ -54,4 +54,14 @@
|
||||
|
||||
allocate (vla3 (2,2)) ! vla2-deallocated
|
||||
vla3(:,:) = 13
|
||||
@ -1711,35 +1706,34 @@ index c76d24c..ef307b7 100644
|
||||
+ l = allocated(vla1)
|
||||
+
|
||||
end program vla
|
||||
diff --git a/gdb/valarith.c b/gdb/valarith.c
|
||||
index de6fcfd..9753506 100644
|
||||
--- a/gdb/valarith.c
|
||||
+++ b/gdb/valarith.c
|
||||
@@ -193,11 +193,17 @@ value_subscripted_rvalue (struct value *array, LONGEST index, int lowerbound)
|
||||
Index: gdb-7.99.90.20170420/gdb/valarith.c
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/valarith.c 2017-04-20 22:25:43.973254685 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/valarith.c 2017-04-20 22:26:14.369446644 +0200
|
||||
@@ -193,10 +193,16 @@
|
||||
struct type *array_type = check_typedef (value_type (array));
|
||||
struct type *elt_type = check_typedef (TYPE_TARGET_TYPE (array_type));
|
||||
ULONGEST elt_size = type_length_units (elt_type);
|
||||
- ULONGEST elt_offs = elt_size * (index - lowerbound);
|
||||
+ LONGEST elt_offs = index - lowerbound;
|
||||
+ LONGEST elt_stride = TYPE_BYTE_STRIDE (TYPE_INDEX_TYPE (array_type));
|
||||
struct value *v;
|
||||
|
||||
+
|
||||
+ if (elt_stride != 0)
|
||||
+ elt_offs *= elt_stride;
|
||||
+ else
|
||||
+ elt_offs *= elt_size;
|
||||
+
|
||||
|
||||
if (index < lowerbound || (!TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (array_type)
|
||||
- && elt_offs >= type_length_units (array_type)))
|
||||
+ && abs (elt_offs) >= type_length_units (array_type)))
|
||||
{
|
||||
if (type_not_associated (array_type))
|
||||
error (_("no such vector element (vector not associated)"));
|
||||
diff --git a/gdb/valops.c b/gdb/valops.c
|
||||
index 40392e8..24ffacb 100644
|
||||
--- a/gdb/valops.c
|
||||
+++ b/gdb/valops.c
|
||||
@@ -3775,56 +3775,191 @@ value_of_this_silent (const struct language_defn *lang)
|
||||
Index: gdb-7.99.90.20170420/gdb/valops.c
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/valops.c 2017-04-20 22:25:43.973254685 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/valops.c 2017-04-20 22:26:14.370446651 +0200
|
||||
@@ -3786,55 +3786,194 @@
|
||||
struct value *
|
||||
value_slice (struct value *array, int lowbound, int length)
|
||||
{
|
||||
@ -1789,6 +1783,10 @@ index 40392e8..24ffacb 100644
|
||||
- range_type = TYPE_INDEX_TYPE (array_type);
|
||||
- if (get_discrete_bounds (range_type, &lowerbound, &upperbound) < 0)
|
||||
- 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_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_offs = lowbound - ary_low_bound;
|
||||
|
||||
- if (lowbound < lowerbound || length < 0
|
||||
- || lowbound + length - 1 > upperbound)
|
||||
- error (_("slice out of range"));
|
||||
+
|
||||
+ elt_offs *= elt_size;
|
||||
+
|
||||
+ /* 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);
|
||||
- LONGEST offset
|
||||
- = (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;
|
||||
+
|
||||
+ /* 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);
|
||||
+
|
||||
+ 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);
|
||||
|
||||
- if (VALUE_LVAL (array) == lval_memory && value_lazy (array))
|
||||
- slice = allocate_value_lazy (slice_type);
|
||||
+
|
||||
+ if (VALUE_LVAL (array) == lval_memory && value_lazy (array))
|
||||
+ v = allocate_value_lazy (slice_type);
|
||||
+ else
|
||||
@ -1893,7 +1887,9 @@ index 40392e8..24ffacb 100644
|
||||
+ value_embedded_offset (array) + elt_offs,
|
||||
+ 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
|
||||
+ 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);
|
||||
- VALUE_FRAME_ID (slice) = VALUE_FRAME_ID (array);
|
||||
- set_value_offset (slice, value_offset (array) + offset);
|
||||
+ set_value_component_location (v, array);
|
||||
+ VALUE_REGNUM (v) = VALUE_REGNUM (array);
|
||||
+ VALUE_FRAME_ID (v) = VALUE_FRAME_ID (array);
|
||||
+ if (VALUE_LVAL (v) == lval_register)
|
||||
+ {
|
||||
+ 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);
|
||||
}
|
||||
|
||||
@ -1962,11 +1960,11 @@ index 40392e8..24ffacb 100644
|
||||
}
|
||||
|
||||
/* Create a value for a FORTRAN complex number. Currently most of the
|
||||
diff --git a/gdb/value.h b/gdb/value.h
|
||||
index 0b417b4..9c37713 100644
|
||||
--- a/gdb/value.h
|
||||
+++ b/gdb/value.h
|
||||
@@ -1057,6 +1057,8 @@ extern struct value *varying_to_slice (struct value *);
|
||||
Index: gdb-7.99.90.20170420/gdb/value.h
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/value.h 2017-04-20 22:25:43.973254685 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/value.h 2017-04-20 22:26:14.370446651 +0200
|
||||
@@ -1106,6 +1106,8 @@
|
||||
|
||||
extern struct value *value_slice (struct value *, int, int);
|
||||
|
||||
|
@ -23,24 +23,24 @@ git diff --stat -p gdb/master...gdb/users/bheckel/fortran-vla-strings
|
||||
gdb/valprint.c | 6 --
|
||||
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.11.90.20160907/gdb/NEWS 2016-09-07 21:53:22.708210416 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/NEWS 2017-04-20 22:27:47.076032111 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/NEWS 2017-04-20 22:27:49.946050236 +0200
|
||||
@@ -1,6 +1,8 @@
|
||||
What has changed in GDB?
|
||||
(Organized release by release)
|
||||
|
||||
+* 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.
|
||||
Index: gdb-7.11.90.20160907/gdb/c-valprint.c
|
||||
* GDB now supports access to the PKU register on GNU/Linux. The register is
|
||||
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.11.90.20160907/gdb/c-valprint.c 2016-09-07 21:53:22.708210416 +0200
|
||||
@@ -645,6 +645,28 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/c-valprint.c 2017-04-20 22:27:47.077032118 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/c-valprint.c 2017-04-20 22:27:49.947050243 +0200
|
||||
@@ -650,6 +650,28 @@
|
||||
else
|
||||
{
|
||||
/* normal case */
|
||||
@ -69,11 +69,11 @@ Index: gdb-7.11.90.20160907/gdb/c-valprint.c
|
||||
fprintf_filtered (stream, "(");
|
||||
type_print (value_type (val), "", stream, -1);
|
||||
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.11.90.20160907/gdb/dwarf2read.c 2016-09-07 21:54:02.140562825 +0200
|
||||
@@ -1764,7 +1764,8 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/dwarf2read.c 2017-04-20 22:27:47.091032206 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/dwarf2read.c 2017-04-20 22:28:28.878296105 +0200
|
||||
@@ -1872,7 +1872,8 @@
|
||||
|
||||
static int attr_to_dynamic_prop (const struct attribute *attr,
|
||||
struct die_info *die, struct dwarf2_cu *cu,
|
||||
@ -83,7 +83,7 @@ Index: gdb-7.11.90.20160907/gdb/dwarf2read.c
|
||||
|
||||
/* memory allocation interface */
|
||||
|
||||
@@ -11446,7 +11447,7 @@
|
||||
@@ -11557,7 +11558,7 @@
|
||||
{
|
||||
newobj->static_link
|
||||
= 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;
|
||||
@@ -14512,29 +14513,94 @@
|
||||
@@ -14791,29 +14792,94 @@
|
||||
struct gdbarch *gdbarch = get_objfile_arch (objfile);
|
||||
struct type *type, *range_type, *index_type, *char_type;
|
||||
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);
|
||||
type = create_string_type (NULL, char_type, range_type);
|
||||
|
||||
@@ -14864,7 +14930,8 @@
|
||||
@@ -15163,7 +15229,8 @@
|
||||
|
||||
static int
|
||||
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 obstack *obstack = &cu->objfile->objfile_obstack;
|
||||
@@ -14874,14 +14941,33 @@
|
||||
@@ -15173,14 +15240,33 @@
|
||||
|
||||
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))
|
||||
{
|
||||
@@ -14914,8 +15000,28 @@
|
||||
@@ -15213,8 +15299,28 @@
|
||||
baton = XOBNEW (obstack, struct dwarf2_property_baton);
|
||||
baton->referenced_type = die_type (target_die, target_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->kind = PROP_LOCEXPR;
|
||||
gdb_assert (prop->data.baton != NULL);
|
||||
@@ -15027,24 +15133,24 @@
|
||||
@@ -15325,24 +15431,24 @@
|
||||
|
||||
attr = dwarf2_attr (die, DW_AT_byte_stride, cu);
|
||||
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))
|
||||
complaint (&symfile_complaints, _("Missing DW_AT_byte_stride "
|
||||
"- 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);
|
||||
if (attr)
|
||||
@ -294,7 +294,7 @@ Index: gdb-7.11.90.20160907/gdb/dwarf2read.c
|
||||
else if (!low_default_is_valid)
|
||||
complaint (&symfile_complaints, _("Missing DW_AT_lower_bound "
|
||||
"- 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);
|
||||
- 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 (low.kind == PROP_CONST && high.kind == PROP_CONST)
|
||||
@@ -22416,7 +22522,7 @@
|
||||
@@ -22967,7 +23073,7 @@
|
||||
attr = dwarf2_attr (die, DW_AT_allocated, cu);
|
||||
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);
|
||||
}
|
||||
else if (attr != NULL)
|
||||
@@ -22431,7 +22537,7 @@
|
||||
@@ -22982,7 +23088,7 @@
|
||||
attr = dwarf2_attr (die, DW_AT_associated, cu);
|
||||
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);
|
||||
}
|
||||
else if (attr != NULL)
|
||||
@@ -22444,7 +22550,7 @@
|
||||
@@ -22995,7 +23101,7 @@
|
||||
|
||||
/* Read DW_AT_data_location and set in type. */
|
||||
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);
|
||||
|
||||
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.11.90.20160907/gdb/f-typeprint.c 2016-09-07 21:53:22.713210461 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/f-typeprint.c 2017-04-20 22:27:26.288900835 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/f-typeprint.c 2017-04-20 22:27:49.953050280 +0200
|
||||
@@ -37,7 +37,7 @@
|
||||
#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 *,
|
||||
int, int);
|
||||
@@ -54,18 +54,6 @@
|
||||
@@ -53,18 +53,6 @@
|
||||
{
|
||||
enum type_code code;
|
||||
int demangled_args;
|
||||
|
||||
- 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);
|
||||
code = TYPE_CODE (type);
|
||||
if ((varstring != NULL && *varstring != '\0')
|
||||
@@ -87,7 +75,7 @@
|
||||
so don't print an additional pair of ()'s. */
|
||||
@@ -89,7 +77,7 @@
|
||||
|
||||
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, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -157,7 +145,7 @@
|
||||
@@ -159,7 +147,7 @@
|
||||
static void
|
||||
f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
|
||||
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;
|
||||
|
||||
@@ -181,34 +169,50 @@
|
||||
@@ -183,34 +171,50 @@
|
||||
fprintf_filtered (stream, "(");
|
||||
|
||||
if (type_not_associated (type))
|
||||
@ -460,7 +460,7 @@ Index: gdb-7.11.90.20160907/gdb/f-typeprint.c
|
||||
if (arrayprint_recurse_level == 1)
|
||||
fprintf_filtered (stream, ")");
|
||||
else
|
||||
@@ -219,13 +223,14 @@
|
||||
@@ -221,13 +225,14 @@
|
||||
case TYPE_CODE_PTR:
|
||||
case TYPE_CODE_REF:
|
||||
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)
|
||||
fprintf_filtered (stream, ")");
|
||||
|
||||
@@ -376,7 +381,7 @@
|
||||
@@ -378,7 +383,7 @@
|
||||
fputs_filtered (" :: ", stream);
|
||||
fputs_filtered (TYPE_FIELD_NAME (type, index), stream);
|
||||
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);
|
||||
}
|
||||
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.11.90.20160907/gdb/gdbtypes.c 2016-09-07 21:53:22.714210470 +0200
|
||||
@@ -1816,7 +1816,8 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/gdbtypes.c 2017-04-20 22:27:47.093032219 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/gdbtypes.c 2017-04-20 22:27:49.954050287 +0200
|
||||
@@ -1840,7 +1840,8 @@
|
||||
type = check_typedef (type);
|
||||
|
||||
/* 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));
|
||||
|
||||
/* Types that have a dynamic TYPE_DATA_LOCATION are considered
|
||||
@@ -1850,6 +1851,7 @@
|
||||
@@ -1874,6 +1875,7 @@
|
||||
}
|
||||
|
||||
case TYPE_CODE_ARRAY:
|
||||
@ -508,7 +508,7 @@ Index: gdb-7.11.90.20160907/gdb/gdbtypes.c
|
||||
{
|
||||
gdb_assert (TYPE_NFIELDS (type) == 1);
|
||||
|
||||
@@ -1962,7 +1964,8 @@
|
||||
@@ -1986,7 +1988,8 @@
|
||||
struct type *ary_dim;
|
||||
struct dynamic_prop *prop;
|
||||
|
||||
@ -518,7 +518,7 @@ Index: gdb-7.11.90.20160907/gdb/gdbtypes.c
|
||||
|
||||
type = copy_type (type);
|
||||
|
||||
@@ -1987,13 +1990,17 @@
|
||||
@@ -2011,13 +2014,17 @@
|
||||
|
||||
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
|
||||
@@ -2123,6 +2130,28 @@
|
||||
@@ -2147,6 +2154,28 @@
|
||||
return resolved_type;
|
||||
}
|
||||
|
||||
@ -568,7 +568,7 @@ Index: gdb-7.11.90.20160907/gdb/gdbtypes.c
|
||||
/* Worker for resolved_dynamic_type. */
|
||||
|
||||
static struct type *
|
||||
@@ -2171,7 +2200,12 @@
|
||||
@@ -2195,7 +2224,12 @@
|
||||
break;
|
||||
}
|
||||
|
||||
@ -581,10 +581,10 @@ Index: gdb-7.11.90.20160907/gdb/gdbtypes.c
|
||||
resolved_type = resolve_dynamic_array (type, addr_stack);
|
||||
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.11.90.20160907/gdb/testsuite/gdb.cp/vla-cxx.cc 2016-09-07 21:53:22.714210470 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.cp/vla-cxx.cc 2017-04-20 22:27:47.094032225 +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 @@
|
||||
You should have received a copy of the GNU General Public License
|
||||
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];
|
||||
}
|
||||
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.11.90.20160907/gdb/testsuite/gdb.cp/vla-cxx.exp 2016-09-07 21:53:22.715210479 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.cp/vla-cxx.exp 2017-04-20 22:27:47.094032225 +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 @@
|
||||
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 "print ptr" "\\(int \\(\\*\\)\\\[3\\\]\\) $hex"
|
||||
+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
|
||||
+++ 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 @@
|
||||
+# 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*) &intvla + 3)" "= 4" "print temporary pointer, allocated vla"
|
||||
+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
|
||||
+++ 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 @@
|
||||
+! 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
|
||||
+
|
||||
+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
|
||||
+++ 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 @@
|
||||
+# 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 \\)"
|
||||
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.11.90.20160907/gdb/testsuite/gdb.fortran/vla-ptype.exp 2016-09-07 21:53:22.715210479 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.fortran/vla-ptype.exp 2017-04-20 22:27:47.094032225 +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 @@
|
||||
# Check the ptype of various VLA states and pointer to VLA's.
|
||||
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)" \
|
||||
"no such vector element \\\(vector 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
|
||||
+++ 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 @@
|
||||
+# 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
|
||||
+ }
|
||||
+}
|
||||
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
|
||||
+++ 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 @@
|
||||
+! 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()
|
||||
+ l = associated(var_char_p) ! var_char_p-not-associated
|
||||
+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.11.90.20160907/gdb/testsuite/gdb.fortran/vla-type.exp 2016-09-07 21:53:22.716210488 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.fortran/vla-type.exp 2017-04-20 22:27:47.094032225 +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 @@
|
||||
"End Type one" ]
|
||||
|
||||
@ -1222,17 +1222,17 @@ Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/vla-type.exp
|
||||
"End Type one" ] \
|
||||
"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.11.90.20160907/gdb/testsuite/gdb.fortran/vla-value.exp 2016-09-07 21:53:22.716210488 +0200
|
||||
--- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.fortran/vla-value.exp 2017-04-20 22:27:47.095032231 +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 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
standard_testfile "vla.f90"
|
||||
+load_lib "fortran.exp"
|
||||
|
||||
if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
|
||||
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
|
||||
{debug f90 quiet}] } {
|
||||
@@ -25,12 +26,15 @@
|
||||
return -1
|
||||
@ -1278,10 +1278,10 @@ Index: gdb-7.11.90.20160907/gdb/testsuite/gdb.fortran/vla-value.exp
|
||||
"print associated &pvla"
|
||||
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)"
|
||||
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.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.orig/gdb/testsuite/gdb.mi/mi-var-child-f.exp 2017-04-20 22:27:47.095032231 +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 @@
|
||||
|
||||
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\\)"] \
|
||||
[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.11.90.20160907/gdb/testsuite/gdb.mi/mi-vla-fortran.exp 2016-09-07 21:53:22.716210488 +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.99.90.20170420/gdb/testsuite/gdb.mi/mi-vla-fortran.exp 2017-04-20 22:27:49.957050306 +0200
|
||||
@@ -17,7 +17,9 @@
|
||||
# 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"
|
||||
mi_gdb_test "592-var-show-format pvla2_associated" \
|
||||
"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.11.90.20160907/gdb/typeprint.c 2016-09-07 21:53:22.717210497 +0200
|
||||
@@ -485,6 +485,25 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/typeprint.c 2017-04-20 22:27:47.095032231 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/typeprint.c 2017-04-20 22:27:49.957050306 +0200
|
||||
@@ -474,6 +474,25 @@
|
||||
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);
|
||||
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.11.90.20160907/gdb/valops.c 2016-09-07 21:53:22.717210497 +0200
|
||||
@@ -1562,6 +1562,19 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/valops.c 2017-04-20 22:27:47.096032238 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/valops.c 2017-04-20 22:27:49.958050312 +0200
|
||||
@@ -1574,6 +1574,19 @@
|
||||
if (TYPE_CODE (base_type) == TYPE_CODE_PTR)
|
||||
{
|
||||
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.
|
||||
Get the real type of the enclosing object. */
|
||||
@@ -1577,8 +1590,7 @@
|
||||
@@ -1589,8 +1602,7 @@
|
||||
else
|
||||
/* Retrieve the enclosing object pointed to. */
|
||||
arg2 = value_at_lazy (enc_type,
|
||||
@ -1469,11 +1469,11 @@ Index: gdb-7.11.90.20160907/gdb/valops.c
|
||||
|
||||
enc_type = value_type (arg2);
|
||||
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.11.90.20160907/gdb/valprint.c 2016-09-07 21:53:22.718210506 +0200
|
||||
@@ -1141,12 +1141,6 @@
|
||||
--- gdb-7.99.90.20170420.orig/gdb/valprint.c 2017-04-20 22:25:38.224218378 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/valprint.c 2017-04-20 22:27:49.959050318 +0200
|
||||
@@ -1166,12 +1166,6 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -27,40 +27,43 @@ cannot reproduce it.
|
||||
Thanks,
|
||||
Jan
|
||||
|
||||
--- ./gdb/dwarf2loc.c 2016-08-29 04:01:25.000000000 +0200
|
||||
+++ ./gdb/dwarf2loc.c 2016-09-01 11:00:20.258909494 +0200
|
||||
@@ -2289,6 +2289,15 @@ const struct dwarf_expr_context_funcs dw
|
||||
dwarf_expr_get_obj_addr
|
||||
};
|
||||
Index: gdb-7.99.90.20170420/gdb/dwarf2loc.c
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/dwarf2loc.c 2017-04-20 22:28:59.686490666 +0200
|
||||
+++ 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
|
||||
+select_frame_cleanup (void *arg)
|
||||
+{
|
||||
+ struct frame_info *frame = (struct frame_info *) arg;
|
||||
+
|
||||
+ 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
|
||||
extern int dwarf_always_disassemble;
|
||||
@@ -2366,6 +2367,20 @@
|
||||
ctx.per_cu = per_cu;
|
||||
ctx.obj_address = 0;
|
||||
|
||||
ctx = new_dwarf_expr_context ();
|
||||
old_chain = make_cleanup_free_dwarf_expr_context (ctx);
|
||||
+frame_id old_frame_id (get_frame_id (deprecated_safe_get_selected_frame ()));
|
||||
+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 ());
|
||||
+ if (frame != NULL)
|
||||
+ select_frame (frame);
|
||||
+
|
||||
value_chain = make_cleanup_value_free_to_mark (value_mark ());
|
||||
scoped_value_mark free_values;
|
||||
|
||||
ctx->gdbarch = get_objfile_arch (objfile);
|
||||
Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90
|
||||
ctx.gdbarch = get_objfile_arch (objfile);
|
||||
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
|
||||
+++ 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 @@
|
||||
+! 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
|
||||
+ dummy = 1
|
||||
+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
|
||||
+++ 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 @@
|
||||
+# 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'.*}
|
||||
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
|
||||
+++ 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 @@
|
||||
+! Copyright 2010 Free Software Foundation, Inc.
|
||||
+!
|
||||
|
10
gdb.changes
10
gdb.changes
@ -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
|
||||
|
||||
|
268
gdb.spec
268
gdb.spec
@ -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
|
||||
Name: gdb
|
||||
|
||||
Version: 7.12.1
|
||||
Version: 7.99.90.20170420
|
||||
Release: 0
|
||||
|
||||
# The release always contains a leading reserved number, start it at 1.
|
||||
@ -89,139 +89,135 @@ Source13: gdb-rpmlintrc
|
||||
|
||||
#Fedora Packages begin
|
||||
Patch1: gdb-6.3-rh-testversion-20041202.patch
|
||||
Patch2: gdb-upstream.patch
|
||||
Patch3: gdb-archer.patch
|
||||
Patch4: gdb-vla-intel-fortran-strides.patch
|
||||
Patch5: gdb-vla-intel-fortran-vla-strings.patch
|
||||
Patch6: gdb-vla-intel-stringbt-fix.patch
|
||||
Patch7: gdb-6.3-rh-dummykfail-20041202.patch
|
||||
Patch8: gdb-6.3-ppc64syscall-20040622.patch
|
||||
Patch9: gdb-6.3-ppc64displaysymbol-20041124.patch
|
||||
Patch10: gdb-6.3-gstack-20050411.patch
|
||||
Patch11: gdb-6.3-test-pie-20050107.patch
|
||||
Patch12: gdb-6.3-test-self-20050110.patch
|
||||
Patch13: gdb-6.3-test-dtorfix-20050121.patch
|
||||
Patch14: gdb-6.3-test-movedir-20050125.patch
|
||||
Patch15: gdb-6.3-threaded-watchpoints2-20050225.patch
|
||||
Patch16: gdb-6.3-inferior-notification-20050721.patch
|
||||
Patch17: gdb-6.3-inheritancetest-20050726.patch
|
||||
Patch18: gdb-6.3-readnever-20050907.patch
|
||||
Patch19: gdb-6.5-bz203661-emit-relocs.patch
|
||||
Patch20: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
|
||||
Patch21: gdb-6.5-sharedlibrary-path.patch
|
||||
Patch22: gdb-6.5-BEA-testsuite.patch
|
||||
Patch23: gdb-6.5-last-address-space-byte-test.patch
|
||||
Patch24: gdb-6.5-readline-long-line-crash-test.patch
|
||||
Patch25: gdb-6.5-bz216711-clone-is-outermost.patch
|
||||
Patch26: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
|
||||
Patch27: gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
|
||||
Patch28: gdb-6.5-bz109921-DW_AT_decl_file-test.patch
|
||||
Patch29: gdb-6.3-bz140532-ppc-unwinding-test.patch
|
||||
Patch30: gdb-6.3-bz202689-exec-from-pthread-test.patch
|
||||
Patch31: gdb-6.6-bz230000-power6-disassembly-test.patch
|
||||
Patch32: gdb-6.6-bz229517-gcore-without-terminal.patch
|
||||
Patch33: gdb-6.6-bz235197-fork-detach-info.patch
|
||||
Patch34: gdb-6.6-testsuite-timeouts.patch
|
||||
Patch35: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
|
||||
Patch36: gdb-6.6-scheduler_locking-step-is-default.patch
|
||||
Patch37: gdb-6.3-attach-see-vdso-test.patch
|
||||
Patch38: gdb-6.5-bz243845-stale-testing-zombie-test.patch
|
||||
Patch39: gdb-6.6-buildid-locate.patch
|
||||
Patch40: gdb-6.6-buildid-locate-solib-missing-ids.patch
|
||||
Patch41: gdb-6.6-buildid-locate-rpm.patch
|
||||
Patch42: gdb-6.7-charsign-test.patch
|
||||
Patch43: gdb-6.7-ppc-clobbered-registers-O2-test.patch
|
||||
Patch44: gdb-6.7-testsuite-stable-results.patch
|
||||
Patch45: gdb-6.5-ia64-libunwind-leak-test.patch
|
||||
Patch46: gdb-6.5-missed-trap-on-step-test.patch
|
||||
Patch47: gdb-6.7-bz426600-DW_TAG_interface_type-test.patch
|
||||
Patch48: gdb-6.5-gcore-buffer-limit-test.patch
|
||||
Patch49: gdb-6.6-threads-static-test.patch
|
||||
Patch50: gdb-6.3-mapping-zero-inode-test.patch
|
||||
Patch51: gdb-6.3-focus-cmd-prev-test.patch
|
||||
Patch52: gdb-6.8-bz442765-threaded-exec-test.patch
|
||||
Patch53: gdb-6.8-sparc64-silence-memcpy-check.patch
|
||||
Patch54: gdb-6.5-section-num-fixup-test.patch
|
||||
Patch55: gdb-6.8-bz436037-reg-no-longer-active.patch
|
||||
Patch56: gdb-6.8-watchpoint-conditionals-test.patch
|
||||
Patch57: gdb-6.8-bz466901-backtrace-full-prelinked.patch
|
||||
Patch58: gdb-simultaneous-step-resume-breakpoint-test.patch
|
||||
Patch59: gdb-core-open-vdso-warning.patch
|
||||
Patch60: gdb-x86_64-i386-syscall-restart.patch
|
||||
Patch61: gdb-bz533176-fortran-omp-step.patch
|
||||
Patch62: gdb-follow-child-stale-parent.patch
|
||||
Patch63: gdb-ccache-workaround.patch
|
||||
Patch64: gdb-archer-pie-addons.patch
|
||||
Patch65: gdb-archer-pie-addons-keep-disabled.patch
|
||||
Patch66: gdb-lineno-makeup-test.patch
|
||||
Patch67: gdb-ppc-power7-test.patch
|
||||
Patch68: gdb-bz541866-rwatch-before-run.patch
|
||||
Patch69: gdb-moribund-utrace-workaround.patch
|
||||
Patch70: gdb-archer-next-over-throw-cxx-exec.patch
|
||||
Patch71: gdb-bz601887-dwarf4-rh-test.patch
|
||||
Patch72: gdb-6.6-buildid-locate-core-as-arg.patch
|
||||
Patch73: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
|
||||
Patch74: gdb-test-bt-cfi-without-die.patch
|
||||
Patch75: gdb-gdb-add-index-script.patch
|
||||
Patch76: gdb-bz568248-oom-is-error.patch
|
||||
Patch77: gdb-bz634108-solib_address.patch
|
||||
Patch78: gdb-test-pid0-core.patch
|
||||
Patch79: gdb-test-dw2-aranges.patch
|
||||
Patch80: gdb-test-expr-cumulative-archer.patch
|
||||
Patch81: gdb-physname-pr11734-test.patch
|
||||
Patch82: gdb-physname-pr12273-test.patch
|
||||
Patch83: gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
|
||||
Patch84: gdb-test-ivy-bridge.patch
|
||||
Patch85: gdb-glibc-vdso-workaround.patch
|
||||
Patch86: gdb-runtest-pie-override.patch
|
||||
Patch87: gdb-attach-fail-reasons-5of5.patch
|
||||
Patch88: gdb-stale-frame_info.patch
|
||||
Patch89: gdb-glibc-strstr-workaround.patch
|
||||
Patch90: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
|
||||
Patch91: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
|
||||
Patch92: gdb-rhbz795424-bitpos-20of25.patch
|
||||
Patch93: gdb-rhbz795424-bitpos-21of25.patch
|
||||
Patch94: gdb-rhbz795424-bitpos-22of25.patch
|
||||
Patch95: gdb-rhbz795424-bitpos-23of25.patch
|
||||
Patch96: gdb-rhbz795424-bitpos-25of25.patch
|
||||
Patch97: gdb-rhbz795424-bitpos-25of25-test.patch
|
||||
Patch98: gdb-rhbz795424-bitpos-lazyvalue.patch
|
||||
Patch99: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
|
||||
Patch100: gdb-gnat-dwarf-crash-3of3.patch
|
||||
Patch101: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
|
||||
Patch102: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
|
||||
Patch103: gdb-archer-vla-tests.patch
|
||||
Patch104: gdb-vla-intel-tests.patch
|
||||
Patch105: gdb-btrobust.patch
|
||||
Patch106: gdb-fortran-frame-string.patch
|
||||
Patch107: gdb-python-gil.patch
|
||||
Patch108: gdb-rhbz1156192-recursive-dlopen-test.patch
|
||||
Patch109: gdb-jit-reader-multilib.patch
|
||||
Patch110: gdb-rhbz1149205-catch-syscall-after-fork-test.patch
|
||||
Patch111: gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch
|
||||
Patch112: gdb-rhbz1350436-type-printers-error.patch
|
||||
Patch113: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
|
||||
Patch114: gdb-bz1219747-attach-kills.patch
|
||||
Patch115: gdb-fedora-libncursesw.patch
|
||||
Patch116: gdb-opcodes-clflushopt-test.patch
|
||||
Patch117: gdb-dts-rhel6-python-compat.patch
|
||||
Patch118: gdb-6.6-buildid-locate-rpm-scl.patch
|
||||
Patch119: gdb-readline62-ask-more-rh.patch
|
||||
Patch120: gdb-6.8-attach-signalled-detach-stopped.patch
|
||||
Patch121: gdb-6.8-quit-never-aborts.patch
|
||||
Patch122: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch
|
||||
Patch123: gdb-container-rh-pkg.patch
|
||||
Patch124: gdb-rhbz1325795-framefilters-test.patch
|
||||
Patch125: gdb-linux_perf-bundle.patch
|
||||
Patch126: gdb-bison-old.patch
|
||||
Patch127: gdb-testsuite-casts.patch
|
||||
Patch128: gdb-testsuite-m-static.patch
|
||||
Patch129: gdb-tls-1of2.patch
|
||||
Patch130: gdb-tls-2of2.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
|
||||
Patch2: gdb-archer.patch
|
||||
Patch3: gdb-vla-intel-fortran-strides.patch
|
||||
Patch4: gdb-vla-intel-fortran-vla-strings.patch
|
||||
Patch5: gdb-vla-intel-stringbt-fix.patch
|
||||
Patch6: gdb-6.3-rh-dummykfail-20041202.patch
|
||||
Patch7: gdb-6.3-ppc64syscall-20040622.patch
|
||||
Patch8: gdb-6.3-ppc64displaysymbol-20041124.patch
|
||||
Patch9: gdb-6.3-gstack-20050411.patch
|
||||
Patch10: gdb-6.3-test-pie-20050107.patch
|
||||
Patch11: gdb-6.3-test-self-20050110.patch
|
||||
Patch12: gdb-6.3-test-dtorfix-20050121.patch
|
||||
Patch13: gdb-6.3-test-movedir-20050125.patch
|
||||
Patch14: gdb-6.3-threaded-watchpoints2-20050225.patch
|
||||
Patch15: gdb-6.3-inferior-notification-20050721.patch
|
||||
Patch16: gdb-6.3-inheritancetest-20050726.patch
|
||||
Patch17: gdb-6.3-readnever-20050907.patch
|
||||
Patch18: gdb-6.5-bz203661-emit-relocs.patch
|
||||
Patch19: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
|
||||
Patch20: gdb-6.5-sharedlibrary-path.patch
|
||||
Patch21: gdb-6.5-BEA-testsuite.patch
|
||||
Patch22: gdb-6.5-last-address-space-byte-test.patch
|
||||
Patch23: gdb-6.5-readline-long-line-crash-test.patch
|
||||
Patch24: gdb-6.5-bz216711-clone-is-outermost.patch
|
||||
Patch25: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
|
||||
Patch26: gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
|
||||
Patch27: gdb-6.5-bz109921-DW_AT_decl_file-test.patch
|
||||
Patch28: gdb-6.3-bz140532-ppc-unwinding-test.patch
|
||||
Patch29: gdb-6.3-bz202689-exec-from-pthread-test.patch
|
||||
Patch30: gdb-6.6-bz230000-power6-disassembly-test.patch
|
||||
Patch31: gdb-6.6-bz229517-gcore-without-terminal.patch
|
||||
Patch32: gdb-6.6-bz235197-fork-detach-info.patch
|
||||
Patch33: gdb-6.6-testsuite-timeouts.patch
|
||||
Patch34: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
|
||||
Patch35: gdb-6.6-scheduler_locking-step-is-default.patch
|
||||
Patch36: gdb-6.3-attach-see-vdso-test.patch
|
||||
Patch37: gdb-6.5-bz243845-stale-testing-zombie-test.patch
|
||||
Patch38: gdb-6.6-buildid-locate.patch
|
||||
Patch39: gdb-6.6-buildid-locate-solib-missing-ids.patch
|
||||
Patch40: gdb-6.6-buildid-locate-rpm.patch
|
||||
Patch41: gdb-6.7-charsign-test.patch
|
||||
Patch42: gdb-6.7-ppc-clobbered-registers-O2-test.patch
|
||||
Patch43: gdb-6.7-testsuite-stable-results.patch
|
||||
Patch44: gdb-6.5-ia64-libunwind-leak-test.patch
|
||||
Patch45: gdb-6.5-missed-trap-on-step-test.patch
|
||||
Patch46: gdb-6.5-gcore-buffer-limit-test.patch
|
||||
Patch47: gdb-6.6-threads-static-test.patch
|
||||
Patch48: gdb-6.3-mapping-zero-inode-test.patch
|
||||
Patch49: gdb-6.3-focus-cmd-prev-test.patch
|
||||
Patch50: gdb-6.8-bz442765-threaded-exec-test.patch
|
||||
Patch51: gdb-6.8-sparc64-silence-memcpy-check.patch
|
||||
Patch52: gdb-6.5-section-num-fixup-test.patch
|
||||
Patch53: gdb-6.8-bz436037-reg-no-longer-active.patch
|
||||
Patch54: gdb-6.8-watchpoint-conditionals-test.patch
|
||||
Patch55: gdb-6.8-bz466901-backtrace-full-prelinked.patch
|
||||
Patch56: gdb-simultaneous-step-resume-breakpoint-test.patch
|
||||
Patch57: gdb-core-open-vdso-warning.patch
|
||||
Patch58: gdb-x86_64-i386-syscall-restart.patch
|
||||
Patch59: gdb-bz533176-fortran-omp-step.patch
|
||||
Patch60: gdb-follow-child-stale-parent.patch
|
||||
Patch61: gdb-ccache-workaround.patch
|
||||
Patch62: gdb-archer-pie-addons.patch
|
||||
Patch63: gdb-archer-pie-addons-keep-disabled.patch
|
||||
Patch64: gdb-lineno-makeup-test.patch
|
||||
Patch65: gdb-ppc-power7-test.patch
|
||||
Patch66: gdb-bz541866-rwatch-before-run.patch
|
||||
Patch67: gdb-moribund-utrace-workaround.patch
|
||||
Patch68: gdb-archer-next-over-throw-cxx-exec.patch
|
||||
Patch69: gdb-bz601887-dwarf4-rh-test.patch
|
||||
Patch70: gdb-6.6-buildid-locate-core-as-arg.patch
|
||||
Patch71: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
|
||||
Patch72: gdb-test-bt-cfi-without-die.patch
|
||||
Patch73: gdb-gdb-add-index-script.patch
|
||||
Patch74: gdb-bz568248-oom-is-error.patch
|
||||
Patch75: gdb-bz634108-solib_address.patch
|
||||
Patch76: gdb-test-pid0-core.patch
|
||||
Patch77: gdb-test-dw2-aranges.patch
|
||||
Patch78: gdb-test-expr-cumulative-archer.patch
|
||||
Patch79: gdb-physname-pr11734-test.patch
|
||||
Patch80: gdb-physname-pr12273-test.patch
|
||||
Patch81: gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
|
||||
Patch82: gdb-test-ivy-bridge.patch
|
||||
Patch83: gdb-glibc-vdso-workaround.patch
|
||||
Patch84: gdb-runtest-pie-override.patch
|
||||
Patch85: gdb-attach-fail-reasons-5of5.patch
|
||||
Patch86: gdb-stale-frame_info.patch
|
||||
Patch87: gdb-glibc-strstr-workaround.patch
|
||||
Patch88: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
|
||||
Patch89: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
|
||||
Patch90: gdb-rhbz795424-bitpos-20of25.patch
|
||||
Patch91: gdb-rhbz795424-bitpos-21of25.patch
|
||||
Patch92: gdb-rhbz795424-bitpos-22of25.patch
|
||||
Patch93: gdb-rhbz795424-bitpos-23of25.patch
|
||||
Patch94: gdb-rhbz795424-bitpos-25of25.patch
|
||||
Patch95: gdb-rhbz795424-bitpos-25of25-test.patch
|
||||
Patch96: gdb-rhbz795424-bitpos-lazyvalue.patch
|
||||
Patch97: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
|
||||
Patch98: gdb-gnat-dwarf-crash-3of3.patch
|
||||
Patch99: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
|
||||
Patch100: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
|
||||
Patch101: gdb-archer-vla-tests.patch
|
||||
Patch102: gdb-vla-intel-tests.patch
|
||||
Patch103: gdb-btrobust.patch
|
||||
Patch104: gdb-fortran-frame-string.patch
|
||||
Patch105: gdb-python-gil.patch
|
||||
Patch106: gdb-rhbz1156192-recursive-dlopen-test.patch
|
||||
Patch107: gdb-jit-reader-multilib.patch
|
||||
Patch108: gdb-rhbz1149205-catch-syscall-after-fork-test.patch
|
||||
Patch109: gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch
|
||||
Patch110: gdb-rhbz1350436-type-printers-error.patch
|
||||
Patch111: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
|
||||
Patch112: gdb-bz1219747-attach-kills.patch
|
||||
Patch113: gdb-fedora-libncursesw.patch
|
||||
Patch114: gdb-opcodes-clflushopt-test.patch
|
||||
Patch115: gdb-dts-rhel6-python-compat.patch
|
||||
Patch116: gdb-6.6-buildid-locate-rpm-scl.patch
|
||||
Patch117: gdb-readline62-ask-more-rh.patch
|
||||
Patch118: gdb-6.8-attach-signalled-detach-stopped.patch
|
||||
Patch119: gdb-6.8-quit-never-aborts.patch
|
||||
Patch120: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch
|
||||
Patch121: gdb-container-rh-pkg.patch
|
||||
Patch122: gdb-rhbz1325795-framefilters-test.patch
|
||||
Patch123: gdb-linux_perf-bundle.patch
|
||||
Patch124: gdb-tls-1of2.patch
|
||||
Patch125: gdb-tls-2of2.patch
|
||||
Patch126: gdb-libexec-add-index.patch
|
||||
Patch127: gdb-add-index-chmod.patch
|
||||
Patch128: gdb-rhbz1398387-tab-crash-test.patch
|
||||
Patch129: gdb-release-werror.patch
|
||||
Patch130: gdb-testsuite-readline63-sigint.patch
|
||||
#Fedora Packages end
|
||||
|
||||
# Upstream patch to fix gcc -Werror
|
||||
@ -517,10 +513,6 @@ find -name "*.info*"|xargs rm -f
|
||||
%patch128 -p1
|
||||
%patch129 -p1
|
||||
%patch130 -p1
|
||||
%patch131 -p1
|
||||
%patch132 -p1
|
||||
%patch133 -p1
|
||||
%patch134 -p1
|
||||
#Fedora patching end
|
||||
|
||||
%patch1002 -p1
|
||||
|
Loading…
x
Reference in New Issue
Block a user