Rebase to FSF GDB 7.10.50.20151027 (trunk snapshot).

This commit is contained in:
Jan Kratochvil 2015-11-03 22:28:36 +01:00
parent ebe9b7c7c7
commit 23f398e61a
25 changed files with 1746 additions and 3631 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
/gdb-libstdc++-v3-python-r225521.tar.xz
/gdb-7.10.tar.xz
/gdb-7.10.50.20151027.tar.xz

View File

@ -11,10 +11,10 @@
* gdb.texinfo (File Options): Document --readnever.
Index: gdb-7.9.50.20150520/gdb/doc/gdb.texinfo
Index: gdb-7.10.50.20151022/gdb/doc/gdb.texinfo
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/doc/gdb.texinfo 2015-05-31 16:34:58.436379663 +0200
+++ gdb-7.9.50.20150520/gdb/doc/gdb.texinfo 2015-05-31 16:35:03.452416381 +0200
--- 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
the default, which is to read it incrementally as it is needed.
This makes startup slower, but makes future operations faster.
@ -28,10 +28,10 @@ Index: gdb-7.9.50.20150520/gdb/doc/gdb.texinfo
@end table
@node Mode Options
Index: gdb-7.9.50.20150520/gdb/main.c
Index: gdb-7.10.50.20151022/gdb/main.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/main.c 2015-05-31 16:34:58.439379685 +0200
+++ gdb-7.9.50.20150520/gdb/main.c 2015-05-31 16:35:20.547541518 +0200
--- 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)
{"tui", no_argument, 0, OPT_TUI},
{"dbx", no_argument, &dbx_commands, 1},
@ -48,10 +48,10 @@ Index: gdb-7.9.50.20150520/gdb/main.c
--write Set writing into executable and core files.\n\n\
"), stream);
fputs_unfiltered (_("\
Index: gdb-7.9.50.20150520/gdb/symfile.c
Index: gdb-7.10.50.20151022/gdb/symfile.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/symfile.c 2015-05-31 16:34:58.440379692 +0200
+++ gdb-7.9.50.20150520/gdb/symfile.c 2015-05-31 16:35:03.454416395 +0200
--- 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 (
/* Global variables owned by this file. */
@ -60,33 +60,33 @@ Index: gdb-7.9.50.20150520/gdb/symfile.c
/* Functions this file defines. */
Index: gdb-7.9.50.20150520/gdb/dwarf2read.c
Index: gdb-7.10.50.20151022/gdb/dwarf2read.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/dwarf2read.c 2015-05-31 16:34:58.446379736 +0200
+++ gdb-7.9.50.20150520/gdb/dwarf2read.c 2015-05-31 16:35:03.459416432 +0200
@@ -69,6 +69,7 @@
#include "source.h"
--- 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"
+#include "top.h"
#include <fcntl.h>
#include <sys/types.h>
@@ -2050,7 +2051,8 @@ dwarf2_has_info (struct objfile *objfile
@@ -2059,7 +2060,8 @@ dwarf2_has_info (struct objfile *objfile
(void *) names);
dwarf2_per_objfile->objfile = objfile;
}
- return (!dwarf2_per_objfile->info.is_virtual
+ return !readnever_symbol_files &&
+ (!dwarf2_per_objfile->info.is_virtual
&& dwarf2_per_objfile->info.s.asection != NULL
&& dwarf2_per_objfile->info.s.section != NULL
&& !dwarf2_per_objfile->abbrev.is_virtual
&& dwarf2_per_objfile->abbrev.s.asection != NULL);
Index: gdb-7.9.50.20150520/gdb/top.h
&& dwarf2_per_objfile->abbrev.s.section != NULL);
Index: gdb-7.10.50.20151022/gdb/top.h
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/top.h 2015-05-31 16:34:58.448379751 +0200
+++ gdb-7.9.50.20150520/gdb/top.h 2015-05-31 16:35:03.459416432 +0200
@@ -67,6 +67,7 @@ extern void set_prompt (const char *s);
--- 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
/* From random places. */
extern int readnow_symbol_files;

View File

@ -1,7 +1,7 @@
Index: gdb-7.9.90.20150709/gdb/corelow.c
Index: gdb-7.10.50.20151022/gdb/corelow.c
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/corelow.c 2015-07-09 22:05:20.988044312 +0200
+++ gdb-7.9.90.20150709/gdb/corelow.c 2015-07-09 22:05:42.057222722 +0200
--- gdb-7.10.50.20151022.orig/gdb/corelow.c 2015-10-22 22:30:46.226403087 +0200
+++ gdb-7.10.50.20151022/gdb/corelow.c 2015-10-22 22:30:49.266420986 +0200
@@ -45,6 +45,10 @@
#include "gdb_bfd.h"
#include "completer.h"
@ -94,11 +94,11 @@ Index: gdb-7.9.90.20150709/gdb/corelow.c
+ NULL, NULL, NULL,
+ &setlist, &showlist);
}
Index: gdb-7.9.90.20150709/gdb/doc/gdb.texinfo
Index: gdb-7.10.50.20151022/gdb/doc/gdb.texinfo
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/doc/gdb.texinfo 2015-07-09 22:05:20.988044312 +0200
+++ gdb-7.9.90.20150709/gdb/doc/gdb.texinfo 2015-07-09 22:05:42.067222806 +0200
@@ -18304,6 +18304,27 @@ information files.
--- gdb-7.10.50.20151022.orig/gdb/doc/gdb.texinfo 2015-10-22 22:30:46.233403128 +0200
+++ gdb-7.10.50.20151022/gdb/doc/gdb.texinfo 2015-10-22 22:30:49.271421015 +0200
@@ -18495,6 +18495,27 @@ information files.
@end table
@ -126,10 +126,10 @@ Index: gdb-7.9.90.20150709/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.9.90.20150709/gdb/solib-svr4.c
Index: gdb-7.10.50.20151022/gdb/solib-svr4.c
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/solib-svr4.c 2015-07-09 22:05:20.988044312 +0200
+++ gdb-7.9.90.20150709/gdb/solib-svr4.c 2015-07-09 22:05:42.068222815 +0200
--- gdb-7.10.50.20151022.orig/gdb/solib-svr4.c 2015-10-22 22:30:46.235403140 +0200
+++ gdb-7.10.50.20151022/gdb/solib-svr4.c 2015-10-22 22:30:49.272421021 +0200
@@ -45,6 +45,7 @@
#include "auxv.h"
#include "gdb_bfd.h"
@ -138,7 +138,7 @@ Index: gdb-7.9.90.20150709/gdb/solib-svr4.c
static struct link_map_offsets *svr4_fetch_link_map_offsets (void);
static int svr4_have_link_map_offsets (void);
@@ -1379,9 +1380,52 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
@@ -1416,9 +1417,52 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
continue;
}
@ -194,11 +194,11 @@ Index: gdb-7.9.90.20150709/gdb/solib-svr4.c
xfree (buffer);
/* If this entry has no name, or its name matches the name
Index: gdb-7.9.90.20150709/gdb/elfread.c
Index: gdb-7.10.50.20151022/gdb/elfread.c
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/elfread.c 2015-07-09 22:05:20.988044312 +0200
+++ gdb-7.9.90.20150709/gdb/elfread.c 2015-07-09 22:05:42.068222815 +0200
@@ -1250,9 +1250,10 @@ elf_symfile_read (struct objfile *objfil
--- gdb-7.10.50.20151022.orig/gdb/elfread.c 2015-10-22 22:30:46.235403140 +0200
+++ gdb-7.10.50.20151022/gdb/elfread.c 2015-10-22 22:30:49.272421021 +0200
@@ -1259,9 +1259,10 @@ elf_symfile_read (struct objfile *objfil
&& objfile->separate_debug_objfile == NULL
&& objfile->separate_debug_objfile_backlink == NULL)
{
@ -211,7 +211,7 @@ Index: gdb-7.9.90.20150709/gdb/elfread.c
if (debugfile == NULL)
debugfile = find_separate_debug_file_by_debuglink (objfile);
@@ -1266,6 +1267,12 @@ elf_symfile_read (struct objfile *objfil
@@ -1275,6 +1276,12 @@ elf_symfile_read (struct objfile *objfil
symbol_file_add_separate (abfd, debugfile, symfile_flags, objfile);
do_cleanups (cleanup);
}
@ -224,10 +224,10 @@ Index: gdb-7.9.90.20150709/gdb/elfread.c
}
}
Index: gdb-7.9.90.20150709/gdb/symfile.h
Index: gdb-7.10.50.20151022/gdb/symfile.h
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/symfile.h 2015-07-09 22:05:20.988044312 +0200
+++ gdb-7.9.90.20150709/gdb/symfile.h 2015-07-09 22:05:42.068222815 +0200
--- gdb-7.10.50.20151022.orig/gdb/symfile.h 2015-10-22 22:30:46.236403145 +0200
+++ gdb-7.10.50.20151022/gdb/symfile.h 2015-10-22 22:30:49.273421027 +0200
@@ -584,6 +584,10 @@ void expand_symtabs_matching (expand_sym
void map_symbol_filenames (symbol_filename_ftype *fun, void *data,
int need_fullname);
@ -239,11 +239,11 @@ Index: gdb-7.9.90.20150709/gdb/symfile.h
/* From dwarf2read.c */
/* Names for a dwarf2 debugging section. The field NORMAL is the normal
Index: gdb-7.9.90.20150709/gdb/testsuite/lib/gdb.exp
Index: gdb-7.10.50.20151022/gdb/testsuite/lib/gdb.exp
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/testsuite/lib/gdb.exp 2015-07-09 22:05:20.988044312 +0200
+++ gdb-7.9.90.20150709/gdb/testsuite/lib/gdb.exp 2015-07-09 22:05:42.070222832 +0200
@@ -1573,6 +1573,16 @@ proc default_gdb_start { } {
--- gdb-7.10.50.20151022.orig/gdb/testsuite/lib/gdb.exp 2015-10-22 22:30:46.237403151 +0200
+++ gdb-7.10.50.20151022/gdb/testsuite/lib/gdb.exp 2015-10-22 22:30:49.273421027 +0200
@@ -1640,6 +1640,16 @@ proc default_gdb_start { } {
warning "Couldn't set the width to 0."
}
}
@ -260,11 +260,11 @@ Index: gdb-7.9.90.20150709/gdb/testsuite/lib/gdb.exp
return 0
}
Index: gdb-7.9.90.20150709/gdb/testsuite/lib/mi-support.exp
Index: gdb-7.10.50.20151022/gdb/testsuite/lib/mi-support.exp
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/testsuite/lib/mi-support.exp 2015-07-09 22:05:20.988044312 +0200
+++ gdb-7.9.90.20150709/gdb/testsuite/lib/mi-support.exp 2015-07-09 22:05:42.070222832 +0200
@@ -214,6 +214,16 @@ proc default_mi_gdb_start { args } {
--- gdb-7.10.50.20151022.orig/gdb/testsuite/lib/mi-support.exp 2015-10-22 22:30:49.274421033 +0200
+++ gdb-7.10.50.20151022/gdb/testsuite/lib/mi-support.exp 2015-10-22 22:31:24.869631575 +0200
@@ -204,6 +204,16 @@ proc default_mi_gdb_start { args } {
warning "Couldn't set the width to 0."
}
}
@ -278,14 +278,14 @@ Index: gdb-7.9.90.20150709/gdb/testsuite/lib/mi-support.exp
+ warning "Could not disable the missing debug infos warnings.."
+ }
+ }
# If allowing the inferior to have its own PTY then assign the inferior
# its own terminal device here.
# Create the new PTY for the inferior process.
if { $separate_inferior_pty } {
Index: gdb-7.9.90.20150709/gdb/objfiles.h
Index: gdb-7.10.50.20151022/gdb/objfiles.h
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/objfiles.h 2015-07-09 22:05:20.988044312 +0200
+++ gdb-7.9.90.20150709/gdb/objfiles.h 2015-07-09 22:05:42.071222840 +0200
@@ -459,6 +459,10 @@ struct objfile
--- gdb-7.10.50.20151022.orig/gdb/objfiles.h 2015-10-22 22:30:46.238403157 +0200
+++ gdb-7.10.50.20151022/gdb/objfiles.h 2015-10-22 22:30:49.274421033 +0200
@@ -489,6 +489,10 @@ struct objfile
#define OBJF_NOT_FILENAME (1 << 6)
@ -296,10 +296,10 @@ Index: gdb-7.9.90.20150709/gdb/objfiles.h
/* Declarations for functions defined in objfiles.c */
extern struct objfile *allocate_objfile (bfd *, const char *name, int);
Index: gdb-7.9.90.20150709/gdb/testsuite/gdb.base/corefile.exp
Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.base/corefile.exp
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/testsuite/gdb.base/corefile.exp 2015-07-09 22:05:20.988044312 +0200
+++ gdb-7.9.90.20150709/gdb/testsuite/gdb.base/corefile.exp 2015-07-09 22:05:42.071222840 +0200
--- gdb-7.10.50.20151022.orig/gdb/testsuite/gdb.base/corefile.exp 2015-10-22 22:30:46.238403157 +0200
+++ gdb-7.10.50.20151022/gdb/testsuite/gdb.base/corefile.exp 2015-10-22 22:30:49.274421033 +0200
@@ -293,3 +293,33 @@ gdb_test_multiple "core-file $corefile"
pass $test
}
@ -334,10 +334,10 @@ Index: gdb-7.9.90.20150709/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.9.90.20150709/gdb/build-id.c
Index: gdb-7.10.50.20151022/gdb/build-id.c
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/build-id.c 2015-07-09 22:05:20.988044312 +0200
+++ gdb-7.9.90.20150709/gdb/build-id.c 2015-07-09 22:19:35.022957009 +0200
--- gdb-7.10.50.20151022.orig/gdb/build-id.c 2015-10-22 22:30:46.238403157 +0200
+++ gdb-7.10.50.20151022/gdb/build-id.c 2015-10-22 22:34:36.579774662 +0200
@@ -26,11 +26,67 @@
#include "objfiles.h"
#include "filenames.h"
@ -765,7 +765,7 @@ Index: gdb-7.9.90.20150709/gdb/build-id.c
if (found == NULL)
warning (_("File \"%s\" has no build-id, file skipped"),
@@ -65,20 +463,56 @@ build_id_verify (bfd *abfd, size_t check
@@ -65,23 +463,56 @@ build_id_verify (bfd *abfd, size_t check
return retval;
}
@ -818,15 +818,18 @@ Index: gdb-7.9.90.20150709/gdb/build-id.c
struct cleanup *back_to;
int ix;
bfd *abfd = NULL;
- int alloc_len;
/* DEBUG_FILE_DIRECTORY/.build-id/ab/cdef */
- link = alloca (strlen (debug_file_directory) + (sizeof "/.build-id/" - 1) + 1
- + 2 * build_id_len + (sizeof ".debug" - 1) + 1);
- alloc_len = (strlen (debug_file_directory)
- + (sizeof "/.build-id/" - 1) + 1
- + 2 * build_id_len + (sizeof ".debug" - 1) + 1);
- link = (char *) alloca (alloc_len);
+ link = xmalloc (strlen (debug_file_directory) + 2 * build_id_len + 50);
/* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will
cause "/.build-id/..." lookups. */
@@ -91,9 +525,12 @@ build_id_to_debug_bfd (size_t build_id_l
@@ -94,9 +525,12 @@ build_id_to_debug_bfd (size_t build_id_l
size_t debugdir_len = strlen (debugdir);
const gdb_byte *data = build_id;
size_t size = build_id_len;
@ -840,7 +843,7 @@ Index: gdb-7.9.90.20150709/gdb/build-id.c
memcpy (link, debugdir, debugdir_len);
s = &link[debugdir_len];
@@ -107,47 +544,281 @@ build_id_to_debug_bfd (size_t build_id_l
@@ -110,47 +544,281 @@ build_id_to_debug_bfd (size_t build_id_l
*s++ = '/';
while (size-- > 0)
s += sprintf (s, "%02x", (unsigned) *data++);
@ -1141,7 +1144,7 @@ Index: gdb-7.9.90.20150709/gdb/build-id.c
/* Prevent looping on a stripped .debug file. */
if (abfd != NULL
&& filename_cmp (bfd_get_filename (abfd),
@@ -167,3 +838,21 @@ find_separate_debug_file_by_buildid (str
@@ -170,3 +838,21 @@ find_separate_debug_file_by_buildid (str
}
return NULL;
}
@ -1163,10 +1166,10 @@ Index: gdb-7.9.90.20150709/gdb/build-id.c
+
+ observer_attach_executable_changed (debug_print_executable_changed);
+}
Index: gdb-7.9.90.20150709/gdb/build-id.h
Index: gdb-7.10.50.20151022/gdb/build-id.h
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/build-id.h 2015-07-09 22:05:20.988044312 +0200
+++ gdb-7.9.90.20150709/gdb/build-id.h 2015-07-09 22:05:42.072222849 +0200
--- gdb-7.10.50.20151022.orig/gdb/build-id.h 2015-10-22 22:30:46.239403163 +0200
+++ gdb-7.10.50.20151022/gdb/build-id.h 2015-10-22 22:30:49.275421039 +0200
@@ -20,9 +20,10 @@
#ifndef BUILD_ID_H
#define BUILD_ID_H
@ -1201,11 +1204,11 @@ Index: gdb-7.9.90.20150709/gdb/build-id.h
+ char **build_id_filename_return);
#endif /* BUILD_ID_H */
Index: gdb-7.9.90.20150709/gdb/dwarf2read.c
Index: gdb-7.10.50.20151022/gdb/dwarf2read.c
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/dwarf2read.c 2015-07-09 22:05:20.988044312 +0200
+++ gdb-7.9.90.20150709/gdb/dwarf2read.c 2015-07-09 22:05:42.077222891 +0200
@@ -2507,7 +2507,7 @@ dwarf2_get_dwz_file (void)
--- gdb-7.10.50.20151022.orig/gdb/dwarf2read.c 2015-10-22 22:30:46.242403181 +0200
+++ gdb-7.10.50.20151022/gdb/dwarf2read.c 2015-10-22 22:30:49.278421057 +0200
@@ -2514,7 +2514,7 @@ dwarf2_get_dwz_file (void)
}
if (dwz_bfd == NULL)
@ -1214,10 +1217,10 @@ Index: gdb-7.9.90.20150709/gdb/dwarf2read.c
if (dwz_bfd == NULL)
error (_("could not find '.gnu_debugaltlink' file for %s"),
Index: gdb-7.9.90.20150709/gdb/python/py-objfile.c
Index: gdb-7.10.50.20151022/gdb/python/py-objfile.c
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/python/py-objfile.c 2015-07-09 22:05:20.988044312 +0200
+++ gdb-7.9.90.20150709/gdb/python/py-objfile.c 2015-07-09 22:05:42.077222891 +0200
--- gdb-7.10.50.20151022.orig/gdb/python/py-objfile.c 2015-10-22 22:30:46.243403187 +0200
+++ gdb-7.10.50.20151022/gdb/python/py-objfile.c 2015-10-22 22:30:49.278421057 +0200
@@ -139,7 +139,7 @@ objfpy_get_build_id (PyObject *self, voi
TRY
@ -1236,10 +1239,10 @@ Index: gdb-7.9.90.20150709/gdb/python/py-objfile.c
if (obfd_build_id == NULL)
continue;
if (objfpy_build_id_matches (obfd_build_id, build_id))
Index: gdb-7.9.90.20150709/gdb/coffread.c
Index: gdb-7.10.50.20151022/gdb/coffread.c
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/coffread.c 2015-07-09 22:05:20.988044312 +0200
+++ gdb-7.9.90.20150709/gdb/coffread.c 2015-07-09 22:05:42.078222899 +0200
--- gdb-7.10.50.20151022.orig/gdb/coffread.c 2015-10-22 22:30:46.244403193 +0200
+++ gdb-7.10.50.20151022/gdb/coffread.c 2015-10-22 22:30:49.278421057 +0200
@@ -739,7 +739,7 @@ coff_symfile_read (struct objfile *objfi
{
char *debugfile;

View File

@ -3,10 +3,10 @@
Port to GDB-6.8pre.
Remove the `[' character from the GDB-6.8 default message.
Index: gdb-7.9.50.20150531/gdb/testsuite/gdb.base/fork-detach.c
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.base/fork-detach.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.9.50.20150531/gdb/testsuite/gdb.base/fork-detach.c 2015-05-31 18:23:49.008450716 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.base/fork-detach.c 2015-10-27 22:38:46.693459569 +0100
@@ -0,0 +1,57 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@ -65,10 +65,10 @@ Index: gdb-7.9.50.20150531/gdb/testsuite/gdb.base/fork-detach.c
+ }
+ return 0;
+}
Index: gdb-7.9.50.20150531/gdb/testsuite/gdb.base/fork-detach.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.base/fork-detach.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.9.50.20150531/gdb/testsuite/gdb.base/fork-detach.exp 2015-05-31 18:23:49.008450716 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.base/fork-detach.exp 2015-10-27 22:38:46.693459569 +0100
@@ -0,0 +1,36 @@
+# Copyright 2007 Free Software Foundation, Inc.
+
@ -106,11 +106,11 @@ Index: gdb-7.9.50.20150531/gdb/testsuite/gdb.base/fork-detach.exp
+gdb_test "" \
+ "Detaching after fork from child process.*\\\[Inferior .* exited normally\\\]" \
+ "Info message caught"
Index: gdb-7.9.50.20150531/gdb/infrun.c
Index: gdb-7.10.50.20151027/gdb/infrun.c
===================================================================
--- gdb-7.9.50.20150531.orig/gdb/infrun.c 2015-05-31 18:23:41.703405617 +0200
+++ gdb-7.9.50.20150531/gdb/infrun.c 2015-05-31 18:23:49.011450735 +0200
@@ -443,7 +443,7 @@ holding the child stopped. Try \"set de
--- gdb-7.10.50.20151027.orig/gdb/infrun.c 2015-10-27 22:38:34.333386939 +0100
+++ gdb-7.10.50.20151027/gdb/infrun.c 2015-10-27 22:38:46.695459581 +0100
@@ -477,7 +477,7 @@ holding the child stopped. Try \"set de
remove_breakpoints_pid (ptid_get_pid (inferior_ptid));
}
@ -119,3 +119,25 @@ Index: gdb-7.9.50.20150531/gdb/infrun.c
{
/* Ensure that we have a process ptid. */
ptid_t process_ptid = pid_to_ptid (ptid_get_pid (child_ptid));
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.base/catch-syscall.exp
===================================================================
--- gdb-7.10.50.20151027.orig/gdb/testsuite/gdb.base/catch-syscall.exp 2015-10-27 22:43:47.015224320 +0100
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.base/catch-syscall.exp 2015-10-27 22:44:29.327472955 +0100
@@ -165,7 +165,7 @@ proc check_for_program_end {} {
# Deleting the catchpoints
delete_breakpoints
- gdb_continue_to_end
+ gdb_continue_to_end "" continue 1
}
proc test_catch_syscall_without_args {} {
@@ -236,7 +236,7 @@ proc test_catch_syscall_with_wrong_args
# If it doesn't, everything is right (since we don't have
# a syscall named "mlock" in it). Otherwise, this is a failure.
set thistest "catch syscall with unused syscall ($syscall_name)"
- gdb_continue_to_end $thistest
+ gdb_continue_to_end $thistest continue 1
}
}

View File

@ -1,21 +1,21 @@
Index: gdb-7.7.50.20140609/gdb/infrun.c
Index: gdb-7.10.50.20151022/gdb/infrun.c
===================================================================
--- gdb-7.7.50.20140609.orig/gdb/infrun.c 2014-06-13 20:08:51.225699203 +0200
+++ gdb-7.7.50.20140609/gdb/infrun.c 2014-06-13 20:08:55.515703466 +0200
@@ -1661,7 +1661,7 @@ static const char *const scheduler_enums
schedlock_step,
--- gdb-7.10.50.20151022.orig/gdb/infrun.c 2015-10-22 22:30:15.887224452 +0200
+++ gdb-7.10.50.20151022/gdb/infrun.c 2015-10-22 22:30:25.742282478 +0200
@@ -2175,7 +2175,7 @@ static const char *const scheduler_enums
schedlock_replay,
NULL
};
-static const char *scheduler_mode = schedlock_off;
-static const char *scheduler_mode = schedlock_replay;
+static const char *scheduler_mode = schedlock_step;
static void
show_scheduler_mode (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.mi/mi-cli.exp
Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.mi/mi-cli.exp
===================================================================
--- gdb-7.7.50.20140609.orig/gdb/testsuite/gdb.mi/mi-cli.exp 2014-06-13 20:08:55.515703466 +0200
+++ gdb-7.7.50.20140609/gdb/testsuite/gdb.mi/mi-cli.exp 2014-06-13 20:09:24.862732832 +0200
@@ -181,7 +181,7 @@ mi_expect_stop "breakpoint-hit" "main" "
--- gdb-7.10.50.20151022.orig/gdb/testsuite/gdb.mi/mi-cli.exp 2015-10-22 22:29:38.352003447 +0200
+++ gdb-7.10.50.20151022/gdb/testsuite/gdb.mi/mi-cli.exp 2015-10-22 22:30:15.888224458 +0200
@@ -199,7 +199,7 @@ mi_expect_stop "breakpoint-hit" "main" "
# Test that the token is output even for CLI commands
# Also test that *stopped includes frame information.
mi_gdb_test "34 next" \
@ -24,10 +24,10 @@ Index: gdb-7.7.50.20140609/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.7.50.20140609/gdb/testsuite/gdb.mi/mi-logging.exp
Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.mi/mi-logging.exp
===================================================================
--- gdb-7.7.50.20140609.orig/gdb/testsuite/gdb.mi/mi-logging.exp 2014-06-13 20:08:51.227699205 +0200
+++ gdb-7.7.50.20140609/gdb/testsuite/gdb.mi/mi-logging.exp 2014-06-13 20:08:55.516703467 +0200
--- gdb-7.10.50.20151022.orig/gdb/testsuite/gdb.mi/mi-logging.exp 2015-10-22 22:29:38.352003447 +0200
+++ gdb-7.10.50.20151022/gdb/testsuite/gdb.mi/mi-logging.exp 2015-10-22 22:30:15.888224458 +0200
@@ -53,7 +53,7 @@ close $chan
set mi_log_prompt "\[(\]gdb\[)\] \[\r\n\]+"
@ -46,10 +46,10 @@ Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.mi/mi-logging.exp
pass "Redirect log file contents"
} else {
fail "Redirect log file contents"
Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.mi/mi-console.exp
Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.mi/mi-console.exp
===================================================================
--- gdb-7.7.50.20140609.orig/gdb/testsuite/gdb.mi/mi-console.exp 2014-06-13 20:08:51.227699205 +0200
+++ gdb-7.7.50.20140609/gdb/testsuite/gdb.mi/mi-console.exp 2014-06-13 20:08:55.516703467 +0200
--- gdb-7.10.50.20151022.orig/gdb/testsuite/gdb.mi/mi-console.exp 2015-10-22 22:29:38.353003453 +0200
+++ gdb-7.10.50.20151022/gdb/testsuite/gdb.mi/mi-console.exp 2015-10-22 22:30:15.888224458 +0200
@@ -60,6 +60,9 @@ if { [gdb_compile "${srcdir}/${subdir}/
mi_run_to_main

View File

@ -1,7 +1,7 @@
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.ada/packed_array.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.ada/packed_array.exp
===================================================================
--- gdb-7.7.90.20140613.orig/gdb/testsuite/gdb.ada/packed_array.exp 2014-06-13 03:59:37.000000000 +0200
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.ada/packed_array.exp 2014-06-16 23:30:30.107940483 +0200
--- gdb-7.10.50.20151027.orig/gdb/testsuite/gdb.ada/packed_array.exp 2015-10-27 02:48:32.000000000 +0100
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.ada/packed_array.exp 2015-11-03 22:23:27.212877605 +0100
@@ -56,5 +56,11 @@ gdb_test_multiple "$test" "$test" {
# are. Observed with (FSF GNU Ada 4.5.3 20110124).
xfail $test
@ -14,10 +14,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.ada/packed_array.exp
+ }
}
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.arch/x86_64-vla-typedef-foo.S
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.arch/x86_64-vla-typedef-foo.S
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.arch/x86_64-vla-typedef-foo.S 2014-06-16 23:30:30.108940484 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.arch/x86_64-vla-typedef-foo.S 2015-11-03 22:23:27.212877605 +0100
@@ -0,0 +1,455 @@
+ .file "x86_64-vla-typedef.c"
+ .section .debug_abbrev,"",@progbits
@ -474,10 +474,10 @@ Index: gdb-7.7.90.20140613/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.7.90.20140613/gdb/testsuite/gdb.arch/x86_64-vla-typedef.c
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.arch/x86_64-vla-typedef.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.arch/x86_64-vla-typedef.c 2014-06-16 23:30:30.109940484 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.arch/x86_64-vla-typedef.c 2015-11-03 22:23:27.213877611 +0100
@@ -0,0 +1,43 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@ -522,10 +522,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.arch/x86_64-vla-typedef.c
+}
+
+#endif
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.arch/x86_64-vla-typedef.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.arch/x86_64-vla-typedef.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.arch/x86_64-vla-typedef.exp 2014-06-16 23:30:30.109940484 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.arch/x86_64-vla-typedef.exp 2015-11-03 22:23:27.213877611 +0100
@@ -0,0 +1,64 @@
+# Copyright 2009 Free Software Foundation, Inc.
+
@ -591,10 +591,10 @@ Index: gdb-7.7.90.20140613/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.7.90.20140613/gdb/testsuite/gdb.base/arrayidx.c
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.base/arrayidx.c
===================================================================
--- gdb-7.7.90.20140613.orig/gdb/testsuite/gdb.base/arrayidx.c 2014-06-13 03:59:37.000000000 +0200
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.base/arrayidx.c 2014-06-16 23:30:30.109940484 +0200
--- gdb-7.10.50.20151027.orig/gdb/testsuite/gdb.base/arrayidx.c 2015-10-27 02:48:32.000000000 +0100
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.base/arrayidx.c 2015-11-03 22:23:27.213877611 +0100
@@ -17,6 +17,13 @@
int array[] = {1, 2, 3, 4};
@ -609,10 +609,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/arrayidx.c
int
main (void)
{
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/arrayidx.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.base/arrayidx.exp
===================================================================
--- gdb-7.7.90.20140613.orig/gdb/testsuite/gdb.base/arrayidx.exp 2014-06-13 03:59:37.000000000 +0200
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.base/arrayidx.exp 2014-06-16 23:30:30.109940484 +0200
--- gdb-7.10.50.20151027.orig/gdb/testsuite/gdb.base/arrayidx.exp 2015-10-27 02:48:32.000000000 +0100
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.base/arrayidx.exp 2015-11-03 22:23:27.213877611 +0100
@@ -49,4 +49,12 @@ gdb_test "print array" \
"\\{\\\[0\\\] = 1, \\\[1\\\] = 2, \\\[2\\\] = 3, \\\[3\\\] = 4\\}" \
"Print array with array-indexes on"
@ -627,10 +627,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/arrayidx.exp
+ unsupported "$test (no GCC)"
+ }
+}
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/internal-var-field-address.c
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.base/internal-var-field-address.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.base/internal-var-field-address.c 2014-06-16 23:30:30.109940484 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.base/internal-var-field-address.c 2015-11-03 22:23:27.213877611 +0100
@@ -0,0 +1,20 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@ -652,10 +652,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/internal-var-field-address.c
+struct {
+ int field;
+} staticstruct = { 1 };
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/internal-var-field-address.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.base/internal-var-field-address.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.base/internal-var-field-address.exp 2014-06-16 23:30:30.109940484 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.base/internal-var-field-address.exp 2015-11-03 22:23:27.213877611 +0100
@@ -0,0 +1,26 @@
+# Copyright 2009 Free Software Foundation, Inc.
+
@ -683,10 +683,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/internal-var-field-address.exp
+
+gdb_test {set $varstruct = staticstruct}
+gdb_test {p $varstruct.field} " = 1"
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/vla-frame.c
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.base/vla-frame.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.base/vla-frame.c 2014-06-16 23:30:30.110940485 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.base/vla-frame.c 2015-11-03 22:23:27.213877611 +0100
@@ -0,0 +1,31 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@ -719,10 +719,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/vla-frame.c
+ f (s);
+ return 0;
+}
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/vla-frame.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.base/vla-frame.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.base/vla-frame.exp 2014-06-16 23:30:30.110940485 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.base/vla-frame.exp 2015-11-03 22:23:27.213877611 +0100
@@ -0,0 +1,38 @@
+# Copyright 2011 Free Software Foundation, Inc.
+#
@ -762,10 +762,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/vla-frame.exp
+}
+
+gdb_test "bt full" "\r\n +s = \"X\\\\000\"\r\n.*"
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/vla-overflow.c
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.base/vla-overflow.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.base/vla-overflow.c 2014-06-16 23:30:30.110940485 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.base/vla-overflow.c 2015-11-03 22:23:27.213877611 +0100
@@ -0,0 +1,30 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@ -797,10 +797,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/vla-overflow.c
+
+ return 0;
+}
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/vla-overflow.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.base/vla-overflow.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.base/vla-overflow.exp 2014-06-16 23:30:30.110940485 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.base/vla-overflow.exp 2015-11-03 22:23:27.213877611 +0100
@@ -0,0 +1,109 @@
+# Copyright 2008 Free Software Foundation, Inc.
+
@ -911,10 +911,10 @@ Index: gdb-7.7.90.20140613/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.7.90.20140613/gdb/testsuite/gdb.base/vla.c
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.base/vla.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.base/vla.c 2014-06-16 23:30:30.110940485 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.base/vla.c 2015-11-03 22:23:27.213877611 +0100
@@ -0,0 +1,55 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@ -971,10 +971,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/vla.c
+ foo (78);
+ return 0;
+}
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/vla.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.base/vla.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.base/vla.exp 2014-06-16 23:30:30.110940485 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.base/vla.exp 2015-11-03 22:23:27.214877617 +0100
@@ -0,0 +1,62 @@
+# Copyright 2008 Free Software Foundation, Inc.
+
@ -1038,10 +1038,10 @@ Index: gdb-7.7.90.20140613/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.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S 2014-06-16 23:30:30.111940487 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S 2015-11-03 22:23:27.214877617 +0100
@@ -0,0 +1,246 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@ -1289,11 +1289,11 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S
+ .string "char"
+.Luint_str:
+ .string "unsigned int"
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp 2014-06-16 23:30:30.111940487 +0200
@@ -0,0 +1,63 @@
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp 2015-11-03 22:23:27.214877617 +0100
@@ -0,0 +1,66 @@
+# Copyright 2010 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
@ -1332,17 +1332,20 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp
+
+# Verify it behaves at least as an unbound array without inferior.
+
+set test "p a_string"
+gdb_test_multiple $test $test {
+ -re " = 0x\[0-9a-f\]+ \"seennotseen\"\r\n$gdb_prompt $" {
+ pass $test
+ }
+ -re "No registers\\.\r\n$gdb_prompt $" {
+ kfail "vlaregression" $test
+ }
+}
+
+gdb_test "ptype a_string" {type = char \[variable length\]}
+# FIXME: FSF GDB crashes due to !has_stack_frames ().
+# But in practice that should not happen.
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43762
+#set test "p a_string"
+#gdb_test_multiple $test $test {
+# -re " = 0x\[0-9a-f\]+ \"seennotseen\"\r\n$gdb_prompt $" {
+# pass $test
+# }
+# -re "No registers\\.\r\n$gdb_prompt $" {
+# kfail "vlaregression" $test
+# }
+#}
+#
+#gdb_test "ptype a_string" {type = char \[variable length\]}
+
+# Not runto_main as dw2-bound-loclist.S handles only the first byte of main.
+if ![runto "*main"] {
@ -1357,10 +1360,10 @@ Index: gdb-7.7.90.20140613/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.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-stripped.c
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.dwarf2/dw2-stripped.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-stripped.c 2014-06-16 23:30:30.111940487 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.dwarf2/dw2-stripped.c 2015-11-03 22:23:27.214877617 +0100
@@ -0,0 +1,42 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@ -1404,10 +1407,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-stripped.c
+ func1 (1, 2);
+ return 0;
+}
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp 2014-06-16 23:30:30.111940487 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp 2015-11-03 22:23:27.214877617 +0100
@@ -0,0 +1,79 @@
+# Copyright 2006 Free Software Foundation, Inc.
+
@ -1488,10 +1491,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp
+gdb_test "step" \
+ "func.* \\(.*\\) at .*" \
+ "step"
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.S
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.S
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.S 2014-06-16 23:30:30.112940488 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.S 2015-11-03 22:23:27.214877617 +0100
@@ -0,0 +1,83 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@ -1576,10 +1579,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-locat
+
+ .byte 0x0 /* Terminator */
+ .byte 0x0 /* Terminator */
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp 2014-06-16 23:30:30.112940488 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp 2015-11-03 22:23:27.214877617 +0100
@@ -0,0 +1,37 @@
+# Copyright 2009 Free Software Foundation, Inc.
+
@ -1618,10 +1621,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-locat
+clean_restart $binfile
+
+gdb_test "ptype struct some_struct" "type = struct some_struct {\[\r\n \t\]*void field;\[\r\n \t\]*}"
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S 2014-06-16 23:30:30.112940488 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S 2015-11-03 22:23:27.214877617 +0100
@@ -0,0 +1,121 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@ -1744,10 +1747,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S
+ .byte 0x0 /* Terminator */
+
+ .byte 0x0 /* Terminator */
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.exp 2014-06-16 23:30:30.112940488 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.exp 2015-11-03 22:23:27.215877623 +0100
@@ -0,0 +1,39 @@
+# Copyright 2012 Free Software Foundation, Inc.
+
@ -1788,10 +1791,10 @@ Index: gdb-7.7.90.20140613/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.7.90.20140613/gdb/testsuite/gdb.fortran/dwarf-stride.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.fortran/dwarf-stride.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/dwarf-stride.exp 2014-06-16 23:30:30.112940488 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.fortran/dwarf-stride.exp 2015-11-03 22:23:27.215877623 +0100
@@ -0,0 +1,42 @@
+# Copyright 2009 Free Software Foundation, Inc.
+
@ -1835,10 +1838,10 @@ Index: gdb-7.7.90.20140613/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.7.90.20140613/gdb/testsuite/gdb.fortran/dwarf-stride.f90
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.fortran/dwarf-stride.f90
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/dwarf-stride.f90 2014-06-16 23:30:30.112940488 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.fortran/dwarf-stride.f90 2015-11-03 22:23:27.215877623 +0100
@@ -0,0 +1,40 @@
+! Copyright 2009 Free Software Foundation, Inc.
+!
@ -1880,10 +1883,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/dwarf-stride.f90
+ print *, c40pt ! break-here
+
+end program repro
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/dynamic.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.fortran/dynamic.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/dynamic.exp 2014-06-16 23:37:45.568362563 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.fortran/dynamic.exp 2015-11-03 22:27:25.481281904 +0100
@@ -0,0 +1,151 @@
+# Copyright 2007 Free Software Foundation, Inc.
+
@ -1931,9 +1934,9 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/dynamic.exp
+gdb_continue_to_breakpoint "varx-init"
+gdb_test "p varx" "\\$\[0-9\]* = <not allocated>" "p varx unallocated"
+gdb_test "ptype varx" "type = <not allocated>" "ptype varx unallocated"
+gdb_test "p varx(1,5,17)" "no such vector element because not allocated" "p varx(1,5,17) unallocated"
+gdb_test "p varx(1,5,17)=1" "no such vector element because not allocated" "p varx(1,5,17)=1 unallocated"
+gdb_test "ptype varx(1,5,17)" "no such vector element because not allocated" "ptype varx(1,5,17) unallocated"
+gdb_test "p varx(1,5,17)" {no such vector element \(vector not allocated\)} "p varx(1,5,17) unallocated"
+gdb_test "p varx(1,5,17)=1" {no such vector element \(vector not allocated\)} "p varx(1,5,17)=1 unallocated"
+gdb_test "ptype varx(1,5,17)" {no such vector element \(vector not allocated\)} "ptype varx(1,5,17) unallocated"
+
+gdb_breakpoint [gdb_get_line_number "varx-allocated"]
+gdb_continue_to_breakpoint "varx-allocated"
@ -1979,16 +1982,16 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/dynamic.exp
+gdb_test "p varv" "\\$\[0-9\]* = (<not associated>|.*(Cannot access it|Unable to access the object) because the object is not associated.)" "p varv deassociated"
+gdb_test "ptype varv" "type = (<not associated>|.*(Cannot access it|Unable to access the object) because the object is not associated.)" "ptype varv deassociated"
+gdb_test "p l" "\\$\[0-9\]* = \\.FALSE\\." "p l if varv deassociated"
+gdb_test "p varv(1,5,17)" "no such vector element because not associated"
+gdb_test "ptype varv(1,5,17)" "no such vector element because not associated"
+gdb_test "p varv(1,5,17)" {no such vector element \(vector not associated\)}
+gdb_test "ptype varv(1,5,17)" {no such vector element \(vector not associated\)}
+
+gdb_breakpoint [gdb_get_line_number "varx-deallocated"]
+gdb_continue_to_breakpoint "varx-deallocated"
+gdb_test "p varx" "\\$\[0-9\]* = <not allocated>" "p varx deallocated"
+gdb_test "ptype varx" "type = <not allocated>" "ptype varx deallocated"
+gdb_test "p l" "\\$\[0-9\]* = \\.FALSE\\." "p l if varx deallocated"
+gdb_test "p varx(1,5,17)" "no such vector element because not allocated" "p varx(1,5,17) deallocated"
+gdb_test "ptype varx(1,5,17)" "no such vector element because not allocated" "ptype varx(1,5,17) deallocated"
+gdb_test "p varx(1,5,17)" {no such vector element \(vector not allocated\)} "p varx(1,5,17) deallocated"
+gdb_test "ptype varx(1,5,17)" {no such vector element \(vector not allocated\)} "ptype varx(1,5,17) deallocated"
+
+gdb_breakpoint [gdb_get_line_number "vary-passed"]
+gdb_continue_to_breakpoint "vary-passed"
@ -2036,10 +2039,10 @@ Index: gdb-7.7.90.20140613/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.7.90.20140613/gdb/testsuite/gdb.fortran/dynamic.f90
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.fortran/dynamic.f90
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/dynamic.f90 2014-06-16 23:30:30.113940488 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.fortran/dynamic.f90 2015-11-03 22:23:27.215877623 +0100
@@ -0,0 +1,98 @@
+! Copyright 2007 Free Software Foundation, Inc.
+!
@ -2139,10 +2142,10 @@ Index: gdb-7.7.90.20140613/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.7.90.20140613/gdb/testsuite/gdb.fortran/string.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.fortran/string.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/string.exp 2014-06-16 23:30:30.114940489 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.fortran/string.exp 2015-11-03 22:23:27.215877623 +0100
@@ -0,0 +1,59 @@
+# Copyright 2008 Free Software Foundation, Inc.
+
@ -2203,10 +2206,10 @@ Index: gdb-7.7.90.20140613/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.7.90.20140613/gdb/testsuite/gdb.fortran/string.f90
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.fortran/string.f90
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/string.f90 2014-06-16 23:30:30.114940489 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.fortran/string.f90 2015-11-03 22:23:27.215877623 +0100
@@ -0,0 +1,37 @@
+! Copyright 2008 Free Software Foundation, Inc.
+!
@ -2245,10 +2248,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/string.f90
+ h = 'h'
+ call foo (g, h)
+end
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/subrange.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.fortran/subrange.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/subrange.exp 2014-06-16 23:30:30.114940489 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.fortran/subrange.exp 2015-11-03 22:23:27.215877623 +0100
@@ -0,0 +1,72 @@
+# Copyright 2011 Free Software Foundation, Inc.
+
@ -2322,10 +2325,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/subrange.exp
+gdb_unload
+setup_kfail "*-*-*" "vlaregression/9999"
+gdb_test {p $a (3, 2:2)} { = \(23\)}
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/subrange.f90
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.fortran/subrange.f90
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/subrange.f90 2014-06-16 23:30:30.114940489 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.fortran/subrange.f90 2015-11-03 22:23:27.215877623 +0100
@@ -0,0 +1,28 @@
+! Copyright 2011 Free Software Foundation, Inc.
+!
@ -2355,10 +2358,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/subrange.f90
+ ptr => a
+ write (*,*) a ! break-static
+end
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.mi/mi2-var-stale-type.c
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.mi/mi2-var-stale-type.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.mi/mi2-var-stale-type.c 2014-06-16 23:30:30.114940489 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.mi/mi2-var-stale-type.c 2015-11-03 22:23:27.216877629 +0100
@@ -0,0 +1,26 @@
+/* Copyright 2011 Free Software Foundation, Inc.
+
@ -2386,10 +2389,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.mi/mi2-var-stale-type.c
+
+ return 0;
+}
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp 2014-06-16 23:30:30.114940489 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp 2015-11-03 22:23:27.216877629 +0100
@@ -0,0 +1,57 @@
+# Copyright 2011 Free Software Foundation, Inc.
+#
@ -2448,10 +2451,10 @@ Index: gdb-7.7.90.20140613/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.7.90.20140613/gdb/testsuite/gdb.opt/array-from-register-func.c
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.opt/array-from-register-func.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.opt/array-from-register-func.c 2014-06-16 23:30:30.115940490 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.opt/array-from-register-func.c 2015-11-03 22:23:27.216877629 +0100
@@ -0,0 +1,22 @@
+/* This file is part of GDB, the GNU debugger.
+
@ -2475,10 +2478,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.opt/array-from-register-func.c
+{
+ return arr[0];
+}
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.opt/array-from-register.c
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.opt/array-from-register.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.opt/array-from-register.c 2014-06-16 23:30:30.115940490 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.opt/array-from-register.c 2015-11-03 22:23:27.216877629 +0100
@@ -0,0 +1,28 @@
+/* This file is part of GDB, the GNU debugger.
+
@ -2508,10 +2511,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.opt/array-from-register.c
+
+ return 0;
+}
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.opt/array-from-register.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.opt/array-from-register.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.opt/array-from-register.exp 2014-06-16 23:30:30.115940490 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.opt/array-from-register.exp 2015-11-03 22:23:27.216877629 +0100
@@ -0,0 +1,33 @@
+# Copyright 2009 Free Software Foundation, Inc.
+#
@ -2546,10 +2549,10 @@ Index: gdb-7.7.90.20140613/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.7.90.20140613/gdb/testsuite/gdb.pascal/arrays.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.pascal/arrays.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.pascal/arrays.exp 2014-06-16 23:30:30.115940490 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.pascal/arrays.exp 2015-11-03 22:23:27.216877629 +0100
@@ -0,0 +1,104 @@
+# Copyright 2008, 2009 Free Software Foundation, Inc.
+#
@ -2655,10 +2658,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.pascal/arrays.exp
+}
+gdb_test "print DynArrChar" ".* = 'abcdefghijklm'" "Print dynamic array of char"
+
Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.pascal/arrays.pas
Index: gdb-7.10.50.20151027/gdb/testsuite/gdb.pascal/arrays.pas
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.pascal/arrays.pas 2014-06-16 23:30:30.115940490 +0200
+++ gdb-7.10.50.20151027/gdb/testsuite/gdb.pascal/arrays.pas 2015-11-03 22:23:27.216877629 +0100
@@ -0,0 +1,82 @@
+{
+ Copyright 2008, 2009 Free Software Foundation, Inc.
@ -2742,11 +2745,11 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.pascal/arrays.pas
+ s := 'test'#0'string';
+ writeln(s); { set breakpoint 2 here }
+end.
Index: gdb-7.7.90.20140613/gdb/testsuite/lib/gdb.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/lib/gdb.exp
===================================================================
--- gdb-7.7.90.20140613.orig/gdb/testsuite/lib/gdb.exp 2014-06-16 23:30:29.278939700 +0200
+++ gdb-7.7.90.20140613/gdb/testsuite/lib/gdb.exp 2014-06-16 23:30:30.117940492 +0200
@@ -159,6 +159,11 @@ proc gdb_unload {} {
--- gdb-7.10.50.20151027.orig/gdb/testsuite/lib/gdb.exp 2015-11-03 22:23:26.684874457 +0100
+++ gdb-7.10.50.20151027/gdb/testsuite/lib/gdb.exp 2015-11-03 22:23:27.217877635 +0100
@@ -173,6 +173,11 @@ proc gdb_unload {} {
send_gdb "y\n"
exp_continue
}
@ -2758,10 +2761,10 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/lib/gdb.exp
-re "Discard symbol table from .*y or n.*$" {
send_gdb "y\n"
exp_continue
Index: gdb-7.7.90.20140613/gdb/testsuite/lib/pascal.exp
Index: gdb-7.10.50.20151027/gdb/testsuite/lib/pascal.exp
===================================================================
--- gdb-7.7.90.20140613.orig/gdb/testsuite/lib/pascal.exp 2014-06-13 03:59:37.000000000 +0200
+++ gdb-7.7.90.20140613/gdb/testsuite/lib/pascal.exp 2014-06-16 23:30:30.117940492 +0200
--- gdb-7.10.50.20151027.orig/gdb/testsuite/lib/pascal.exp 2015-10-27 02:48:32.000000000 +0100
+++ gdb-7.10.50.20151027/gdb/testsuite/lib/pascal.exp 2015-11-03 22:23:27.217877635 +0100
@@ -37,6 +37,9 @@ proc pascal_init {} {
global pascal_compiler_is_fpc
global gpc_compiler

View File

@ -37,13 +37,13 @@ gdb/gdbserver/
(linux_create_inferior, linux_tracefork_child): Call it instead of
direct ptrace.
Index: gdb-7.9.90.20150709/gdb/nat/linux-ptrace.c
Index: gdb-7.10.50.20151022/gdb/nat/linux-ptrace.c
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/nat/linux-ptrace.c 2015-07-09 18:24:13.705140384 +0200
+++ gdb-7.9.90.20150709/gdb/nat/linux-ptrace.c 2015-07-09 18:24:24.911235973 +0200
@@ -23,6 +23,10 @@
#include "buffer.h"
--- gdb-7.10.50.20151022.orig/gdb/nat/linux-ptrace.c 2015-10-22 22:35:00.474917139 +0200
+++ gdb-7.10.50.20151022/gdb/nat/linux-ptrace.c 2015-10-22 22:35:08.120962729 +0200
@@ -24,6 +24,10 @@
#include "gdb_wait.h"
#include "gdb_ptrace.h"
+#ifdef HAVE_SELINUX_SELINUX_H
+# include <selinux/selinux.h>
@ -52,7 +52,7 @@ Index: gdb-7.9.90.20150709/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. */
@@ -47,6 +51,8 @@ linux_ptrace_attach_fail_reason (pid_t p
@@ -48,6 +52,8 @@ linux_ptrace_attach_fail_reason (pid_t p
buffer_xml_printf (buffer, _("process %d is a zombie "
"- the process has already terminated"),
(int) pid);
@ -61,7 +61,7 @@ Index: gdb-7.9.90.20150709/gdb/nat/linux-ptrace.c
}
/* See linux-ptrace.h. */
@@ -581,6 +587,22 @@ linux_ptrace_init_warnings (void)
@@ -594,6 +600,22 @@ linux_ptrace_init_warnings (void)
linux_ptrace_test_ret_to_nx ();
}
@ -84,11 +84,11 @@ Index: gdb-7.9.90.20150709/gdb/nat/linux-ptrace.c
/* Extract extended ptrace event from wait status. */
int
Index: gdb-7.9.90.20150709/gdb/nat/linux-ptrace.h
Index: gdb-7.10.50.20151022/gdb/nat/linux-ptrace.h
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/nat/linux-ptrace.h 2015-07-09 18:24:13.706140392 +0200
+++ gdb-7.9.90.20150709/gdb/nat/linux-ptrace.h 2015-07-09 18:24:24.912235981 +0200
@@ -157,6 +157,7 @@ extern void linux_ptrace_attach_fail_rea
--- gdb-7.10.50.20151022.orig/gdb/nat/linux-ptrace.h 2015-10-22 22:35:00.474917139 +0200
+++ gdb-7.10.50.20151022/gdb/nat/linux-ptrace.h 2015-10-22 22:35:08.120962729 +0200
@@ -164,6 +164,7 @@ extern void linux_ptrace_attach_fail_rea
extern char *linux_ptrace_attach_fail_reason_string (ptid_t ptid, int err);
extern void linux_ptrace_init_warnings (void);
@ -96,11 +96,11 @@ Index: gdb-7.9.90.20150709/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.9.90.20150709/gdb/configure.ac
Index: gdb-7.10.50.20151022/gdb/configure.ac
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/configure.ac 2015-07-09 18:24:13.707140401 +0200
+++ gdb-7.9.90.20150709/gdb/configure.ac 2015-07-09 18:24:24.913235990 +0200
@@ -2150,6 +2150,10 @@ case $host_os in
--- gdb-7.10.50.20151022.orig/gdb/configure.ac 2015-10-22 22:35:00.475917145 +0200
+++ gdb-7.10.50.20151022/gdb/configure.ac 2015-10-22 22:35:08.121962735 +0200
@@ -2096,6 +2096,10 @@ case $host_os in
esac
AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
@ -111,11 +111,11 @@ Index: gdb-7.9.90.20150709/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.9.90.20150709/gdb/gdbserver/configure.ac
Index: gdb-7.10.50.20151022/gdb/gdbserver/configure.ac
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/gdbserver/configure.ac 2015-07-09 18:24:13.707140401 +0200
+++ gdb-7.9.90.20150709/gdb/gdbserver/configure.ac 2015-07-09 18:24:24.913235990 +0200
@@ -499,6 +499,10 @@ if $want_ipa ; then
--- gdb-7.10.50.20151022.orig/gdb/gdbserver/configure.ac 2015-10-22 22:35:00.475917145 +0200
+++ gdb-7.10.50.20151022/gdb/gdbserver/configure.ac 2015-10-22 22:35:08.121962735 +0200
@@ -502,6 +502,10 @@ if $want_ipa ; then
fi
fi
@ -126,11 +126,11 @@ Index: gdb-7.9.90.20150709/gdb/gdbserver/configure.ac
AC_SUBST(GDBSERVER_DEPFILES)
AC_SUBST(GDBSERVER_LIBS)
AC_SUBST(srv_xmlbuiltin)
Index: gdb-7.9.90.20150709/gdb/gdbserver/linux-low.c
Index: gdb-7.10.50.20151022/gdb/gdbserver/linux-low.c
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/gdbserver/linux-low.c 2015-07-09 18:24:13.709140418 +0200
+++ gdb-7.9.90.20150709/gdb/gdbserver/linux-low.c 2015-07-09 18:24:24.914235998 +0200
@@ -755,6 +755,29 @@ add_lwp (ptid_t ptid)
--- gdb-7.10.50.20151022.orig/gdb/gdbserver/linux-low.c 2015-10-22 22:35:00.476917151 +0200
+++ gdb-7.10.50.20151022/gdb/gdbserver/linux-low.c 2015-10-22 22:35:08.122962741 +0200
@@ -843,6 +843,29 @@ add_lwp (ptid_t ptid)
return lwp;
}
@ -160,7 +160,7 @@ Index: gdb-7.9.90.20150709/gdb/gdbserver/linux-low.c
/* Start an inferior process and returns its pid.
ALLARGS is a vector of program-name and args. */
@@ -778,7 +801,7 @@ linux_create_inferior (char *program, ch
@@ -866,7 +889,7 @@ linux_create_inferior (char *program, ch
if (pid == 0)
{
close_most_fds ();
@ -169,10 +169,10 @@ Index: gdb-7.9.90.20150709/gdb/gdbserver/linux-low.c
#ifndef __ANDROID__ /* Bionic doesn't use SIGRTMIN the way glibc does. */
signal (__SIGRTMIN + 1, SIG_DFL);
Index: gdb-7.9.90.20150709/gdb/inf-ptrace.c
Index: gdb-7.10.50.20151022/gdb/inf-ptrace.c
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/inf-ptrace.c 2015-07-09 18:24:13.710140426 +0200
+++ gdb-7.9.90.20150709/gdb/inf-ptrace.c 2015-07-09 18:24:24.915236007 +0200
--- gdb-7.10.50.20151022.orig/gdb/inf-ptrace.c 2015-10-22 22:35:00.477917156 +0200
+++ gdb-7.10.50.20151022/gdb/inf-ptrace.c 2015-10-22 22:35:08.122962741 +0200
@@ -79,7 +79,15 @@ static void
inf_ptrace_me (void)
{
@ -189,10 +189,10 @@ Index: gdb-7.9.90.20150709/gdb/inf-ptrace.c
}
/* Start a new inferior Unix child process. EXEC_FILE is the file to
Index: gdb-7.9.90.20150709/gdb/linux-nat.c
Index: gdb-7.10.50.20151022/gdb/linux-nat.c
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/linux-nat.c 2015-07-09 18:24:13.712140443 +0200
+++ gdb-7.9.90.20150709/gdb/linux-nat.c 2015-07-09 18:24:24.916236015 +0200
--- gdb-7.10.50.20151022.orig/gdb/linux-nat.c 2015-10-22 22:35:00.477917156 +0200
+++ gdb-7.10.50.20151022/gdb/linux-nat.c 2015-10-22 22:35:08.123962747 +0200
@@ -1184,6 +1184,7 @@ linux_nat_create_inferior (struct target
{
struct cleanup *restore_personality
@ -231,10 +231,10 @@ Index: gdb-7.9.90.20150709/gdb/linux-nat.c
do_cleanups (restore_personality);
}
Index: gdb-7.9.90.20150709/gdb/config.in
Index: gdb-7.10.50.20151022/gdb/config.in
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/config.in 2015-07-09 18:24:13.713140452 +0200
+++ gdb-7.9.90.20150709/gdb/config.in 2015-07-09 18:24:24.916236015 +0200
--- gdb-7.10.50.20151022.orig/gdb/config.in 2015-10-22 22:35:00.478917162 +0200
+++ gdb-7.10.50.20151022/gdb/config.in 2015-10-22 22:35:08.123962747 +0200
@@ -264,6 +264,9 @@
/* Define if librpm library is being used. */
#undef HAVE_LIBRPM
@ -255,11 +255,11 @@ Index: gdb-7.9.90.20150709/gdb/config.in
/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE
Index: gdb-7.9.90.20150709/gdb/configure
Index: gdb-7.10.50.20151022/gdb/configure
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/configure 2015-07-09 18:24:13.718140495 +0200
+++ gdb-7.9.90.20150709/gdb/configure 2015-07-09 18:24:24.920236049 +0200
@@ -14228,6 +14228,64 @@ cat >>confdefs.h <<_ACEOF
--- gdb-7.10.50.20151022.orig/gdb/configure 2015-10-22 22:35:00.480917174 +0200
+++ gdb-7.10.50.20151022/gdb/configure 2015-10-22 22:35:08.125962759 +0200
@@ -14691,6 +14691,64 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
@ -324,11 +324,11 @@ Index: gdb-7.9.90.20150709/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.9.90.20150709/gdb/gdbserver/config.in
Index: gdb-7.10.50.20151022/gdb/gdbserver/config.in
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/gdbserver/config.in 2015-07-09 18:24:13.719140503 +0200
+++ gdb-7.9.90.20150709/gdb/gdbserver/config.in 2015-07-09 18:24:24.920236049 +0200
@@ -113,6 +113,9 @@
--- gdb-7.10.50.20151022.orig/gdb/gdbserver/config.in 2015-10-22 22:35:00.481917180 +0200
+++ gdb-7.10.50.20151022/gdb/gdbserver/config.in 2015-10-22 22:35:08.126962765 +0200
@@ -117,6 +117,9 @@
/* Define to 1 if you have the `mcheck' library (-lmcheck). */
#undef HAVE_LIBMCHECK
@ -338,7 +338,7 @@ Index: gdb-7.9.90.20150709/gdb/gdbserver/config.in
/* Define if the target supports branch tracing. */
#undef HAVE_LINUX_BTRACE
@@ -189,6 +192,9 @@
@@ -196,6 +199,9 @@
/* Define to 1 if you have the `setns' function. */
#undef HAVE_SETNS
@ -348,11 +348,11 @@ Index: gdb-7.9.90.20150709/gdb/gdbserver/config.in
/* Define to 1 if you have the <sgtty.h> header file. */
#undef HAVE_SGTTY_H
Index: gdb-7.9.90.20150709/gdb/gdbserver/configure
Index: gdb-7.10.50.20151022/gdb/gdbserver/configure
===================================================================
--- gdb-7.9.90.20150709.orig/gdb/gdbserver/configure 2015-07-09 18:24:13.721140520 +0200
+++ gdb-7.9.90.20150709/gdb/gdbserver/configure 2015-07-09 18:24:24.922236066 +0200
@@ -7022,6 +7022,64 @@ if $want_ipa ; then
--- gdb-7.10.50.20151022.orig/gdb/gdbserver/configure 2015-10-22 22:35:00.482917186 +0200
+++ gdb-7.10.50.20151022/gdb/gdbserver/configure 2015-10-22 22:35:08.127962770 +0200
@@ -7290,6 +7290,64 @@ if $want_ipa ; then
fi
fi

View File

@ -0,0 +1,61 @@
http://sourceware.org/ml/gdb-patches/2015-11/msg00127.html
Subject: [testsuite patch] Fortran: allocate()d memory is uninitialized
--mP3DRpeJDSE+ciuQ
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Hi,
allocate (vla1 (5)) ! vla1-not-allocated
l = allocated(vla1) ! vla1-allocated <------------------
Expecting: ^(510-data-evaluate-expression vla1[^M
]+)?(510\^done,value="\(0, 0, 0, 0, 0\)"[^M
]+[(]gdb[)] ^M
[ ]*)
510-data-evaluate-expression vla1^M
510^done,value="(1.82987403e-09, 7.8472714e-44, 1.82987403e-09, 7.8472714e-44, 2.67929926e+20)"^M
(gdb) ^M
FAIL: gdb.mi/mi-vla-fortran.exp: evaluate allocated vla
gcc-4.9.2-6.fc21.x86_64
I think some older gfortran did initialize allocated memory but that is an
unspecified behavior. I haven't found any initialization mentioned
in Fortran 90 standard (draft) and it is also clearly stated here:
https://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/268786
Initialization to 0 of allocated arrays (of integers) is an
implementation issue. i.e. do not rely on it.
OK for check-in?
Jan
--mP3DRpeJDSE+ciuQ
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename=1
gdb/testsuite/ChangeLog
2015-11-03 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.mi/mi-vla-fortran.exp (evaluate allocated vla): Remove test.
diff --git a/gdb/testsuite/gdb.mi/mi-vla-fortran.exp b/gdb/testsuite/gdb.mi/mi-vla-fortran.exp
index d191623..baee7f8 100644
--- a/gdb/testsuite/gdb.mi/mi-vla-fortran.exp
+++ b/gdb/testsuite/gdb.mi/mi-vla-fortran.exp
@@ -68,8 +68,6 @@ mi_create_breakpoint "-t vla.f90:$bp_lineno" 2 "del" "vla" ".*vla.f90" \
mi_run_cmd
mi_expect_stop "breakpoint-hit" "vla" "" ".*vla.f90" "$bp_lineno" \
{ "" "disp=\"del\"" } "run to breakpoint at line $bp_lineno"
-mi_gdb_test "510-data-evaluate-expression vla1" \
- "510\\^done,value=\"\\(0, 0, 0, 0, 0\\)\"" "evaluate allocated vla"
mi_create_varobj_checked vla1_allocated vla1 "real\\\(kind=4\\\) \\\(5\\\)" \
"create local variable vla1_allocated"
--mP3DRpeJDSE+ciuQ--

View File

@ -0,0 +1,268 @@
http://sourceware.org/ml/gdb-patches/2015-10/msg00601.html
Subject: [PATCH] [PATCH] Don't displaced step when there's a breakpoint in the scratch pad range
Assuming displaced stepping is enabled, and a breakpoint is set in the
memory region of the scratch pad, things break. One of two cases can
happen:
#1 - The breakpoint wasn't inserted yet (all threads were stopped), so
after setting up the displaced stepping scratch pad with the
adjusted copy of the instruction we're trying to single-step, we
insert the breakpoint, which corrupts the scratch pad, and the
inferior executes the wrong instruction. (Example below.)
This is clearly unacceptable.
#2 - The breakpoint was already inserted, so setting up the displaced
stepping scratch pad overwrites the breakpoint. This is OK in
the sense that we already assume that no thread is going to
executes the code in the scratch pad range (after initial
startup) anyway.
This commit addresses both cases by simply punting on displaced
stepping if we have a breakpoint in the scratch pad range.
The #1 case above explains a few regressions exposed by the AS/NS
series on x86:
Running ./gdb.dwarf2/callframecfa.exp ...
FAIL: gdb.dwarf2/callframecfa.exp: set display for call-frame-cfa
FAIL: gdb.dwarf2/callframecfa.exp: step 1 for call-frame-cfa
FAIL: gdb.dwarf2/callframecfa.exp: step 2 for call-frame-cfa
FAIL: gdb.dwarf2/callframecfa.exp: step 3 for call-frame-cfa
FAIL: gdb.dwarf2/callframecfa.exp: step 4 for call-frame-cfa
Running ./gdb.dwarf2/typeddwarf.exp ...
FAIL: gdb.dwarf2/typeddwarf.exp: continue to breakpoint: continue to typeddwarf.c:53
FAIL: gdb.dwarf2/typeddwarf.exp: check value of x at typeddwarf.c:53
FAIL: gdb.dwarf2/typeddwarf.exp: check value of y at typeddwarf.c:53
FAIL: gdb.dwarf2/typeddwarf.exp: check value of z at typeddwarf.c:53
FAIL: gdb.dwarf2/typeddwarf.exp: continue to breakpoint: continue to typeddwarf.c:73
FAIL: gdb.dwarf2/typeddwarf.exp: check value of w at typeddwarf.c:73
FAIL: gdb.dwarf2/typeddwarf.exp: check value of x at typeddwarf.c:73
FAIL: gdb.dwarf2/typeddwarf.exp: check value of y at typeddwarf.c:73
FAIL: gdb.dwarf2/typeddwarf.exp: check value of z at typeddwarf.c:73
Enabling "maint set target-non-stop on" implies displaced stepping
enabled as well, and it's the latter that's to blame here. We can see
the same failures with "maint set target-non-stop off + set displaced
on".
Diffing (good/bad) gdb.log for callframecfa.exp shows:
@@ -99,29 +99,29 @@ Breakpoint 2 at 0x80481b0: file q.c, lin
continue
Continuing.
-Breakpoint 2, func (arg=77) at q.c:2
+Breakpoint 2, func (arg=52301) at q.c:2
2 in q.c
(gdb) PASS: gdb.dwarf2/callframecfa.exp: continue to breakpoint: continue to breakpoint for call-frame-cfa
display arg
-1: arg = 77
-(gdb) PASS: gdb.dwarf2/callframecfa.exp: set display for call-frame-cfa
+1: arg = 52301
+(gdb) FAIL: gdb.dwarf2/callframecfa.exp: set display for call-frame-cfa
The problem is here, when setting up the func call:
Breakpoint 1, main (argc=-13345, argv=0x0) at q.c:7
7 in q.c
(gdb) disassemble
Dump of assembler code for function main:
0x080481bb <+0>: push %ebp
0x080481bc <+1>: mov %esp,%ebp
0x080481be <+3>: sub $0x4,%esp
=> 0x080481c1 <+6>: movl $0x4d,(%esp)
0x080481c8 <+13>: call 0x80481b0 <func>
0x080481cd <+18>: leave
0x080481ce <+19>: ret
End of assembler dump.
(gdb) disassemble /r
Dump of assembler code for function main:
0x080481bb <+0>: 55 push %ebp
0x080481bc <+1>: 89 e5 mov %esp,%ebp
0x080481be <+3>: 83 ec 04 sub $0x4,%esp
=> 0x080481c1 <+6>: c7 04 24 4d 00 00 00 movl $0x4d,(%esp)
0x080481c8 <+13>: e8 e3 ff ff ff call 0x80481b0 <func>
0x080481cd <+18>: c9 leave
0x080481ce <+19>: c3 ret
End of assembler dump.
Note the breakpoint at main is set at 0x080481c1. Right at the
instruction that sets up func's argument. Executing that instruction
should write 0x4d to the address pointed at by $esp. However, if we
stepi, the program manages to write 52301/0xcc4d there instead (0xcc
is int3, the x86 breakpoint instruction), because the breakpoint
address is 4 bytes inside the scratch pad location, which is
0x080481bd:
(gdb) p 0x080481c1 - 0x080481bd
$1 = 4
IOW, instead of executing:
"c7 04 24 4d 00 00 00" [ movl $0x4d,(%esp) ]
the inferior executes:
"c7 04 24 4d cc 00 00" [movl $0xcc4d,(%esp) ]
gdb/ChangeLog:
2015-10-26 Pedro Alves <palves@redhat.com>
* breakpoint.c (breakpoint_in_range_p)
(breakpoint_location_address_range_overlap): New functions.
* breakpoint.h (breakpoint_in_range_p): New declaration.
* infrun.c (displaced_step_prepare_throw): If there's a breakpoint
in the scratch pad range, don't displaced step.
---
gdb/breakpoint.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gdb/breakpoint.h | 5 +++++
gdb/infrun.c | 23 ++++++++++++++++++++++
3 files changed, 88 insertions(+)
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 2c901ff..5863573 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -173,6 +173,10 @@ static int breakpoint_location_address_match (struct bp_location *bl,
struct address_space *aspace,
CORE_ADDR addr);
+static int breakpoint_location_address_range_overlap (struct bp_location *,
+ struct address_space *,
+ CORE_ADDR, int);
+
static void breakpoints_info (char *, int);
static void watchpoints_info (char *, int);
@@ -4243,6 +4247,40 @@ breakpoint_here_p (struct address_space *aspace, CORE_ADDR pc)
return any_breakpoint_here ? ordinary_breakpoint_here : no_breakpoint_here;
}
+/* See breakpoint.h. */
+
+int
+breakpoint_in_range_p (struct address_space *aspace,
+ CORE_ADDR addr, ULONGEST len)
+{
+ struct bp_location *bl, **blp_tmp;
+
+ ALL_BP_LOCATIONS (bl, blp_tmp)
+ {
+ if (bl->loc_type != bp_loc_software_breakpoint
+ && bl->loc_type != bp_loc_hardware_breakpoint)
+ continue;
+
+ if ((breakpoint_enabled (bl->owner)
+ || bl->permanent)
+ && breakpoint_location_address_range_overlap (bl, aspace,
+ addr, len))
+ {
+ if (overlay_debugging
+ && section_is_overlay (bl->section)
+ && !section_is_mapped (bl->section))
+ {
+ /* Unmapped overlay -- can't be a match. */
+ continue;
+ }
+
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
/* Return true if there's a moribund breakpoint at PC. */
int
@@ -7079,6 +7117,28 @@ breakpoint_location_address_match (struct bp_location *bl,
aspace, addr)));
}
+/* Returns true if the [ADDR,ADDR+LEN) range in ASPACE overlaps
+ breakpoint BL. BL may be a ranged breakpoint. In most targets, a
+ match happens only if ASPACE matches the breakpoint's address
+ space. On targets that have global breakpoints, the address space
+ doesn't really matter. */
+
+static int
+breakpoint_location_address_range_overlap (struct bp_location *bl,
+ struct address_space *aspace,
+ CORE_ADDR addr, int len)
+{
+ if (gdbarch_has_global_breakpoints (target_gdbarch ())
+ || bl->pspace->aspace == aspace)
+ {
+ int bl_len = bl->length != 0 ? bl->length : 1;
+
+ if (mem_ranges_overlap (addr, len, bl->address, bl_len))
+ return 1;
+ }
+ return 0;
+}
+
/* If LOC1 and LOC2's owners are not tracepoints, returns false directly.
Then, if LOC1 and LOC2 represent the same tracepoint location, returns
true, otherwise returns false. */
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 896d3eb..ee8b2e0 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -1146,6 +1146,11 @@ extern int program_breakpoint_here_p (struct gdbarch *gdbarch, CORE_ADDR address
extern enum breakpoint_here breakpoint_here_p (struct address_space *,
CORE_ADDR);
+/* Return true if an enabled breakpoint exists in the range defined by
+ ADDR and LEN, in ASPACE. */
+extern int breakpoint_in_range_p (struct address_space *aspace,
+ CORE_ADDR addr, ULONGEST len);
+
extern int moribund_breakpoint_here_p (struct address_space *, CORE_ADDR);
extern int breakpoint_inserted_here_p (struct address_space *, CORE_ADDR);
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 917f9be..ef4ccb4 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -1729,6 +1729,7 @@ displaced_step_prepare_throw (ptid_t ptid)
struct thread_info *tp = find_thread_ptid (ptid);
struct regcache *regcache = get_thread_regcache (ptid);
struct gdbarch *gdbarch = get_regcache_arch (regcache);
+ struct address_space *aspace = get_regcache_aspace (regcache);
CORE_ADDR original, copy;
ULONGEST len;
struct displaced_step_closure *closure;
@@ -1784,6 +1785,28 @@ displaced_step_prepare_throw (ptid_t ptid)
copy = gdbarch_displaced_step_location (gdbarch);
len = gdbarch_max_insn_length (gdbarch);
+ if (breakpoint_in_range_p (aspace, copy, len))
+ {
+ /* There's a breakpoint set in the scratch pad location range
+ (which is usually around the entry point). We'd either
+ install it before resuming, which would overwrite/corrupt the
+ scratch pad, or if it was already inserted, this displaced
+ step would overwrite it. The latter is OK in the sense that
+ we already assume that no thread is going to execute the code
+ in the scratch pad range (after initial startup) anyway, but
+ the former is unacceptable. Simply punt and fallback to
+ stepping over this breakpoint in-line. */
+ if (debug_displaced)
+ {
+ fprintf_unfiltered (gdb_stdlog,
+ "displaced: breakpoint set in scratch pad. "
+ "Stepping over breakpoint in-line instead.\n");
+ }
+
+ do_cleanups (old_cleanups);
+ return -1;
+ }
+
/* Save the original contents of the copy area. */
displaced->step_saved_copy = (gdb_byte *) xmalloc (len);
ignore_cleanups = make_cleanup (free_current_contents,
--
1.9.3

View File

@ -1,193 +0,0 @@
From f469e8ce11672e26feb5ba6f9a134275fcfd5b4f Mon Sep 17 00:00:00 2001
From: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Fri, 21 Aug 2015 18:13:46 -0400
Subject: [PATCH 1/4] Improve error reporting when handling SystemTap SDT
probes
This patch improves the error reporting when handling SystemTap SDT
probes. "Handling", in this case, mostly means "parsing".
On gdb/probe.h, only trivial changes on functions' comments in order
to explicitly mention that some of them can throw exceptions. This is
just to make the API a bit more clear.
On gdb/stap-probe.c, I have s/internal_error/error/ on two functions
that are responsible for parsing specific bits of the probes'
arguments: stap_get_opcode and stap_get_expected_argument_type. It is
not correct to call internal_error on such situations because it is
not really GDB's fault if the probes have malformed arguments. I also
improved the error reported on stap_get_expected_argument_type by also
including the probe name on it.
Aside from that, and perhaps most importantly, I added a check on
stap_get_arg to make sure that we don't try to extract an argument
from a probe that has no arguments. This check issues an
internal_error, because it really means that GDB is doing something it
shouldn't.
Although it can be considered almost trivial, and despite the fact
that I am the maintainer for this part of the code, I am posting this
patch for review. I will wait a few days, and if nobody has anything
to say, I will go ahead and push it.
gdb/ChangeLog:
2015-09-01 Sergio Durigan Junior <sergiodj@redhat.com>
* probe.h (struct probe_ops) <get_probe_argument_count,
evaluate_probe_argument, enable_probe, disable_probe>: Mention in
the comment that the function can throw an exception.
(get_probe_argument_count): Likewise.
(evaluate_probe_argument): Likewise.
* stap-probe.c (stap_get_opcode): Call error instead of
internal_error.
(stap_get_expected_argument_type): Likewise. Add argument
'probe'. Improve error message by mentioning the probe's name.
(stap_parse_probe_arguments): Adjust call to
stap_get_expected_argument_type.
(stap_get_arg): Add comment. Assert that 'probe->args_parsed' is
not zero. Call internal_error if GDB requests an argument but the
probe has no arguments.
---
gdb/ChangeLog | 17 +++++++++++++++++
gdb/probe.h | 20 ++++++++++++++------
gdb/stap-probe.c | 29 ++++++++++++++++++++++-------
3 files changed, 53 insertions(+), 13 deletions(-)
Index: gdb-7.10/gdb/probe.h
===================================================================
--- gdb-7.10.orig/gdb/probe.h
+++ gdb-7.10/gdb/probe.h
@@ -70,7 +70,8 @@ struct probe_ops
CORE_ADDR (*get_probe_address) (struct probe *probe,
struct objfile *objfile);
- /* Return the number of arguments of PROBE. */
+ /* Return the number of arguments of PROBE. This function can
+ throw an exception. */
unsigned (*get_probe_argument_count) (struct probe *probe,
struct frame_info *frame);
@@ -82,7 +83,8 @@ struct probe_ops
int (*can_evaluate_probe_arguments) (struct probe *probe);
/* Evaluate the Nth argument from the PROBE, returning a value
- corresponding to it. The argument number is represented N. */
+ corresponding to it. The argument number is represented N.
+ This function can throw an exception. */
struct value *(*evaluate_probe_argument) (struct probe *probe,
unsigned n,
@@ -141,13 +143,15 @@ struct probe_ops
/* Enable a probe. The semantics of "enabling" a probe depend on
the specific backend and the field can be NULL in case enabling
- probes is not supported. */
+ probes is not supported. This function can throw an
+ exception. */
void (*enable_probe) (struct probe *probe);
/* Disable a probe. The semantics of "disabling" a probe depend
on the specific backend and the field can be NULL in case
- disabling probes is not supported. */
+ disabling probes is not supported. This function can throw an
+ exception. */
void (*disable_probe) (struct probe *probe);
};
@@ -264,7 +268,9 @@ extern struct cmd_list_element **info_pr
extern CORE_ADDR get_probe_address (struct probe *probe,
struct objfile *objfile);
-/* Return the argument count of the specified probe. */
+/* Return the argument count of the specified probe.
+
+ This function can throw an exception. */
extern unsigned get_probe_argument_count (struct probe *probe,
struct frame_info *frame);
@@ -276,7 +282,9 @@ extern unsigned get_probe_argument_count
extern int can_evaluate_probe_arguments (struct probe *probe);
/* Evaluate argument N of the specified probe. N must be between 0
- inclusive and get_probe_argument_count exclusive. */
+ inclusive and get_probe_argument_count exclusive.
+
+ This function can throw an exception. */
extern struct value *evaluate_probe_argument (struct probe *probe,
unsigned n,
Index: gdb-7.10/gdb/stap-probe.c
===================================================================
--- gdb-7.10.orig/gdb/stap-probe.c
+++ gdb-7.10/gdb/stap-probe.c
@@ -313,9 +313,8 @@ stap_get_opcode (const char **s)
break;
default:
- internal_error (__FILE__, __LINE__,
- _("Invalid opcode in expression `%s' for SystemTap"
- "probe"), *s);
+ error (_("Invalid opcode in expression `%s' for SystemTap"
+ "probe"), *s);
}
return op;
@@ -326,7 +325,8 @@ stap_get_opcode (const char **s)
static struct type *
stap_get_expected_argument_type (struct gdbarch *gdbarch,
- enum stap_arg_bitness b)
+ enum stap_arg_bitness b,
+ const struct stap_probe *probe)
{
switch (b)
{
@@ -361,8 +361,8 @@ stap_get_expected_argument_type (struct
return builtin_type (gdbarch)->builtin_uint64;
default:
- internal_error (__FILE__, __LINE__,
- _("Undefined bitness for probe."));
+ error (_("Undefined bitness for probe '%s'."),
+ probe->p.name);
break;
}
}
@@ -1172,7 +1172,8 @@ stap_parse_probe_arguments (struct stap_
else
arg.bitness = STAP_ARG_BITNESS_UNDEFINED;
- arg.atype = stap_get_expected_argument_type (gdbarch, arg.bitness);
+ arg.atype = stap_get_expected_argument_type (gdbarch, arg.bitness,
+ probe);
expr = stap_parse_argument (&cur, arg.atype, gdbarch);
@@ -1278,12 +1279,26 @@ stap_is_operator (const char *op)
return ret;
}
+/* Return argument N of probe PROBE.
+
+ If the probe's arguments have not been parsed yet, parse them. If
+ there are no arguments, throw an exception (error). Otherwise,
+ return the requested argument. */
+
static struct stap_probe_arg *
stap_get_arg (struct stap_probe *probe, unsigned n, struct gdbarch *gdbarch)
{
if (!probe->args_parsed)
stap_parse_probe_arguments (probe, gdbarch);
+ gdb_assert (probe->args_parsed);
+ if (probe->args_u.vec == NULL)
+ internal_error (__FILE__, __LINE__,
+ _("Probe '%s' apparently does not have arguments, but \n"
+ "GDB is requesting its argument number %u anyway. "
+ "This should not happen. Please report this bug."),
+ probe->p.name, n);
+
return VEC_index (stap_probe_arg_s, probe->args_u.vec, n);
}

View File

@ -1,194 +0,0 @@
From 3bd7e5b7ee5ea0b3bbb4030ca841f66faad74f0f Mon Sep 17 00:00:00 2001
From: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Fri, 21 Aug 2015 18:28:07 -0400
Subject: [PATCH 2/4] Catching errors on probes-based dynamic linker interface
This patch is intended to make the interaction between the
probes-based dynamic linker interface and the SystemTap SDT probe code
on GDB more robust. It does that by wrapping the calls to the probe
API with TRY...CATCH'es, so that any exception thrown will be caught
and handled properly.
The idea for this patch came from
<https://bugzilla.redhat.com/show_bug.cgi?id=1196181>, which is a bug
initially filed against Fedora GDB (but now under Fedora GLIBC). This
bug happens on armhfp (although it could happen on other targets as
well), and is triggered because GCC generates a strange argument for
one of the probes used by GDB in the dynamic linker interface. As can
be seen in the bug, this argument is "-4@.L1052".
I don't want to discuss the reasons for this argument to be there
(this discussion belongs to the bug, or to another thread), but GDB
could definitely do a better error handling here. Currently, one sees
the following message when there is an error in the probes-based
dynamic linker interface:
(gdb) run
Starting program: /bin/inferior
warning: Probes-based dynamic linker interface failed.
Reverting to original interface.
Cannot parse expression `.L976 4@r4'.
(gdb)
Which means that one needs to explicitly issue a "continue" command to
make GDB continue running the inferior, even though this error is not
fatal and GDB will fallback to the old interface automatically.
This is where this patch helps: it makes GDB still print the necessary
warnings or error messages, but it *also* does not stop the inferior
unnecessarily.
I have tested this patch on the systems where this error happens, but
I could not come up with a way to create a testcase for it.
Nevertheless, it should be straightforward to see that this patch does
improve the current situation.
gdb/ChangeLog:
2015-09-01 Sergio Durigan Junior <sergiodj@redhat.com>
* solib-svr4.c (solib_event_probe_action): Call
get_probe_argument_count using TRY...CATCH.
(svr4_handle_solib_event): Likewise, for evaluate_probe_argument.
---
gdb/ChangeLog | 6 ++++++
gdb/solib-svr4.c | 43 ++++++++++++++++++++++++++++++++++++++++---
2 files changed, 46 insertions(+), 3 deletions(-)
Index: gdb-7.10/gdb/solib-svr4.c
===================================================================
--- gdb-7.10.orig/gdb/solib-svr4.c
+++ gdb-7.10/gdb/solib-svr4.c
@@ -1796,7 +1796,23 @@ solib_event_probe_action (struct probe_a
arg0: Lmid_t lmid (mandatory)
arg1: struct r_debug *debug_base (mandatory)
arg2: struct link_map *new (optional, for incremental updates) */
- probe_argc = get_probe_argument_count (pa->probe, frame);
+ TRY
+ {
+ probe_argc = get_probe_argument_count (pa->probe, frame);
+ }
+ CATCH (ex, RETURN_MASK_ERROR)
+ {
+ exception_print (gdb_stderr, ex);
+ probe_argc = 0;
+ }
+ END_CATCH
+
+ /* If get_probe_argument_count throws an exception, probe_argc will
+ be set to zero. However, if pa->probe does not have arguments,
+ then get_probe_argument_count will succeed but probe_argc will
+ also be zero. Both cases happen because of different things, but
+ they are treated equally here: action will be set to
+ PROBES_INTERFACE_FAILED. */
if (probe_argc == 2)
action = FULL_RELOAD;
else if (probe_argc < 2)
@@ -1950,7 +1966,17 @@ svr4_handle_solib_event (void)
usm_chain = make_cleanup (resume_section_map_updates_cleanup,
current_program_space);
- val = evaluate_probe_argument (pa->probe, 1, frame);
+ TRY
+ {
+ val = evaluate_probe_argument (pa->probe, 1, frame);
+ }
+ CATCH (ex, RETURN_MASK_ERROR)
+ {
+ exception_print (gdb_stderr, ex);
+ val = NULL;
+ }
+ END_CATCH
+
if (val == NULL)
{
do_cleanups (old_chain);
@@ -1981,7 +2007,18 @@ svr4_handle_solib_event (void)
if (action == UPDATE_OR_RELOAD)
{
- val = evaluate_probe_argument (pa->probe, 2, frame);
+ TRY
+ {
+ val = evaluate_probe_argument (pa->probe, 2, frame);
+ }
+ CATCH (ex, RETURN_MASK_ERROR)
+ {
+ exception_print (gdb_stderr, ex);
+ do_cleanups (old_chain);
+ return;
+ }
+ END_CATCH
+
if (val != NULL)
lm = value_as_address (val);
From ad1c917a79e8c5aa67657f148415c1bee01b240f Mon Sep 17 00:00:00 2001
From: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Wed, 2 Sep 2015 00:34:22 -0400
Subject: [PATCH 3/4] Initialize variable and silence GCC warning from last
commit
BuildBot e-mailed me to let me know that my last commit broke GDB on
RHEL-7.1 s390x. On solib-svr4.c:svr4_handle_solib_event, 'val' now
needs to be initialized as NULL because it is inside a TRY..CATCH
block. This patch does that. Pushed as obvious.
gdb/ChangeLog:
2015-09-01 Sergio Durigan Junior <sergiodj@redhat.com>
* solib-svr4.c (svr4_handle_solib_event): Initialize 'val' as NULL
---
gdb/ChangeLog | 4 ++++
gdb/solib-svr4.c | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
Index: gdb-7.10/gdb/solib-svr4.c
===================================================================
--- gdb-7.10.orig/gdb/solib-svr4.c
+++ gdb-7.10/gdb/solib-svr4.c
@@ -1918,7 +1918,7 @@ svr4_handle_solib_event (void)
struct probe_and_action *pa;
enum probe_action action;
struct cleanup *old_chain, *usm_chain;
- struct value *val;
+ struct value *val = NULL;
CORE_ADDR pc, debug_base, lm = 0;
int is_initial_ns;
struct frame_info *frame = get_current_frame ();
From 73c6b4756a7cee53c274ed05fddcd079b8b7e57c Mon Sep 17 00:00:00 2001
From: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Wed, 2 Sep 2015 00:46:43 -0400
Subject: [PATCH 4/4] Initialize yet another variable to silence GCC warning
from last-but-one commit
Yet another BuildBot e-mail, yet another breakage on RHEL-7.1 s390x
(which uses an older GCC). This time,
solib-svr4.c:solib_event_probe_action has the probe_argc variable,
which is now inside a TRY..CATCH and therefore needs to be
initialized. Pushed as obvious.
gdb/ChangeLog:
2015-09-01 Sergio Durigan Junior <sergiodj@redhat.com>
* solib-svr4.c (solib_event_probe_action): Initialize 'probe_argc'
as zero.
---
gdb/ChangeLog | 5 +++++
gdb/solib-svr4.c | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
2015-09-01 Sergio Durigan Junior <sergiodj@redhat.com>
Index: gdb-7.10/gdb/solib-svr4.c
===================================================================
--- gdb-7.10.orig/gdb/solib-svr4.c
+++ gdb-7.10/gdb/solib-svr4.c
@@ -1782,7 +1782,7 @@ static enum probe_action
solib_event_probe_action (struct probe_and_action *pa)
{
enum probe_action action;
- unsigned probe_argc;
+ unsigned probe_argc = 0;
struct frame_info *frame = get_current_frame ();
action = pa->action;

View File

@ -1,257 +0,0 @@
http://sourceware.org/ml/gdb-patches/2015-09/msg00183.html
Subject: [ppc64le patch v3] Use skip_entrypoint for skip_trampoline_code
--mYCpIKhGyMATD0i+
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
An update to PASS the testcase on non-ppc64le archs.
--mYCpIKhGyMATD0i+
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename=4
gdb/ChangeLog
2015-09-07 Jan Kratochvil <jan.kratochvil@redhat.com>
* linespec.c (minsym_found): Call gdbarch_skip_entrypoint.
* ppc64-tdep.c (ppc64_skip_trampoline_code): Rename to ...
(ppc64_skip_trampoline_code_1): ... here.
(ppc64_skip_trampoline_code): New wrapper function.
* symtab.c (find_function_start_sal): Call gdbarch_skip_entrypoint.
gdb/testsuite/ChangeLog
2015-09-07 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.opt/solib-intra-step-lib.c: New file.
* gdb.opt/solib-intra-step-main.c: New file.
* gdb.opt/solib-intra-step.exp: New file.
diff --git a/gdb/linespec.c b/gdb/linespec.c
index 8f102fa..4c29c12 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -3570,6 +3570,8 @@ minsym_found (struct linespec_state *self, struct objfile *objfile,
sal.pc = MSYMBOL_VALUE_ADDRESS (objfile, msymbol);
sal.pc = gdbarch_convert_from_func_ptr_addr (gdbarch, sal.pc,
&current_target);
+ if (gdbarch_skip_entrypoint_p (gdbarch))
+ sal.pc = gdbarch_skip_entrypoint (gdbarch, sal.pc);
}
else
skip_prologue_sal (&sal);
diff --git a/gdb/ppc64-tdep.c b/gdb/ppc64-tdep.c
index bb23b6a..4a0b93a 100644
--- a/gdb/ppc64-tdep.c
+++ b/gdb/ppc64-tdep.c
@@ -454,8 +454,8 @@ ppc64_standard_linkage4_target (struct frame_info *frame,
When the execution direction is EXEC_REVERSE, scan backward to
check whether we are in the middle of a PLT stub. */
-CORE_ADDR
-ppc64_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
+static CORE_ADDR
+ppc64_skip_trampoline_code_1 (struct frame_info *frame, CORE_ADDR pc)
{
#define MAX(a,b) ((a) > (b) ? (a) : (b))
unsigned int insns[MAX (MAX (MAX (ARRAY_SIZE (ppc64_standard_linkage1),
@@ -530,6 +530,20 @@ ppc64_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
return 0;
}
+/* Wrapper of ppc64_skip_trampoline_code_1 checking also
+ ppc_elfv2_skip_entrypoint. */
+
+CORE_ADDR
+ppc64_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
+{
+ struct gdbarch *gdbarch = get_frame_arch (frame);
+
+ pc = ppc64_skip_trampoline_code_1 (frame, pc);
+ if (pc != 0 && gdbarch_skip_entrypoint_p (gdbarch))
+ pc = gdbarch_skip_entrypoint (gdbarch, pc);
+ return pc;
+}
+
/* Support for convert_from_func_ptr_addr (ARCH, ADDR, TARG) on PPC64
GNU/Linux.
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 1ba691e..f65e809 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -3629,7 +3629,11 @@ find_function_start_sal (struct symbol *sym, int funfirstline)
&& (COMPUNIT_LOCATIONS_VALID (SYMTAB_COMPUNIT (sal.symtab))
|| SYMTAB_LANGUAGE (sal.symtab) == language_asm))
{
+ struct gdbarch *gdbarch = symbol_arch (sym);
+
sal.pc = BLOCK_START (SYMBOL_BLOCK_VALUE (sym));
+ if (gdbarch_skip_entrypoint_p (gdbarch))
+ sal.pc = gdbarch_skip_entrypoint (gdbarch, sal.pc);
return sal;
}
diff --git a/gdb/testsuite/gdb.opt/solib-intra-step-lib.c b/gdb/testsuite/gdb.opt/solib-intra-step-lib.c
new file mode 100644
index 0000000..9ab1211
--- /dev/null
+++ b/gdb/testsuite/gdb.opt/solib-intra-step-lib.c
@@ -0,0 +1,30 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2015 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/>. */
+
+#include <stdlib.h>
+
+void
+shlib_second (int dummy)
+{ /* second-retry */
+ abort (); /* second-hit */
+}
+
+void
+shlib_first (void)
+{ /* first-retry */
+ shlib_second (0); /* first-hit */
+}
diff --git a/gdb/testsuite/gdb.opt/solib-intra-step-main.c b/gdb/testsuite/gdb.opt/solib-intra-step-main.c
new file mode 100644
index 0000000..186bd5f
--- /dev/null
+++ b/gdb/testsuite/gdb.opt/solib-intra-step-main.c
@@ -0,0 +1,25 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2015 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/>. */
+
+extern void shlib_first (void);
+
+int
+main (void)
+{
+ shlib_first ();
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.opt/solib-intra-step.exp b/gdb/testsuite/gdb.opt/solib-intra-step.exp
new file mode 100644
index 0000000..044c4bd
--- /dev/null
+++ b/gdb/testsuite/gdb.opt/solib-intra-step.exp
@@ -0,0 +1,86 @@
+# Copyright 2015 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+standard_testfile
+
+if {[skip_shlib_tests]} {
+ return 0
+}
+
+# Library file.
+set libname "${testfile}-lib"
+set srcfile_lib ${srcdir}/${subdir}/${libname}.c
+set binfile_lib [standard_output_file ${libname}.so]
+set lib_flags [list debug optimize=-O2]
+# Binary file.
+set testfile "${testfile}-main"
+set srcfile ${srcdir}/${subdir}/${testfile}.c
+set binfile [standard_output_file ${testfile}]
+set bin_flags [list debug shlib=${binfile_lib}]
+
+if [get_compiler_info] {
+ return -1
+}
+
+if { [gdb_compile_shlib ${srcfile_lib} ${binfile_lib} $lib_flags] != ""
+ || [gdb_compile ${srcfile} ${binfile} executable $bin_flags] != "" } {
+ untested "Could not compile $binfile_lib or $binfile."
+ return -1
+}
+
+clean_restart ${binfile}
+gdb_load_shlibs $binfile_lib
+
+if ![runto_main] then {
+ return 0
+}
+
+set test "first-hit"
+gdb_test_multiple "step" $test {
+ -re " first-hit .*\r\n$gdb_prompt $" {
+ pass $test
+ }
+ -re " first-retry .*\r\n$gdb_prompt $" {
+ gdb_test "step" " first-hit .*" "first-hit (optimized)"
+ }
+}
+
+set test "second-hit"
+gdb_test_multiple "step" $test {
+ -re " second-hit .*\r\n$gdb_prompt $" {
+ pass $test
+ }
+ -re " first-retry .*\r\n$gdb_prompt $" {
+ set test "second-hit (optimized 1)"
+ gdb_test_multiple "step" $test {
+ -re " second-hit .*\r\n$gdb_prompt $" {
+ pass $test
+ }
+ -re " first-hit .*\r\n$gdb_prompt $" {
+ gdb_test "step" " second-hit .*" "second-hit (optimized 2)"
+ }
+ }
+ }
+ -re " second-retry .*\r\n$gdb_prompt $" {
+ gdb_test "step" " second-hit .*" "second-hit (optimized 3)"
+ }
+}
+
+if ![runto_main] then {
+ return 0
+}
+
+gdb_breakpoint "shlib_second"
+gdb_continue_to_breakpoint "second-hit" ".* (second-hit|second-retry) .*"
--mYCpIKhGyMATD0i+--

View File

@ -1,220 +0,0 @@
http://sourceware.org/ml/gdb-patches/2015-10/msg00166.html
Subject: [patch] Fix internal error on DW_OP_bregx(-1)
--ibTvN161/egqYuK8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Hi,
https://bugzilla.redhat.com/show_bug.cgi?id=1270564#c15
https://bugzilla.redhat.com/attachment.cgi?id=1081772
clang-3.5.0-9.fc22.x86_64
<3><22b2>: Abbrev Number: 69 (DW_TAG_variable)
<22b3> DW_AT_location : 7 byte block: 92 ff ff ff ff f 0 (DW_OP_bregx: 4294967295 (r-1) 0)
<22bb> DW_AT_name : (indirect string, offset: 0x2a36): texture_data
<22c1> DW_AT_type : <0x1d3>
(gdb) p variable
warning: Unmapped DWARF Register #-1 encountered.
regcache.c:177: internal-error: register_size: Assertion `regnum >= 0 && regnum < (gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch))' failed.
[...]
Quit this debugging session? (y or n) FAIL: gdb.dwarf2/dw2-regno-invalid.exp: p variable (GDB internal error)
-> (x86_64)
(gdb) p variable
warning: Unmapped DWARF Register #-1 encountered.
Invalid register #-1, expecting 0 <= # < 220
(gdb) PASS: gdb.dwarf2/dw2-regno-invalid.exp: p variable
-> (i386)
(gdb) p variable
Invalid register #104, expecting 0 <= # < 104
(gdb) PASS: gdb.dwarf2/dw2-regno-invalid.exp: p variable
GDB calls gdbarch_dwarf2_reg_to_regnum() first which returns -1 in the x86_64
case
if (regnum == -1)
warning (_("Unmapped DWARF Register #%d encountered."), reg);
but in i386 case it does:
/* This will hopefully provoke a warning. */
return gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch);
and the default implementation is a nop, leaving whatever register number
the DWARF specified.
No regressions on {x86_64,x86_64-m32,i686}-fedorarawhide-linux-gnu.
Jan
--ibTvN161/egqYuK8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename="undefreg.patch"
gdb/ChangeLog
2015-10-12 Jan Kratochvil <jan.kratochvil@redhat.com>
* findvar.c (address_from_register): Check REGNUM validity.
gdb/testsuite/ChangeLog
2015-10-12 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.dwarf2/dw2-regno-invalid.S: New file.
* gdb.dwarf2/dw2-regno-invalid.exp: New file.
diff --git a/gdb/findvar.c b/gdb/findvar.c
index 0f46e53..855947d 100644
--- a/gdb/findvar.c
+++ b/gdb/findvar.c
@@ -927,6 +927,12 @@ address_from_register (int regnum, struct frame_info *frame)
struct type *type = builtin_type (gdbarch)->builtin_data_ptr;
struct value *value;
CORE_ADDR result;
+ int regnum_max_excl = (gdbarch_num_regs (gdbarch)
+ + gdbarch_num_pseudo_regs (gdbarch));
+
+ if (regnum < 0 || regnum >= regnum_max_excl)
+ error (_("Invalid register #%d, expecting 0 <= # < %d"), regnum,
+ regnum_max_excl);
/* This routine may be called during early unwinding, at a time
where the ID of FRAME is not yet known. Calling value_from_register
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.S b/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.S
new file mode 100644
index 0000000..075bfd6
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.S
@@ -0,0 +1,91 @@
+/* Copyright 2015 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/>. */
+
+ .section .debug_info
+debug_start:
+ .4byte debug_end - 1f /* Length of Compilation Unit Info */
+1:
+ .2byte 0x3 /* DWARF version number */
+ .4byte .Ldebug_abbrev0 /* Offset Into Abbrev. Section */
+ .byte 0x4 /* Pointer Size (in bytes) */
+ .uleb128 0x1 /* (DIE (0xb) DW_TAG_compile_unit) */
+ .ascii "clang-3.5.0-9.fc22.x86_64\0" /* DW_AT_producer */
+ .byte 0x1 /* DW_AT_language */
+ .ascii "1.c\0" /* DW_AT_name */
+ .4byte main_label /* DW_AT_low_pc */
+ .4byte main_label+0x10000 /* DW_AT_high_pc */
+
+ .uleb128 2 /* Abbrev: DW_TAG_subprogram */
+ .byte 1 /* DW_AT_external */
+ .ascii "main\0" /* DW_AT_name */
+ .4byte main_label /* DW_AT_low_pc */
+ .4byte main_label+0x10000 /* DW_AT_high_pc */
+
+ .uleb128 0x4 /* (DW_TAG_variable) */
+ .ascii "variable\0" /* DW_AT_name */
+ .2byte 2f - 1f /* DW_AT_location: DW_FORM_block2 */
+1:
+ .byte 0x92 /* DW_OP_bregx */
+ .uleb128 0xffffffff
+ .sleb128 0
+2:
+
+ .byte 0x0 /* end of children of main */
+ .byte 0x0 /* end of children of CU */
+debug_end:
+
+ .section .debug_abbrev
+.Ldebug_abbrev0:
+ .uleb128 0x1 /* (abbrev code) */
+ .uleb128 0x11 /* (TAG: DW_TAG_compile_unit) */
+ .byte 0x1 /* DW_children_yes */
+ .uleb128 0x25 /* (DW_AT_producer) */
+ .uleb128 0x8 /* (DW_FORM_string) */
+ .uleb128 0x13 /* (DW_AT_language) */
+ .uleb128 0xb /* (DW_FORM_data1) */
+ .uleb128 0x3 /* (DW_AT_name) */
+ .uleb128 0x8 /* (DW_FORM_string) */
+ .uleb128 0x11 /* DW_AT_low_pc */
+ .uleb128 0x1 /* DW_FORM_addr */
+ .uleb128 0x12 /* DW_AT_high_pc */
+ .uleb128 0x1 /* DW_FORM_addr */
+ .byte 0x0
+ .byte 0x0
+
+ .uleb128 2 /* Abbrev code */
+ .uleb128 0x2e /* DW_TAG_subprogram */
+ .byte 1 /* has_children */
+ .uleb128 0x3f /* DW_AT_external */
+ .uleb128 0xc /* DW_FORM_flag */
+ .uleb128 0x3 /* DW_AT_name */
+ .uleb128 0x8 /* DW_FORM_string */
+ .uleb128 0x11 /* DW_AT_low_pc */
+ .uleb128 0x1 /* DW_FORM_addr */
+ .uleb128 0x12 /* DW_AT_high_pc */
+ .uleb128 0x1 /* DW_FORM_addr */
+ .byte 0x0 /* Terminator */
+ .byte 0x0 /* Terminator */
+
+
+ .uleb128 0x4 /* (abbrev code) */
+ .uleb128 0x34 /* (TAG: DW_TAG_variable) */
+ .byte 0x0 /* DW_children_yes */
+ .uleb128 0x3 /* (DW_AT_name) */
+ .uleb128 0x8 /* (DW_FORM_string) */
+ .uleb128 0x02 /* (DW_AT_location) */
+ .uleb128 0x3 /* (DW_FORM_block2) */
+ .byte 0x0
+ .byte 0x0
+ .byte 0x0
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp b/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp
new file mode 100644
index 0000000..7c3a404
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp
@@ -0,0 +1,32 @@
+# Copyright 2015 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/>.
+load_lib dwarf.exp
+
+# This test can only be run on targets which support DWARF-2 and use gas.
+if {![dwarf2_support]} {
+ return 0
+}
+
+standard_testfile .S main.c
+
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile} ${srcdir}/${subdir}/${srcfile2}" \
+ "${binfile}" executable {}] != "" } {
+ return -1
+}
+
+clean_restart ${binfile}
+runto_main
+
+gdb_test "p variable"
--ibTvN161/egqYuK8--

File diff suppressed because it is too large Load Diff

View File

@ -52,11 +52,11 @@ Content-Type: text/x-patch
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=bitpos-ensure-size_t.patch
Index: gdb-7.7.90.20140613/gdb/alpha-tdep.c
Index: gdb-7.10.50.20151022/gdb/alpha-tdep.c
===================================================================
--- gdb-7.7.90.20140613.orig/gdb/alpha-tdep.c 2014-06-13 22:14:49.725846383 +0200
+++ gdb-7.7.90.20140613/gdb/alpha-tdep.c 2014-06-13 22:14:53.163850081 +0200
@@ -414,6 +414,13 @@ alpha_push_dummy_call (struct gdbarch *g
--- gdb-7.10.50.20151022.orig/gdb/alpha-tdep.c 2015-10-24 23:03:50.614898025 +0200
+++ gdb-7.10.50.20151022/gdb/alpha-tdep.c 2015-10-24 23:03:52.099907749 +0200
@@ -413,6 +413,13 @@ alpha_push_dummy_call (struct gdbarch *g
accumulate_size = 0;
else
accumulate_size -= sizeof(arg_reg_buffer);
@ -70,24 +70,24 @@ Index: gdb-7.7.90.20140613/gdb/alpha-tdep.c
sp -= accumulate_size;
/* Keep sp aligned to a multiple of 16 as the ABI requires. */
Index: gdb-7.7.90.20140613/gdb/cp-valprint.c
Index: gdb-7.10.50.20151022/gdb/cp-valprint.c
===================================================================
--- gdb-7.7.90.20140613.orig/gdb/cp-valprint.c 2014-06-13 22:14:49.725846383 +0200
+++ gdb-7.7.90.20140613/gdb/cp-valprint.c 2014-06-13 22:14:53.164850081 +0200
@@ -538,6 +538,8 @@ cp_print_value (struct type *type, struc
--- gdb-7.10.50.20151022.orig/gdb/cp-valprint.c 2015-10-24 23:03:52.100907756 +0200
+++ gdb-7.10.50.20151022/gdb/cp-valprint.c 2015-10-24 23:06:20.496879433 +0200
@@ -536,6 +536,8 @@ cp_print_value (struct type *type, struc
gdb_byte *buf;
struct cleanup *back_to;
+ ulongest_fits_host_or_error (TYPE_LENGTH (baseclass));
+
buf = xmalloc (TYPE_LENGTH (baseclass));
buf = (gdb_byte *) xmalloc (TYPE_LENGTH (baseclass));
back_to = make_cleanup (xfree, buf);
Index: gdb-7.7.90.20140613/gdb/dwarf2loc.c
Index: gdb-7.10.50.20151022/gdb/dwarf2loc.c
===================================================================
--- gdb-7.7.90.20140613.orig/gdb/dwarf2loc.c 2014-06-13 22:14:49.726846384 +0200
+++ gdb-7.7.90.20140613/gdb/dwarf2loc.c 2014-06-13 22:14:53.166850084 +0200
@@ -1666,6 +1666,8 @@ read_pieced_value (struct value *v)
--- gdb-7.10.50.20151022.orig/gdb/dwarf2loc.c 2015-10-24 23:03:50.616898039 +0200
+++ gdb-7.10.50.20151022/gdb/dwarf2loc.c 2015-10-24 23:03:52.101907762 +0200
@@ -1744,6 +1744,8 @@ read_pieced_value (struct value *v)
this_size = (this_size_bits + source_offset_bits % 8 + 7) / 8;
source_offset = source_offset_bits / 8;
@ -96,7 +96,7 @@ Index: gdb-7.7.90.20140613/gdb/dwarf2loc.c
if (buffer_size < this_size)
{
buffer_size = this_size;
@@ -1857,6 +1859,7 @@ write_pieced_value (struct value *to, st
@@ -1935,6 +1937,7 @@ write_pieced_value (struct value *to, st
}
else
{
@ -104,35 +104,35 @@ Index: gdb-7.7.90.20140613/gdb/dwarf2loc.c
if (buffer_size < this_size)
{
buffer_size = this_size;
Index: gdb-7.7.90.20140613/gdb/findcmd.c
Index: gdb-7.10.50.20151022/gdb/findcmd.c
===================================================================
--- gdb-7.7.90.20140613.orig/gdb/findcmd.c 2014-06-13 22:14:49.726846384 +0200
+++ gdb-7.7.90.20140613/gdb/findcmd.c 2014-06-13 22:14:53.166850084 +0200
@@ -185,6 +185,7 @@ parse_find_args (char *args, ULONGEST *m
--- gdb-7.10.50.20151022.orig/gdb/findcmd.c 2015-10-24 23:03:52.101907762 +0200
+++ gdb-7.10.50.20151022/gdb/findcmd.c 2015-10-24 23:06:57.208119813 +0200
@@ -184,6 +184,7 @@ parse_find_args (char *args, ULONGEST *m
size_t current_offset = pattern_buf_end - pattern_buf;
pattern_buf_size = pattern_buf_size_need * 2;
+ ulongest_fits_host_or_error (pattern_buf_size);
pattern_buf = xrealloc (pattern_buf, pattern_buf_size);
pattern_buf = (gdb_byte *) xrealloc (pattern_buf, pattern_buf_size);
pattern_buf_end = pattern_buf + current_offset;
}
Index: gdb-7.7.90.20140613/gdb/p-valprint.c
Index: gdb-7.10.50.20151022/gdb/p-valprint.c
===================================================================
--- gdb-7.7.90.20140613.orig/gdb/p-valprint.c 2014-06-13 22:14:49.728846387 +0200
+++ gdb-7.7.90.20140613/gdb/p-valprint.c 2014-06-13 22:14:53.166850084 +0200
@@ -772,6 +772,7 @@ pascal_object_print_value (struct type *
--- gdb-7.10.50.20151022.orig/gdb/p-valprint.c 2015-10-24 23:03:52.101907762 +0200
+++ gdb-7.10.50.20151022/gdb/p-valprint.c 2015-10-24 23:07:18.457258950 +0200
@@ -768,6 +768,7 @@ pascal_object_print_value (struct type *
gdb_byte *buf;
struct cleanup *back_to;
+ ulongest_fits_host_or_error (TYPE_LENGTH (baseclass));
buf = xmalloc (TYPE_LENGTH (baseclass));
buf = (gdb_byte *) xmalloc (TYPE_LENGTH (baseclass));
back_to = make_cleanup (xfree, buf);
Index: gdb-7.7.90.20140613/gdb/utils.c
Index: gdb-7.10.50.20151022/gdb/utils.c
===================================================================
--- gdb-7.7.90.20140613.orig/gdb/utils.c 2014-06-13 22:14:53.166850084 +0200
+++ gdb-7.7.90.20140613/gdb/utils.c 2014-06-13 22:15:16.839875341 +0200
@@ -2838,6 +2838,18 @@ string_to_core_addr (const char *my_stri
--- gdb-7.10.50.20151022.orig/gdb/utils.c 2015-10-24 23:03:50.617898045 +0200
+++ gdb-7.10.50.20151022/gdb/utils.c 2015-10-24 23:03:52.102907769 +0200
@@ -2835,6 +2835,18 @@ string_to_core_addr (const char *my_stri
return addr;
}
@ -151,31 +151,31 @@ Index: gdb-7.7.90.20140613/gdb/utils.c
char *
gdb_realpath (const char *filename)
{
Index: gdb-7.7.90.20140613/gdb/valops.c
Index: gdb-7.10.50.20151022/gdb/valops.c
===================================================================
--- gdb-7.7.90.20140613.orig/gdb/valops.c 2014-06-13 22:14:49.730846389 +0200
+++ gdb-7.7.90.20140613/gdb/valops.c 2014-06-13 22:14:53.169850088 +0200
@@ -2074,6 +2074,7 @@ search_struct_method (const char *name,
--- gdb-7.10.50.20151022.orig/gdb/valops.c 2015-10-24 23:03:52.103907775 +0200
+++ gdb-7.10.50.20151022/gdb/valops.c 2015-10-24 23:08:27.056709599 +0200
@@ -2057,6 +2057,7 @@ search_struct_method (const char *name,
struct cleanup *back_to;
CORE_ADDR address;
+ ulongest_fits_host_or_error (TYPE_LENGTH (baseclass));
tmp = xmalloc (TYPE_LENGTH (baseclass));
tmp = (gdb_byte *) xmalloc (TYPE_LENGTH (baseclass));
back_to = make_cleanup (xfree, tmp);
address = value_address (*arg1p);
Index: gdb-7.7.90.20140613/gdb/value.c
Index: gdb-7.10.50.20151022/gdb/value.c
===================================================================
--- gdb-7.7.90.20140613.orig/gdb/value.c 2014-06-13 22:14:49.732846391 +0200
+++ gdb-7.7.90.20140613/gdb/value.c 2014-06-13 22:14:53.169850088 +0200
@@ -824,6 +824,7 @@ allocate_value_lazy (struct type *type)
--- gdb-7.10.50.20151022.orig/gdb/value.c 2015-10-24 23:03:50.619898058 +0200
+++ gdb-7.10.50.20151022/gdb/value.c 2015-10-24 23:08:00.049531291 +0200
@@ -934,6 +934,7 @@ allocate_value_lazy (struct type *type)
description correctly. */
check_typedef (type);
+ ulongest_fits_host_or_error (TYPE_LENGTH (type));
val = (struct value *) xzalloc (sizeof (struct value));
val = XCNEW (struct value);
val->contents = NULL;
val->next = all_values;
@@ -855,6 +856,8 @@ allocate_value_lazy (struct type *type)
@@ -964,6 +965,8 @@ allocate_value_lazy (struct type *type)
static void
allocate_value_contents (struct value *val)
{
@ -184,7 +184,7 @@ Index: gdb-7.7.90.20140613/gdb/value.c
if (!val->contents)
val->contents = (gdb_byte *) xzalloc (TYPE_LENGTH (val->enclosing_type));
}
@@ -2831,8 +2834,12 @@ void
@@ -2995,8 +2998,12 @@ void
set_value_enclosing_type (struct value *val, struct type *new_encl_type)
{
if (TYPE_LENGTH (new_encl_type) > TYPE_LENGTH (value_enclosing_type (val)))
@ -199,11 +199,11 @@ Index: gdb-7.7.90.20140613/gdb/value.c
val->enclosing_type = new_encl_type;
}
Index: gdb-7.7.90.20140613/gdb/vax-tdep.c
Index: gdb-7.10.50.20151022/gdb/vax-tdep.c
===================================================================
--- gdb-7.7.90.20140613.orig/gdb/vax-tdep.c 2014-06-13 22:14:49.732846391 +0200
+++ gdb-7.7.90.20140613/gdb/vax-tdep.c 2014-06-13 22:14:53.169850088 +0200
@@ -223,6 +223,7 @@ vax_return_value (struct gdbarch *gdbarc
--- gdb-7.10.50.20151022.orig/gdb/vax-tdep.c 2015-10-24 23:03:50.619898058 +0200
+++ gdb-7.10.50.20151022/gdb/vax-tdep.c 2015-10-24 23:03:52.105907788 +0200
@@ -219,6 +219,7 @@ vax_return_value (struct gdbarch *gdbarc
ULONGEST addr;
regcache_raw_read_unsigned (regcache, VAX_R0_REGNUM, &addr);
@ -211,11 +211,11 @@ Index: gdb-7.7.90.20140613/gdb/vax-tdep.c
read_memory (addr, readbuf, len);
}
Index: gdb-7.7.90.20140613/gdb/defs.h
Index: gdb-7.10.50.20151022/gdb/defs.h
===================================================================
--- gdb-7.7.90.20140613.orig/gdb/defs.h 2014-06-13 22:14:49.732846391 +0200
+++ gdb-7.7.90.20140613/gdb/defs.h 2014-06-13 22:14:53.169850088 +0200
@@ -756,4 +756,6 @@ enum block_enum
--- gdb-7.10.50.20151022.orig/gdb/defs.h 2015-10-24 23:03:50.619898058 +0200
+++ gdb-7.10.50.20151022/gdb/defs.h 2015-10-24 23:03:52.105907788 +0200
@@ -690,4 +690,6 @@ enum block_enum
#include "utils.h"

View File

@ -96,11 +96,11 @@ Content-Type: text/x-patch
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=bitpos-wp.patch
Index: gdb-7.8.50.20141228/gdb/arm-linux-nat.c
Index: gdb-7.10.50.20151022/gdb/arm-linux-nat.c
===================================================================
--- gdb-7.8.50.20141228.orig/gdb/arm-linux-nat.c 2015-01-05 22:10:30.170726774 +0100
+++ gdb-7.8.50.20141228/gdb/arm-linux-nat.c 2015-01-05 22:10:35.571751324 +0100
@@ -1295,7 +1295,7 @@ arm_linux_stopped_by_watchpoint (struct
--- gdb-7.10.50.20151022.orig/gdb/arm-linux-nat.c 2015-10-24 23:13:24.617686121 +0200
+++ gdb-7.10.50.20151022/gdb/arm-linux-nat.c 2015-10-24 23:13:32.051735501 +0200
@@ -1209,7 +1209,7 @@ arm_linux_stopped_by_watchpoint (struct
static int
arm_linux_watchpoint_addr_within_range (struct target_ops *target,
CORE_ADDR addr,
@ -109,11 +109,11 @@ Index: gdb-7.8.50.20141228/gdb/arm-linux-nat.c
{
return start <= addr && start + length - 1 >= addr;
}
Index: gdb-7.8.50.20141228/gdb/ppc-linux-nat.c
Index: gdb-7.10.50.20151022/gdb/ppc-linux-nat.c
===================================================================
--- gdb-7.8.50.20141228.orig/gdb/ppc-linux-nat.c 2015-01-05 22:10:30.171726779 +0100
+++ gdb-7.8.50.20141228/gdb/ppc-linux-nat.c 2015-01-05 22:10:35.572751329 +0100
@@ -1860,11 +1860,11 @@ can_use_watchpoint_cond_accel (void)
--- gdb-7.10.50.20151022.orig/gdb/ppc-linux-nat.c 2015-10-24 23:13:24.617686121 +0200
+++ gdb-7.10.50.20151022/gdb/ppc-linux-nat.c 2015-10-24 23:13:32.051735501 +0200
@@ -1807,11 +1807,11 @@ can_use_watchpoint_cond_accel (void)
CONDITION_VALUE will hold the value which should be put in the
DVC register. */
static void
@ -128,7 +128,7 @@ Index: gdb-7.8.50.20141228/gdb/ppc-linux-nat.c
CORE_ADDR addr_end_data, addr_end_dvc;
/* The DVC register compares bytes within fixed-length windows which
@@ -1951,7 +1951,7 @@ num_memory_accesses (struct value *v)
@@ -1898,7 +1898,7 @@ num_memory_accesses (struct value *v)
of the constant. */
static int
check_condition (CORE_ADDR watch_addr, struct expression *cond,
@ -137,7 +137,7 @@ Index: gdb-7.8.50.20141228/gdb/ppc-linux-nat.c
{
int pc = 1, num_accesses_left, num_accesses_right;
struct value *left_val, *right_val, *left_chain, *right_chain;
@@ -2019,7 +2019,7 @@ check_condition (CORE_ADDR watch_addr, s
@@ -1966,7 +1966,7 @@ check_condition (CORE_ADDR watch_addr, s
true. */
static int
ppc_linux_can_accel_watchpoint_condition (struct target_ops *self,
@ -146,16 +146,16 @@ Index: gdb-7.8.50.20141228/gdb/ppc-linux-nat.c
struct expression *cond)
{
CORE_ADDR data_value;
@@ -2036,7 +2036,7 @@ ppc_linux_can_accel_watchpoint_condition
@@ -1983,7 +1983,7 @@ ppc_linux_can_accel_watchpoint_condition
static void
create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr,
- int len, int rw, struct expression *cond,
+ LONGEST len, int rw, struct expression *cond,
int insert)
- int len, enum target_hw_bp_type type,
+ LONGEST len, enum target_hw_bp_type type,
struct expression *cond, int insert)
{
if (len == 1
@@ -2302,7 +2302,7 @@ ppc_linux_stopped_by_watchpoint (struct
@@ -2249,7 +2249,7 @@ ppc_linux_stopped_by_watchpoint (struct
static int
ppc_linux_watchpoint_addr_within_range (struct target_ops *target,
CORE_ADDR addr,
@ -164,11 +164,11 @@ Index: gdb-7.8.50.20141228/gdb/ppc-linux-nat.c
{
int mask;
Index: gdb-7.8.50.20141228/gdb/procfs.c
Index: gdb-7.10.50.20151022/gdb/procfs.c
===================================================================
--- gdb-7.8.50.20141228.orig/gdb/procfs.c 2015-01-05 22:10:30.172726783 +0100
+++ gdb-7.8.50.20141228/gdb/procfs.c 2015-01-05 22:10:35.573751333 +0100
@@ -2426,7 +2426,7 @@ procfs_address_to_host_pointer (CORE_ADD
--- gdb-7.10.50.20151022.orig/gdb/procfs.c 2015-10-24 23:13:24.617686121 +0200
+++ gdb-7.10.50.20151022/gdb/procfs.c 2015-10-24 23:13:32.052735507 +0200
@@ -2427,7 +2427,7 @@ procfs_address_to_host_pointer (CORE_ADD
#endif
static int
@ -177,7 +177,7 @@ Index: gdb-7.8.50.20141228/gdb/procfs.c
{
#if !defined (PCWATCH) && !defined (PIOCSWATCH)
/* If neither or these is defined, we can't support watchpoints.
@@ -4705,7 +4705,7 @@ procfs_pid_to_str (struct target_ops *op
@@ -4706,7 +4706,7 @@ procfs_pid_to_str (struct target_ops *op
/* Insert a watchpoint. */
static int
@ -186,11 +186,11 @@ Index: gdb-7.8.50.20141228/gdb/procfs.c
int after)
{
#ifndef AIX5
Index: gdb-7.8.50.20141228/gdb/remote.c
Index: gdb-7.10.50.20151022/gdb/remote.c
===================================================================
--- gdb-7.8.50.20141228.orig/gdb/remote.c 2015-01-05 22:10:30.174726792 +0100
+++ gdb-7.8.50.20141228/gdb/remote.c 2015-01-05 22:10:35.574751338 +0100
@@ -8298,7 +8298,7 @@ remote_insert_watchpoint (struct target_
--- gdb-7.10.50.20151022.orig/gdb/remote.c 2015-10-24 23:13:24.617686121 +0200
+++ gdb-7.10.50.20151022/gdb/remote.c 2015-10-24 23:13:32.054735521 +0200
@@ -9085,7 +9085,7 @@ remote_insert_watchpoint (struct target_
p = strchr (rs->buf, '\0');
addr = remote_address_masked (addr);
p += hexnumstr (p, (ULONGEST) addr);
@ -199,7 +199,7 @@ Index: gdb-7.8.50.20141228/gdb/remote.c
putpkt (rs->buf);
getpkt (&rs->buf, &rs->buf_size, 0);
@@ -8318,7 +8318,7 @@ remote_insert_watchpoint (struct target_
@@ -9105,7 +9105,7 @@ remote_insert_watchpoint (struct target_
static int
remote_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr,
@ -208,7 +208,7 @@ Index: gdb-7.8.50.20141228/gdb/remote.c
{
CORE_ADDR diff = remote_address_masked (addr - start);
@@ -8348,7 +8348,7 @@ remote_remove_watchpoint (struct target_
@@ -9134,7 +9134,7 @@ remote_remove_watchpoint (struct target_
p = strchr (rs->buf, '\0');
addr = remote_address_masked (addr);
p += hexnumstr (p, (ULONGEST) addr);
@ -217,10 +217,10 @@ Index: gdb-7.8.50.20141228/gdb/remote.c
putpkt (rs->buf);
getpkt (&rs->buf, &rs->buf_size, 0);
Index: gdb-7.8.50.20141228/gdb/target.c
Index: gdb-7.10.50.20151022/gdb/target.c
===================================================================
--- gdb-7.8.50.20141228.orig/gdb/target.c 2015-01-05 22:10:30.175726797 +0100
+++ gdb-7.8.50.20141228/gdb/target.c 2015-01-05 22:10:35.575751342 +0100
--- gdb-7.10.50.20151022.orig/gdb/target.c 2015-10-24 23:13:24.617686121 +0200
+++ gdb-7.10.50.20151022/gdb/target.c 2015-10-24 23:13:32.054735521 +0200
@@ -51,7 +51,7 @@ static void generic_tls_error (void) ATT
static void default_terminal_info (struct target_ops *, const char *, int);
@ -230,7 +230,7 @@ Index: gdb-7.8.50.20141228/gdb/target.c
static int default_region_ok_for_hw_watchpoint (struct target_ops *,
CORE_ADDR, LONGEST);
@@ -2983,7 +2983,7 @@ default_region_ok_for_hw_watchpoint (str
@@ -3140,7 +3140,7 @@ default_region_ok_for_hw_watchpoint (str
static int
default_watchpoint_addr_within_range (struct target_ops *target,
CORE_ADDR addr,
@ -239,11 +239,11 @@ Index: gdb-7.8.50.20141228/gdb/target.c
{
return addr >= start && addr < start + length;
}
Index: gdb-7.8.50.20141228/gdb/target.h
Index: gdb-7.10.50.20151022/gdb/target.h
===================================================================
--- gdb-7.8.50.20141228.orig/gdb/target.h 2015-01-05 22:10:30.176726802 +0100
+++ gdb-7.8.50.20141228/gdb/target.h 2015-01-05 22:10:35.575751342 +0100
@@ -483,7 +483,7 @@ struct target_ops
--- gdb-7.10.50.20151022.orig/gdb/target.h 2015-10-24 23:13:24.617686121 +0200
+++ gdb-7.10.50.20151022/gdb/target.h 2015-10-24 23:13:32.055735527 +0200
@@ -543,7 +543,7 @@ struct target_ops
int (*to_stopped_data_address) (struct target_ops *, CORE_ADDR *)
TARGET_DEFAULT_RETURN (0);
int (*to_watchpoint_addr_within_range) (struct target_ops *,
@ -252,7 +252,7 @@ Index: gdb-7.8.50.20141228/gdb/target.h
TARGET_DEFAULT_FUNC (default_watchpoint_addr_within_range);
/* Documentation of this routine is provided with the corresponding
@@ -493,7 +493,7 @@ struct target_ops
@@ -553,7 +553,7 @@ struct target_ops
TARGET_DEFAULT_FUNC (default_region_ok_for_hw_watchpoint);
int (*to_can_accel_watchpoint_condition) (struct target_ops *,
@ -261,80 +261,11 @@ Index: gdb-7.8.50.20141228/gdb/target.h
struct expression *)
TARGET_DEFAULT_RETURN (0);
int (*to_masked_watch_num_registers) (struct target_ops *,
Index: gdb-7.8.50.20141228/gdb/aarch64-linux-nat.c
Index: gdb-7.10.50.20151022/gdb/aarch64-linux-nat.c
===================================================================
--- gdb-7.8.50.20141228.orig/gdb/aarch64-linux-nat.c 2015-01-05 22:10:30.176726802 +0100
+++ gdb-7.8.50.20141228/gdb/aarch64-linux-nat.c 2015-01-05 22:10:35.575751342 +0100
@@ -424,14 +424,14 @@ aarch64_notify_debug_reg_change (const s
static void
aarch64_show_debug_reg_state (struct aarch64_debug_reg_state *state,
const char *func, CORE_ADDR addr,
- int len, int type)
+ LONGEST len, int type)
{
int i;
fprintf_unfiltered (gdb_stdlog, "%s", func);
if (addr || len)
- fprintf_unfiltered (gdb_stdlog, " (addr=0x%08lx, len=%d, type=%s)",
- (unsigned long) addr, len,
+ fprintf_unfiltered (gdb_stdlog, " (addr=0x%08lx, len=%s, type=%s)",
+ (unsigned long) addr, plongest (len),
type == hw_write ? "hw-write-watchpoint"
: (type == hw_read ? "hw-read-watchpoint"
: (type == hw_access ? "hw-access-watchpoint"
@@ -851,9 +851,10 @@ aarch64_linux_read_description (struct t
gdbserver/linux-aarch64-low.c for more information. */
static void
-aarch64_align_watchpoint (CORE_ADDR addr, int len, CORE_ADDR *aligned_addr_p,
+aarch64_align_watchpoint (CORE_ADDR addr, LONGEST len,
+ CORE_ADDR *aligned_addr_p,
int *aligned_len_p, CORE_ADDR *next_addr_p,
- int *next_len_p)
+ LONGEST *next_len_p)
{
int aligned_len;
unsigned int offset;
@@ -1020,7 +1021,7 @@ aarch64_point_encode_ctrl_reg (int type,
Return 0 for any non-compliant ADDR and/or LEN; return 1 otherwise. */
static int
-aarch64_point_is_aligned (int is_watchpoint, CORE_ADDR addr, int len)
+aarch64_point_is_aligned (int is_watchpoint, CORE_ADDR addr, LONGEST len)
{
unsigned int alignment = is_watchpoint ? AARCH64_HWP_ALIGNMENT
: AARCH64_HBP_ALIGNMENT;
@@ -1272,7 +1273,7 @@ aarch64_handle_aligned_watchpoint (int t
Return 0 if succeed. */
static int
-aarch64_handle_unaligned_watchpoint (int type, CORE_ADDR addr, int len,
+aarch64_handle_unaligned_watchpoint (int type, CORE_ADDR addr, LONGEST len,
int is_insert)
{
struct aarch64_debug_reg_state *state
@@ -1297,8 +1298,8 @@ aarch64_handle_unaligned_watchpoint (int
fprintf_unfiltered (gdb_stdlog,
"handle_unaligned_watchpoint: is_insert: %d\n"
" aligned_addr: 0x%08lx, aligned_len: %d\n"
-" next_addr: 0x%08lx, next_len: %d\n",
- is_insert, aligned_addr, aligned_len, addr, len);
+" next_addr: 0x%08lx, next_len: %s\n",
+ is_insert, aligned_addr, aligned_len, addr, plongest (len));
if (ret != 0)
return ret;
@@ -1310,7 +1311,7 @@ aarch64_handle_unaligned_watchpoint (int
/* Implements insertion and removal of a single watchpoint. */
static int
-aarch64_handle_watchpoint (int type, CORE_ADDR addr, int len, int is_insert)
+aarch64_handle_watchpoint (int type, CORE_ADDR addr, LONGEST len, int is_insert)
{
if (aarch64_point_is_aligned (1 /* is_watchpoint */ , addr, len))
return aarch64_handle_aligned_watchpoint (type, addr, len, is_insert);
@@ -1479,7 +1480,7 @@ aarch64_linux_stopped_by_watchpoint (str
--- gdb-7.10.50.20151022.orig/gdb/aarch64-linux-nat.c 2015-10-24 23:13:24.617686121 +0200
+++ gdb-7.10.50.20151022/gdb/aarch64-linux-nat.c 2015-10-24 23:13:32.055735527 +0200
@@ -795,7 +795,7 @@ aarch64_linux_stopped_by_watchpoint (str
static int
aarch64_linux_watchpoint_addr_within_range (struct target_ops *target,
CORE_ADDR addr,
@ -343,11 +274,11 @@ Index: gdb-7.8.50.20141228/gdb/aarch64-linux-nat.c
{
return start <= addr && start + length - 1 >= addr;
}
Index: gdb-7.8.50.20141228/gdb/target-delegates.c
Index: gdb-7.10.50.20151022/gdb/target-delegates.c
===================================================================
--- gdb-7.8.50.20141228.orig/gdb/target-delegates.c 2015-01-05 22:10:30.177726806 +0100
+++ gdb-7.8.50.20141228/gdb/target-delegates.c 2015-01-05 22:12:11.071185408 +0100
@@ -607,14 +607,14 @@ debug_stopped_data_address (struct targe
--- gdb-7.10.50.20151022.orig/gdb/target-delegates.c 2015-10-24 23:13:24.617686121 +0200
+++ gdb-7.10.50.20151022/gdb/target-delegates.c 2015-10-24 23:13:32.055735527 +0200
@@ -709,14 +709,14 @@ debug_stopped_data_address (struct targe
}
static int
@ -364,7 +295,7 @@ Index: gdb-7.8.50.20141228/gdb/target-delegates.c
{
int result;
fprintf_unfiltered (gdb_stdlog, "-> %s->to_watchpoint_addr_within_range (...)\n", debug_target.to_shortname);
@@ -626,7 +626,7 @@ debug_watchpoint_addr_within_range (stru
@@ -728,7 +728,7 @@ debug_watchpoint_addr_within_range (stru
fputs_unfiltered (", ", gdb_stdlog);
target_debug_print_CORE_ADDR (arg2);
fputs_unfiltered (", ", gdb_stdlog);
@ -373,7 +304,7 @@ Index: gdb-7.8.50.20141228/gdb/target-delegates.c
fputs_unfiltered (") = ", gdb_stdlog);
target_debug_print_int (result);
fputs_unfiltered ("\n", gdb_stdlog);
@@ -659,20 +659,20 @@ debug_region_ok_for_hw_watchpoint (struc
@@ -761,20 +761,20 @@ debug_region_ok_for_hw_watchpoint (struc
}
static int
@ -397,7 +328,7 @@ Index: gdb-7.8.50.20141228/gdb/target-delegates.c
{
int result;
fprintf_unfiltered (gdb_stdlog, "-> %s->to_can_accel_watchpoint_condition (...)\n", debug_target.to_shortname);
@@ -682,7 +682,7 @@ debug_can_accel_watchpoint_condition (st
@@ -784,7 +784,7 @@ debug_can_accel_watchpoint_condition (st
fputs_unfiltered (", ", gdb_stdlog);
target_debug_print_CORE_ADDR (arg1);
fputs_unfiltered (", ", gdb_stdlog);
@ -406,3 +337,77 @@ Index: gdb-7.8.50.20141228/gdb/target-delegates.c
fputs_unfiltered (", ", gdb_stdlog);
target_debug_print_int (arg3);
fputs_unfiltered (", ", gdb_stdlog);
Index: gdb-7.10.50.20151022/gdb/nat/aarch64-linux-hw-point.c
===================================================================
--- gdb-7.10.50.20151022.orig/gdb/nat/aarch64-linux-hw-point.c 2015-10-22 03:48:33.000000000 +0200
+++ gdb-7.10.50.20151022/gdb/nat/aarch64-linux-hw-point.c 2015-10-24 23:12:29.927322845 +0200
@@ -111,7 +111,7 @@ aarch64_point_encode_ctrl_reg (enum targ
Return 0 for any non-compliant ADDR and/or LEN; return 1 otherwise. */
static int
-aarch64_point_is_aligned (int is_watchpoint, CORE_ADDR addr, int len)
+aarch64_point_is_aligned (int is_watchpoint, CORE_ADDR addr, LONGEST len)
{
unsigned int alignment = 0;
@@ -180,9 +180,10 @@ aarch64_point_is_aligned (int is_watchpo
limitations can be largely relaxed with some further work. */
static void
-aarch64_align_watchpoint (CORE_ADDR addr, int len, CORE_ADDR *aligned_addr_p,
+aarch64_align_watchpoint (CORE_ADDR addr, LONGEST len,
+ CORE_ADDR *aligned_addr_p,
int *aligned_len_p, CORE_ADDR *next_addr_p,
- int *next_len_p)
+ LONGEST *next_len_p)
{
int aligned_len;
unsigned int offset;
@@ -494,7 +495,7 @@ aarch64_handle_aligned_watchpoint (enum
static int
aarch64_handle_unaligned_watchpoint (enum target_hw_bp_type type,
- CORE_ADDR addr, int len, int is_insert,
+ CORE_ADDR addr, LONGEST len, int is_insert,
struct aarch64_debug_reg_state *state)
{
while (len > 0)
@@ -517,9 +518,9 @@ aarch64_handle_unaligned_watchpoint (enu
" "
"aligned_addr: %s, aligned_len: %d\n"
" "
- "next_addr: %s, next_len: %d\n",
+ "next_addr: %s, next_len: %s\n",
is_insert, core_addr_to_string_nz (aligned_addr),
- aligned_len, core_addr_to_string_nz (addr), len);
+ aligned_len, core_addr_to_string_nz (addr), plongest (len));
if (ret != 0)
return ret;
@@ -530,7 +531,7 @@ aarch64_handle_unaligned_watchpoint (enu
int
aarch64_handle_watchpoint (enum target_hw_bp_type type, CORE_ADDR addr,
- int len, int is_insert,
+ LONGEST len, int is_insert,
struct aarch64_debug_reg_state *state)
{
if (aarch64_point_is_aligned (1 /* is_watchpoint */ , addr, len))
@@ -581,14 +582,14 @@ aarch64_linux_set_debug_regs (const stru
void
aarch64_show_debug_reg_state (struct aarch64_debug_reg_state *state,
const char *func, CORE_ADDR addr,
- int len, enum target_hw_bp_type type)
+ LONGEST len, enum target_hw_bp_type type)
{
int i;
debug_printf ("%s", func);
if (addr || len)
- debug_printf (" (addr=0x%08lx, len=%d, type=%s)",
- (unsigned long) addr, len,
+ debug_printf (" (addr=0x%08lx, len=%s, type=%s)",
+ (unsigned long) addr, plongest (len),
type == hw_write ? "hw-write-watchpoint"
: (type == hw_read ? "hw-read-watchpoint"
: (type == hw_access ? "hw-access-watchpoint"

View File

@ -137,11 +137,11 @@ Content-Type: text/x-patch
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=bitpos-tdep.patch
Index: gdb-7.9.50.20150520/gdb/alpha-tdep.c
Index: gdb-7.10.50.20151022/gdb/alpha-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/alpha-tdep.c 2015-05-31 17:15:01.056868035 +0200
+++ gdb-7.9.50.20150520/gdb/alpha-tdep.c 2015-05-31 17:15:03.419882846 +0200
@@ -298,18 +298,18 @@ alpha_push_dummy_call (struct gdbarch *g
--- gdb-7.10.50.20151022.orig/gdb/alpha-tdep.c 2015-10-24 23:14:17.792039327 +0200
+++ gdb-7.10.50.20151022/gdb/alpha-tdep.c 2015-10-24 23:15:07.615370274 +0200
@@ -299,17 +299,17 @@ alpha_push_dummy_call (struct gdbarch *g
{
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int i;
@ -155,8 +155,7 @@ Index: gdb-7.9.50.20150520/gdb/alpha-tdep.c
+ ssize_t len;
+ ssize_t offset;
};
struct alpha_arg *alpha_args
= (struct alpha_arg *) alloca (nargs * sizeof (struct alpha_arg));
struct alpha_arg *alpha_args = XALLOCAVEC (struct alpha_arg, nargs);
struct alpha_arg *m_arg;
gdb_byte arg_reg_buffer[ALPHA_REGISTER_SIZE * ALPHA_NUM_ARG_REGS];
- int required_arg_regs;
@ -184,10 +183,10 @@ Index: gdb-7.9.50.20150520/gdb/alpha-tdep.c
memcpy (arg_reg_buffer + offset, contents, tlen);
offset += tlen;
contents += tlen;
Index: gdb-7.9.50.20150520/gdb/amd64-tdep.c
Index: gdb-7.10.50.20151022/gdb/amd64-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/amd64-tdep.c 2015-05-31 17:15:01.058868047 +0200
+++ gdb-7.9.50.20150520/gdb/amd64-tdep.c 2015-05-31 17:15:40.253113722 +0200
--- gdb-7.10.50.20151022.orig/gdb/amd64-tdep.c 2015-10-24 23:14:17.793039333 +0200
+++ gdb-7.10.50.20151022/gdb/amd64-tdep.c 2015-10-24 23:14:20.935060204 +0200
@@ -701,7 +701,7 @@ amd64_return_value (struct gdbarch *gdba
gdb_byte *readbuf, const gdb_byte *writebuf)
{
@ -199,7 +198,7 @@ Index: gdb-7.9.50.20150520/gdb/amd64-tdep.c
int integer_reg = 0;
@@ -852,8 +852,8 @@ amd64_push_arguments (struct regcache *r
};
struct value **stack_args = alloca (nargs * sizeof (struct value *));
struct value **stack_args = XALLOCAVEC (struct value *, nargs);
int num_stack_args = 0;
- int num_elements = 0;
- int element = 0;
@ -217,10 +216,10 @@ Index: gdb-7.9.50.20150520/gdb/amd64-tdep.c
enum amd64_reg_class theclass[2];
int needed_integer_regs = 0;
int needed_sse_regs = 0;
Index: gdb-7.9.50.20150520/gdb/amd64-windows-tdep.c
Index: gdb-7.10.50.20151022/gdb/amd64-windows-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/amd64-windows-tdep.c 2015-05-31 17:15:01.059868054 +0200
+++ gdb-7.9.50.20150520/gdb/amd64-windows-tdep.c 2015-05-31 17:15:03.421882859 +0200
--- gdb-7.10.50.20151022.orig/gdb/amd64-windows-tdep.c 2015-10-24 23:14:17.794039340 +0200
+++ gdb-7.10.50.20151022/gdb/amd64-windows-tdep.c 2015-10-24 23:14:20.935060204 +0200
@@ -288,7 +288,7 @@ amd64_windows_return_value (struct gdbar
struct type *type, struct regcache *regcache,
gdb_byte *readbuf, const gdb_byte *writebuf)
@ -230,11 +229,11 @@ Index: gdb-7.9.50.20150520/gdb/amd64-windows-tdep.c
int regnum = -1;
/* See if our value is returned through a register. If it is, then
Index: gdb-7.9.50.20150520/gdb/arm-tdep.c
Index: gdb-7.10.50.20151022/gdb/arm-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/arm-tdep.c 2015-05-31 17:15:01.069868116 +0200
+++ gdb-7.9.50.20150520/gdb/arm-tdep.c 2015-05-31 17:15:03.425882884 +0200
@@ -3537,7 +3537,7 @@ arm_vfp_cprc_reg_char (enum arm_vfp_cprc
--- gdb-7.10.50.20151022.orig/gdb/arm-tdep.c 2015-10-24 23:14:17.800039380 +0200
+++ gdb-7.10.50.20151022/gdb/arm-tdep.c 2015-10-24 23:14:20.937060217 +0200
@@ -3531,7 +3531,7 @@ arm_vfp_cprc_reg_char (enum arm_vfp_cprc
array). Vector types are not currently supported, matching the
generic AAPCS support. */
@ -243,7 +242,7 @@ Index: gdb-7.9.50.20150520/gdb/arm-tdep.c
arm_vfp_cprc_sub_candidate (struct type *t,
enum arm_vfp_cprc_base_type *base_type)
{
@@ -3600,7 +3600,7 @@ arm_vfp_cprc_sub_candidate (struct type
@@ -3594,7 +3594,7 @@ arm_vfp_cprc_sub_candidate (struct type
case TYPE_CODE_ARRAY:
{
@ -252,7 +251,7 @@ Index: gdb-7.9.50.20150520/gdb/arm-tdep.c
unsigned unitlen;
count = arm_vfp_cprc_sub_candidate (TYPE_TARGET_TYPE (t), base_type);
if (count == -1)
@@ -3620,13 +3620,15 @@ arm_vfp_cprc_sub_candidate (struct type
@@ -3614,13 +3614,15 @@ arm_vfp_cprc_sub_candidate (struct type
case TYPE_CODE_STRUCT:
{
@ -271,7 +270,7 @@ Index: gdb-7.9.50.20150520/gdb/arm-tdep.c
if (sub_count == -1)
return -1;
count += sub_count;
@@ -3646,13 +3648,15 @@ arm_vfp_cprc_sub_candidate (struct type
@@ -3640,13 +3642,15 @@ arm_vfp_cprc_sub_candidate (struct type
case TYPE_CODE_UNION:
{
@ -290,7 +289,7 @@ Index: gdb-7.9.50.20150520/gdb/arm-tdep.c
if (sub_count == -1)
return -1;
count = (count > sub_count ? count : sub_count);
@@ -3688,7 +3692,7 @@ arm_vfp_call_candidate (struct type *t,
@@ -3682,7 +3686,7 @@ arm_vfp_call_candidate (struct type *t,
int *count)
{
enum arm_vfp_cprc_base_type b = VFP_CPRC_UNKNOWN;
@ -299,7 +298,7 @@ Index: gdb-7.9.50.20150520/gdb/arm-tdep.c
if (c <= 0 || c > 4)
return 0;
*base_type = b;
@@ -3769,7 +3773,7 @@ arm_push_dummy_call (struct gdbarch *gdb
@@ -3763,7 +3767,7 @@ arm_push_dummy_call (struct gdbarch *gdb
for (argnum = 0; argnum < nargs; argnum++)
{
@ -308,28 +307,27 @@ Index: gdb-7.9.50.20150520/gdb/arm-tdep.c
struct type *arg_type;
struct type *target_type;
enum type_code typecode;
Index: gdb-7.9.50.20150520/gdb/avr-tdep.c
Index: gdb-7.10.50.20151022/gdb/avr-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/avr-tdep.c 2015-05-31 17:15:01.071868129 +0200
+++ gdb-7.9.50.20150520/gdb/avr-tdep.c 2015-05-31 17:15:03.425882884 +0200
@@ -1196,13 +1196,14 @@ avr_dummy_id (struct gdbarch *gdbarch, s
--- gdb-7.10.50.20151022.orig/gdb/avr-tdep.c 2015-10-24 23:14:17.801039386 +0200
+++ gdb-7.10.50.20151022/gdb/avr-tdep.c 2015-10-24 23:15:35.775557325 +0200
@@ -1196,13 +1196,13 @@ avr_dummy_id (struct gdbarch *gdbarch, s
struct stack_item
{
- int len;
+ ssize_t len;
struct stack_item *prev;
void *data;
gdb_byte *data;
};
static struct stack_item *
-push_stack_item (struct stack_item *prev, const bfd_byte *contents, int len)
+push_stack_item (struct stack_item *prev, const bfd_byte *contents,
+ ssize_t len)
+push_stack_item (struct stack_item *prev, const bfd_byte *contents, ssize_t len)
{
struct stack_item *si;
si = xmalloc (sizeof (struct stack_item));
@@ -1291,12 +1292,12 @@ avr_push_dummy_call (struct gdbarch *gdb
si = XNEW (struct stack_item);
@@ -1291,12 +1291,12 @@ avr_push_dummy_call (struct gdbarch *gdb
for (i = 0; i < nargs; i++)
{
@ -345,10 +343,10 @@ Index: gdb-7.9.50.20150520/gdb/avr-tdep.c
/* Calculate the potential last register needed. */
last_regnum = regnum - (len + (len & 1));
Index: gdb-7.9.50.20150520/gdb/bfin-tdep.c
Index: gdb-7.10.50.20151022/gdb/bfin-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/bfin-tdep.c 2015-05-31 17:15:01.071868129 +0200
+++ gdb-7.9.50.20150520/gdb/bfin-tdep.c 2015-05-31 17:15:03.426882890 +0200
--- gdb-7.10.50.20151022.orig/gdb/bfin-tdep.c 2015-10-24 23:14:17.802039393 +0200
+++ gdb-7.10.50.20151022/gdb/bfin-tdep.c 2015-10-24 23:14:20.937060217 +0200
@@ -504,7 +504,7 @@ bfin_push_dummy_call (struct gdbarch *gd
gdb_byte buf[4];
int i;
@ -367,10 +365,10 @@ Index: gdb-7.9.50.20150520/gdb/bfin-tdep.c
sp -= container_len;
write_memory (sp, value_contents_writeable (args[i]), container_len);
Index: gdb-7.9.50.20150520/gdb/cris-tdep.c
Index: gdb-7.10.50.20151022/gdb/cris-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/cris-tdep.c 2015-05-31 17:15:01.073868142 +0200
+++ gdb-7.9.50.20150520/gdb/cris-tdep.c 2015-05-31 17:15:03.427882897 +0200
--- gdb-7.10.50.20151022.orig/gdb/cris-tdep.c 2015-10-24 23:14:17.802039393 +0200
+++ gdb-7.10.50.20151022/gdb/cris-tdep.c 2015-10-24 23:15:58.902710945 +0200
@@ -663,13 +663,13 @@ static CORE_ADDR cris_unwind_sp (struct
struct stack_item
@ -378,16 +376,16 @@ Index: gdb-7.9.50.20150520/gdb/cris-tdep.c
- int len;
+ ssize_t len;
struct stack_item *prev;
void *data;
gdb_byte *data;
};
static struct stack_item *
-push_stack_item (struct stack_item *prev, const gdb_byte *contents, int len)
+push_stack_item (struct stack_item *prev, const gdb_byte *contents, ssize_t len)
{
struct stack_item *si;
si = xmalloc (sizeof (struct stack_item));
@@ -842,13 +842,13 @@ cris_push_dummy_call (struct gdbarch *gd
struct stack_item *si = XNEW (struct stack_item);
si->data = (gdb_byte *) xmalloc (len);
@@ -841,13 +841,13 @@ cris_push_dummy_call (struct gdbarch *gd
for (argnum = 0; argnum < nargs; argnum++)
{
@ -405,10 +403,10 @@ Index: gdb-7.9.50.20150520/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.9.50.20150520/gdb/h8300-tdep.c
Index: gdb-7.10.50.20151022/gdb/h8300-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/h8300-tdep.c 2015-05-31 17:15:01.074868148 +0200
+++ gdb-7.9.50.20150520/gdb/h8300-tdep.c 2015-05-31 17:15:03.427882897 +0200
--- gdb-7.10.50.20151022.orig/gdb/h8300-tdep.c 2015-10-24 23:14:17.803039400 +0200
+++ gdb-7.10.50.20151022/gdb/h8300-tdep.c 2015-10-24 23:16:33.653941777 +0200
@@ -639,7 +639,7 @@ h8300_push_dummy_call (struct gdbarch *g
int struct_return, CORE_ADDR struct_addr)
{
@ -423,13 +421,13 @@ Index: gdb-7.9.50.20150520/gdb/h8300-tdep.c
struct cleanup *back_to;
struct type *type = value_type (args[argument]);
- int len = TYPE_LENGTH (type);
char *contents = (char *) value_contents (args[argument]);
+ ssize_t len = TYPE_LENGTH (type);
char *contents = (char *) value_contents (args[argument]);
/* Pad the argument appropriately. */
- int padded_len = align_up (len, wordsize);
+ ssize_t padded_len = align_up (len, wordsize);
gdb_byte *padded = xmalloc (padded_len);
gdb_byte *padded = (gdb_byte *) xmalloc (padded_len);
back_to = make_cleanup (xfree, padded);
@@ -699,7 +699,7 @@ h8300_push_dummy_call (struct gdbarch *g
@ -441,11 +439,11 @@ Index: gdb-7.9.50.20150520/gdb/h8300-tdep.c
for (offset = 0; offset < padded_len; offset += wordsize)
{
Index: gdb-7.9.50.20150520/gdb/hppa-tdep.c
Index: gdb-7.10.50.20151022/gdb/hppa-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/hppa-tdep.c 2015-05-31 17:15:01.076868160 +0200
+++ gdb-7.9.50.20150520/gdb/hppa-tdep.c 2015-05-31 17:15:03.428882903 +0200
@@ -991,7 +991,7 @@ hppa64_push_dummy_call (struct gdbarch *
--- gdb-7.10.50.20151022.orig/gdb/hppa-tdep.c 2015-10-24 23:14:17.804039407 +0200
+++ gdb-7.10.50.20151022/gdb/hppa-tdep.c 2015-10-24 23:14:20.939060231 +0200
@@ -996,7 +996,7 @@ hppa64_push_dummy_call (struct gdbarch *
{
struct value *arg = args[i];
struct type *type = value_type (arg);
@ -454,7 +452,7 @@ Index: gdb-7.9.50.20150520/gdb/hppa-tdep.c
const bfd_byte *valbuf;
bfd_byte fptrbuf[8];
int regnum;
@@ -1186,7 +1186,7 @@ hppa64_return_value (struct gdbarch *gdb
@@ -1191,7 +1191,7 @@ hppa64_return_value (struct gdbarch *gdb
struct type *type, struct regcache *regcache,
gdb_byte *readbuf, const gdb_byte *writebuf)
{
@ -463,10 +461,10 @@ Index: gdb-7.9.50.20150520/gdb/hppa-tdep.c
int regnum, offset;
if (len > 16)
Index: gdb-7.9.50.20150520/gdb/i386-darwin-tdep.c
Index: gdb-7.10.50.20151022/gdb/i386-darwin-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/i386-darwin-tdep.c 2015-05-31 17:15:01.076868160 +0200
+++ gdb-7.9.50.20150520/gdb/i386-darwin-tdep.c 2015-05-31 17:15:03.428882903 +0200
--- gdb-7.10.50.20151022.orig/gdb/i386-darwin-tdep.c 2015-10-24 23:14:17.804039407 +0200
+++ gdb-7.10.50.20151022/gdb/i386-darwin-tdep.c 2015-10-24 23:14:20.939060231 +0200
@@ -163,7 +163,7 @@ i386_darwin_push_dummy_call (struct gdba
for (write_pass = 0; write_pass < 2; write_pass++)
@ -476,10 +474,10 @@ Index: gdb-7.9.50.20150520/gdb/i386-darwin-tdep.c
int num_m128 = 0;
if (struct_return)
Index: gdb-7.9.50.20150520/gdb/i386-tdep.c
Index: gdb-7.10.50.20151022/gdb/i386-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/i386-tdep.c 2015-05-31 17:15:01.082868198 +0200
+++ gdb-7.9.50.20150520/gdb/i386-tdep.c 2015-05-31 17:15:03.430882915 +0200
--- gdb-7.10.50.20151022.orig/gdb/i386-tdep.c 2015-10-24 23:14:17.807039426 +0200
+++ gdb-7.10.50.20151022/gdb/i386-tdep.c 2015-10-24 23:14:20.940060237 +0200
@@ -2651,7 +2651,7 @@ i386_push_dummy_call (struct gdbarch *gd
gdb_byte buf[4];
int i;
@ -543,10 +541,10 @@ Index: gdb-7.9.50.20150520/gdb/i386-tdep.c
if (i386_fp_regnum_p (get_frame_arch (frame), regnum))
{
Index: gdb-7.9.50.20150520/gdb/iq2000-tdep.c
Index: gdb-7.10.50.20151022/gdb/iq2000-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/iq2000-tdep.c 2015-05-31 17:15:01.083868204 +0200
+++ gdb-7.9.50.20150520/gdb/iq2000-tdep.c 2015-05-31 17:15:03.431882922 +0200
--- gdb-7.10.50.20151022.orig/gdb/iq2000-tdep.c 2015-10-24 23:14:17.808039433 +0200
+++ gdb-7.10.50.20151022/gdb/iq2000-tdep.c 2015-10-24 23:14:20.941060244 +0200
@@ -651,8 +651,9 @@ iq2000_push_dummy_call (struct gdbarch *
const bfd_byte *val;
bfd_byte buf[4];
@ -559,10 +557,10 @@ Index: gdb-7.9.50.20150520/gdb/iq2000-tdep.c
/* Used to copy struct arguments into the stack. */
CORE_ADDR struct_ptr;
Index: gdb-7.9.50.20150520/gdb/m32r-tdep.c
Index: gdb-7.10.50.20151022/gdb/m32r-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/m32r-tdep.c 2015-05-31 17:15:01.083868204 +0200
+++ gdb-7.9.50.20150520/gdb/m32r-tdep.c 2015-05-31 17:15:03.431882922 +0200
--- gdb-7.10.50.20151022.orig/gdb/m32r-tdep.c 2015-10-24 23:14:17.808039433 +0200
+++ gdb-7.10.50.20151022/gdb/m32r-tdep.c 2015-10-24 23:14:20.941060244 +0200
@@ -687,7 +687,7 @@ m32r_push_dummy_call (struct gdbarch *gd
CORE_ADDR regval;
gdb_byte *val;
@ -572,10 +570,10 @@ Index: gdb-7.9.50.20150520/gdb/m32r-tdep.c
/* First force sp to a 4-byte alignment. */
sp = sp & ~3;
Index: gdb-7.9.50.20150520/gdb/m68k-tdep.c
Index: gdb-7.10.50.20151022/gdb/m68k-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/m68k-tdep.c 2015-05-31 17:15:01.084868210 +0200
+++ gdb-7.9.50.20150520/gdb/m68k-tdep.c 2015-05-31 17:15:03.432882928 +0200
--- gdb-7.10.50.20151022.orig/gdb/m68k-tdep.c 2015-10-24 23:14:17.808039433 +0200
+++ gdb-7.10.50.20151022/gdb/m68k-tdep.c 2015-10-24 23:14:20.941060244 +0200
@@ -382,7 +382,7 @@ m68k_reg_struct_return_p (struct gdbarch
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
@ -598,10 +596,10 @@ Index: gdb-7.9.50.20150520/gdb/m68k-tdep.c
/* Non-scalars bigger than 4 bytes are left aligned, others are
right aligned. */
Index: gdb-7.9.50.20150520/gdb/m88k-tdep.c
Index: gdb-7.10.50.20151022/gdb/m88k-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/m88k-tdep.c 2015-05-31 17:15:01.085868217 +0200
+++ gdb-7.9.50.20150520/gdb/m88k-tdep.c 2015-05-31 17:15:03.432882928 +0200
--- gdb-7.10.50.20151022.orig/gdb/m88k-tdep.c 2015-10-24 23:14:17.809039440 +0200
+++ gdb-7.10.50.20151022/gdb/m88k-tdep.c 2015-10-24 23:14:20.942060250 +0200
@@ -257,13 +257,13 @@ m88k_store_arguments (struct regcache *r
{
struct gdbarch *gdbarch = get_regcache_arch (regcache);
@ -629,11 +627,11 @@ Index: gdb-7.9.50.20150520/gdb/m88k-tdep.c
if (m88k_in_register_p (type))
{
Index: gdb-7.9.50.20150520/gdb/mep-tdep.c
Index: gdb-7.10.50.20151022/gdb/mep-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/mep-tdep.c 2015-05-31 17:15:01.086868223 +0200
+++ gdb-7.9.50.20150520/gdb/mep-tdep.c 2015-05-31 17:15:03.433882934 +0200
@@ -2269,7 +2269,7 @@ push_large_arguments (CORE_ADDR sp, int
--- gdb-7.10.50.20151022.orig/gdb/mep-tdep.c 2015-10-24 23:14:17.809039440 +0200
+++ gdb-7.10.50.20151022/gdb/mep-tdep.c 2015-10-24 23:14:20.942060250 +0200
@@ -2270,7 +2270,7 @@ push_large_arguments (CORE_ADDR sp, int
for (i = 0; i < argc; i++)
{
@ -642,10 +640,10 @@ Index: gdb-7.9.50.20150520/gdb/mep-tdep.c
if (arg_len > MEP_GPR_SIZE)
{
Index: gdb-7.9.50.20150520/gdb/mips-tdep.c
Index: gdb-7.10.50.20151022/gdb/mips-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/mips-tdep.c 2015-05-31 17:15:01.094868273 +0200
+++ gdb-7.9.50.20150520/gdb/mips-tdep.c 2015-05-31 17:15:03.435882947 +0200
--- gdb-7.10.50.20151022.orig/gdb/mips-tdep.c 2015-10-24 23:14:17.814039473 +0200
+++ gdb-7.10.50.20151022/gdb/mips-tdep.c 2015-10-24 23:14:20.943060257 +0200
@@ -455,7 +455,7 @@ static void
mips_xfer_register (struct gdbarch *gdbarch, struct regcache *regcache,
int reg_num, int length,
@ -666,7 +664,7 @@ Index: gdb-7.9.50.20150520/gdb/mips-tdep.c
if (mips_debug && out != NULL)
{
int i;
@@ -4551,13 +4551,13 @@ mips_eabi_push_dummy_call (struct gdbarc
@@ -4554,13 +4554,13 @@ mips_eabi_push_dummy_call (struct gdbarc
gdb_byte valbuf[MAX_REGISTER_SIZE];
struct value *arg = args[argnum];
struct type *arg_type = check_typedef (value_type (arg));
@ -683,7 +681,7 @@ Index: gdb-7.9.50.20150520/gdb/mips-tdep.c
/* The EABI passes structures that do not fit in a register by
reference. */
@@ -4826,7 +4826,7 @@ mips_eabi_return_value (struct gdbarch *
@@ -4829,7 +4829,7 @@ mips_eabi_return_value (struct gdbarch *
static int
mips_n32n64_fp_arg_chunk_p (struct gdbarch *gdbarch, struct type *arg_type,
@ -692,7 +690,7 @@ Index: gdb-7.9.50.20150520/gdb/mips-tdep.c
{
int i;
@@ -4841,7 +4841,7 @@ mips_n32n64_fp_arg_chunk_p (struct gdbar
@@ -4844,7 +4844,7 @@ mips_n32n64_fp_arg_chunk_p (struct gdbar
for (i = 0; i < TYPE_NFIELDS (arg_type); i++)
{
@ -701,7 +699,7 @@ Index: gdb-7.9.50.20150520/gdb/mips-tdep.c
struct type *field_type;
/* We're only looking at normal fields. */
@@ -4883,7 +4883,7 @@ mips_n32n64_push_dummy_call (struct gdba
@@ -4886,7 +4886,7 @@ mips_n32n64_push_dummy_call (struct gdba
int argreg;
int float_argreg;
int argnum;
@ -710,7 +708,7 @@ Index: gdb-7.9.50.20150520/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);
@@ -5234,11 +5234,11 @@ mips_n32n64_return_value (struct gdbarch
@@ -5237,11 +5237,11 @@ mips_n32n64_return_value (struct gdbarch
: MIPS_V0_REGNUM);
field < TYPE_NFIELDS (type); field++, regnum += 2)
{
@ -726,7 +724,7 @@ Index: gdb-7.9.50.20150520/gdb/mips-tdep.c
if (TYPE_LENGTH (TYPE_FIELD_TYPE (type, field)) == 16)
{
/* A 16-byte long double field goes in two consecutive
@@ -5280,8 +5280,8 @@ mips_n32n64_return_value (struct gdbarch
@@ -5283,8 +5283,8 @@ mips_n32n64_return_value (struct gdbarch
if (offset + xfer > TYPE_LENGTH (type))
xfer = TYPE_LENGTH (type) - offset;
if (mips_debug)
@ -737,7 +735,7 @@ Index: gdb-7.9.50.20150520/gdb/mips-tdep.c
mips_xfer_register (gdbarch, regcache,
gdbarch_num_regs (gdbarch) + regnum,
xfer, BFD_ENDIAN_UNKNOWN, readbuf, writebuf,
@@ -5339,7 +5339,7 @@ mips_o32_push_dummy_call (struct gdbarch
@@ -5342,7 +5342,7 @@ mips_o32_push_dummy_call (struct gdbarch
int argreg;
int float_argreg;
int argnum;
@ -746,7 +744,7 @@ Index: gdb-7.9.50.20150520/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);
@@ -5403,13 +5403,13 @@ mips_o32_push_dummy_call (struct gdbarch
@@ -5406,13 +5406,13 @@ mips_o32_push_dummy_call (struct gdbarch
const gdb_byte *val;
struct value *arg = args[argnum];
struct type *arg_type = check_typedef (value_type (arg));
@ -763,7 +761,7 @@ Index: gdb-7.9.50.20150520/gdb/mips-tdep.c
val = value_contents (arg);
@@ -5867,8 +5867,8 @@ mips_o64_push_dummy_call (struct gdbarch
@@ -5870,8 +5870,8 @@ mips_o64_push_dummy_call (struct gdbarch
int argreg;
int float_argreg;
int argnum;
@ -774,7 +772,7 @@ Index: gdb-7.9.50.20150520/gdb/mips-tdep.c
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
CORE_ADDR func_addr = find_function_addr (function, NULL);
@@ -5928,13 +5928,13 @@ mips_o64_push_dummy_call (struct gdbarch
@@ -5931,13 +5931,13 @@ mips_o64_push_dummy_call (struct gdbarch
const gdb_byte *val;
struct value *arg = args[argnum];
struct type *arg_type = check_typedef (value_type (arg));
@ -791,11 +789,11 @@ Index: gdb-7.9.50.20150520/gdb/mips-tdep.c
val = value_contents (arg);
Index: gdb-7.9.50.20150520/gdb/mn10300-tdep.c
Index: gdb-7.10.50.20151022/gdb/mn10300-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/mn10300-tdep.c 2015-05-31 17:15:01.095868279 +0200
+++ gdb-7.9.50.20150520/gdb/mn10300-tdep.c 2015-05-31 17:15:03.435882947 +0200
@@ -1225,7 +1225,7 @@ mn10300_push_dummy_call (struct gdbarch
--- gdb-7.10.50.20151022.orig/gdb/mn10300-tdep.c 2015-10-24 23:14:17.815039480 +0200
+++ gdb-7.10.50.20151022/gdb/mn10300-tdep.c 2015-10-24 23:14:20.943060257 +0200
@@ -1227,7 +1227,7 @@ mn10300_push_dummy_call (struct gdbarch
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
const int push_size = register_size (gdbarch, E_PC_REGNUM);
int regs_used;
@ -804,10 +802,10 @@ Index: gdb-7.9.50.20150520/gdb/mn10300-tdep.c
int stack_offset = 0;
int argnum;
const gdb_byte *val;
Index: gdb-7.9.50.20150520/gdb/mt-tdep.c
Index: gdb-7.10.50.20151022/gdb/mt-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/mt-tdep.c 2015-05-31 17:15:01.096868286 +0200
+++ gdb-7.9.50.20150520/gdb/mt-tdep.c 2015-05-31 17:15:03.436882953 +0200
--- gdb-7.10.50.20151022.orig/gdb/mt-tdep.c 2015-10-24 23:14:17.815039480 +0200
+++ gdb-7.10.50.20151022/gdb/mt-tdep.c 2015-10-24 23:14:20.944060264 +0200
@@ -781,9 +781,9 @@ mt_push_dummy_call (struct gdbarch *gdba
gdb_byte buf[MT_MAX_STRUCT_SIZE];
int argreg = MT_1ST_ARGREG;
@ -820,10 +818,10 @@ Index: gdb-7.9.50.20150520/gdb/mt-tdep.c
int i, j;
/* First handle however many args we can fit into MT_1ST_ARGREG thru
Index: gdb-7.9.50.20150520/gdb/ppc-sysv-tdep.c
Index: gdb-7.10.50.20151022/gdb/ppc-sysv-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/ppc-sysv-tdep.c 2015-05-31 17:15:01.097868292 +0200
+++ gdb-7.9.50.20150520/gdb/ppc-sysv-tdep.c 2015-05-31 17:15:03.436882953 +0200
--- gdb-7.10.50.20151022.orig/gdb/ppc-sysv-tdep.c 2015-10-24 23:14:17.816039486 +0200
+++ gdb-7.10.50.20151022/gdb/ppc-sysv-tdep.c 2015-10-24 23:14:20.944060264 +0200
@@ -66,7 +66,7 @@ ppc_sysv_abi_push_dummy_call (struct gdb
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int opencl_abi = ppc_sysv_use_opencl_abi (value_type (function));
@ -868,11 +866,11 @@ Index: gdb-7.9.50.20150520/gdb/ppc-sysv-tdep.c
/* Enforce alignment of stack location, if requested. */
if (align > tdep->wordsize)
Index: gdb-7.9.50.20150520/gdb/rl78-tdep.c
Index: gdb-7.10.50.20151022/gdb/rl78-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/rl78-tdep.c 2015-05-31 17:15:01.097868292 +0200
+++ gdb-7.9.50.20150520/gdb/rl78-tdep.c 2015-05-31 17:15:03.437882959 +0200
@@ -1333,8 +1333,8 @@ rl78_push_dummy_call (struct gdbarch *gd
--- gdb-7.10.50.20151022.orig/gdb/rl78-tdep.c 2015-10-24 23:14:17.816039486 +0200
+++ gdb-7.10.50.20151022/gdb/rl78-tdep.c 2015-10-24 23:14:20.944060264 +0200
@@ -1338,8 +1338,8 @@ rl78_push_dummy_call (struct gdbarch *gd
for (i = nargs - 1; i >= 0; i--)
{
struct type *value_type = value_enclosing_type (args[i]);
@ -883,10 +881,10 @@ Index: gdb-7.9.50.20150520/gdb/rl78-tdep.c
sp -= container_len;
write_memory (rl78_make_data_address (sp),
Index: gdb-7.9.50.20150520/gdb/rs6000-aix-tdep.c
Index: gdb-7.10.50.20151022/gdb/rs6000-aix-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/rs6000-aix-tdep.c 2015-05-31 17:15:01.098868298 +0200
+++ gdb-7.9.50.20150520/gdb/rs6000-aix-tdep.c 2015-05-31 17:15:03.437882959 +0200
--- gdb-7.10.50.20151022.orig/gdb/rs6000-aix-tdep.c 2015-10-24 23:14:17.816039486 +0200
+++ gdb-7.10.50.20151022/gdb/rs6000-aix-tdep.c 2015-10-24 23:14:20.944060264 +0200
@@ -186,9 +186,9 @@ rs6000_push_dummy_call (struct gdbarch *
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
@ -908,11 +906,11 @@ Index: gdb-7.9.50.20150520/gdb/rs6000-aix-tdep.c
if (argbytes)
{
Index: gdb-7.9.50.20150520/gdb/s390-linux-tdep.c
Index: gdb-7.10.50.20151022/gdb/s390-linux-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/s390-linux-tdep.c 2015-05-31 17:15:01.099868304 +0200
+++ gdb-7.9.50.20150520/gdb/s390-linux-tdep.c 2015-05-31 17:16:13.285320769 +0200
@@ -2463,7 +2463,7 @@ s390_function_arg_vector (struct type *t
--- gdb-7.10.50.20151022.orig/gdb/s390-linux-tdep.c 2015-10-24 23:14:17.817039493 +0200
+++ gdb-7.10.50.20151022/gdb/s390-linux-tdep.c 2015-10-24 23:14:20.945060270 +0200
@@ -2571,7 +2571,7 @@ s390_function_arg_vector (struct type *t
/* Determine whether N is a power of two. */
static int
@ -921,7 +919,7 @@ Index: gdb-7.9.50.20150520/gdb/s390-linux-tdep.c
{
return n && ((n & (n - 1)) == 0);
}
@@ -2520,7 +2520,7 @@ s390_handle_arg (struct s390_arg_state *
@@ -2628,7 +2628,7 @@ s390_handle_arg (struct s390_arg_state *
enum bfd_endian byte_order, int is_unnamed)
{
struct type *type = check_typedef (value_type (arg));
@ -930,10 +928,10 @@ Index: gdb-7.9.50.20150520/gdb/s390-linux-tdep.c
int write_mode = as->regcache != NULL;
if (s390_function_arg_float (type))
Index: gdb-7.9.50.20150520/gdb/score-tdep.c
Index: gdb-7.10.50.20151022/gdb/score-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/score-tdep.c 2015-05-31 17:15:01.100868311 +0200
+++ gdb-7.9.50.20150520/gdb/score-tdep.c 2015-05-31 17:15:03.439882972 +0200
--- gdb-7.10.50.20151022.orig/gdb/score-tdep.c 2015-10-24 23:14:17.817039493 +0200
+++ gdb-7.10.50.20151022/gdb/score-tdep.c 2015-10-24 23:14:20.945060270 +0200
@@ -514,7 +514,7 @@ score_push_dummy_call (struct gdbarch *g
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int argnum;
@ -943,10 +941,10 @@ Index: gdb-7.9.50.20150520/gdb/score-tdep.c
CORE_ADDR stack_offset = 0;
CORE_ADDR addr = 0;
Index: gdb-7.9.50.20150520/gdb/sh-tdep.c
Index: gdb-7.10.50.20151022/gdb/sh-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/sh-tdep.c 2015-05-31 17:15:01.101868317 +0200
+++ gdb-7.9.50.20150520/gdb/sh-tdep.c 2015-05-31 17:15:03.439882972 +0200
--- gdb-7.10.50.20151022.orig/gdb/sh-tdep.c 2015-10-24 23:14:17.818039499 +0200
+++ gdb-7.10.50.20151022/gdb/sh-tdep.c 2015-10-24 23:14:20.946060277 +0200
@@ -805,7 +805,7 @@ sh_skip_prologue (struct gdbarch *gdbarc
static int
sh_use_struct_convention (int renesas_abi, struct type *type)
@ -985,10 +983,10 @@ Index: gdb-7.9.50.20150520/gdb/sh-tdep.c
int pass_on_stack = 0;
int last_reg_arg = INT_MAX;
Index: gdb-7.9.50.20150520/gdb/sh64-tdep.c
Index: gdb-7.10.50.20151022/gdb/sh64-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/sh64-tdep.c 2015-05-31 17:15:01.102868323 +0200
+++ gdb-7.9.50.20150520/gdb/sh64-tdep.c 2015-05-31 17:15:03.440882978 +0200
--- gdb-7.10.50.20151022.orig/gdb/sh64-tdep.c 2015-10-24 23:14:17.819039506 +0200
+++ gdb-7.10.50.20151022/gdb/sh64-tdep.c 2015-10-24 23:14:20.946060277 +0200
@@ -1056,7 +1056,7 @@ sh64_push_dummy_call (struct gdbarch *gd
CORE_ADDR struct_addr)
{
@ -1007,10 +1005,10 @@ Index: gdb-7.9.50.20150520/gdb/sh64-tdep.c
int argreg_size;
int fp_args[12];
Index: gdb-7.9.50.20150520/gdb/sparc-tdep.c
Index: gdb-7.10.50.20151022/gdb/sparc-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/sparc-tdep.c 2015-05-31 17:15:01.103868329 +0200
+++ gdb-7.9.50.20150520/gdb/sparc-tdep.c 2015-05-31 17:15:03.441882984 +0200
--- gdb-7.10.50.20151022.orig/gdb/sparc-tdep.c 2015-10-24 23:14:17.819039506 +0200
+++ gdb-7.10.50.20151022/gdb/sparc-tdep.c 2015-10-24 23:14:20.946060277 +0200
@@ -525,7 +525,7 @@ sparc32_store_arguments (struct regcache
for (i = 0; i < nargs; i++)
{
@ -1020,10 +1018,10 @@ Index: gdb-7.9.50.20150520/gdb/sparc-tdep.c
if (sparc_structure_or_union_p (type)
|| (sparc_floating_p (type) && len == 16)
Index: gdb-7.9.50.20150520/gdb/sparc64-tdep.c
Index: gdb-7.10.50.20151022/gdb/sparc64-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/sparc64-tdep.c 2015-05-31 17:15:01.104868336 +0200
+++ gdb-7.9.50.20150520/gdb/sparc64-tdep.c 2015-05-31 17:15:03.441882984 +0200
--- gdb-7.10.50.20151022.orig/gdb/sparc64-tdep.c 2015-10-24 23:14:17.820039513 +0200
+++ gdb-7.10.50.20151022/gdb/sparc64-tdep.c 2015-10-24 23:14:20.947060284 +0200
@@ -636,7 +636,8 @@ sparc64_16_byte_align_p (struct type *ty
static void
@ -1079,11 +1077,11 @@ Index: gdb-7.9.50.20150520/gdb/sparc64-tdep.c
int regnum = -1;
gdb_byte buf[16];
Index: gdb-7.9.50.20150520/gdb/spu-tdep.c
Index: gdb-7.10.50.20151022/gdb/spu-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/spu-tdep.c 2015-05-31 17:15:01.105868342 +0200
+++ gdb-7.9.50.20150520/gdb/spu-tdep.c 2015-05-31 17:15:03.442882990 +0200
@@ -1430,7 +1430,7 @@ spu_push_dummy_call (struct gdbarch *gdb
--- gdb-7.10.50.20151022.orig/gdb/spu-tdep.c 2015-10-24 23:14:17.821039519 +0200
+++ gdb-7.10.50.20151022/gdb/spu-tdep.c 2015-10-24 23:14:20.947060284 +0200
@@ -1429,7 +1429,7 @@ spu_push_dummy_call (struct gdbarch *gdb
struct value *arg = args[i];
struct type *type = check_typedef (value_type (arg));
const gdb_byte *contents = value_contents (arg);
@ -1092,7 +1090,7 @@ Index: gdb-7.9.50.20150520/gdb/spu-tdep.c
/* If the argument doesn't wholly fit into registers, it and
all subsequent arguments go to the stack. */
@@ -1462,7 +1462,7 @@ spu_push_dummy_call (struct gdbarch *gdb
@@ -1461,7 +1461,7 @@ spu_push_dummy_call (struct gdbarch *gdb
{
struct value *arg = args[i];
struct type *type = check_typedef (value_type (arg));
@ -1101,10 +1099,10 @@ Index: gdb-7.9.50.20150520/gdb/spu-tdep.c
int preferred_slot;
if (spu_scalar_value_p (type))
Index: gdb-7.9.50.20150520/gdb/tic6x-tdep.c
Index: gdb-7.10.50.20151022/gdb/tic6x-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/tic6x-tdep.c 2015-05-31 17:15:01.106868348 +0200
+++ gdb-7.9.50.20150520/gdb/tic6x-tdep.c 2015-05-31 17:15:03.442882990 +0200
--- gdb-7.10.50.20151022.orig/gdb/tic6x-tdep.c 2015-10-24 23:14:17.821039519 +0200
+++ gdb-7.10.50.20151022/gdb/tic6x-tdep.c 2015-10-24 23:14:20.947060284 +0200
@@ -895,7 +895,7 @@ tic6x_push_dummy_call (struct gdbarch *g
int argreg = 0;
int argnum;
@ -1142,10 +1140,10 @@ Index: gdb-7.9.50.20150520/gdb/tic6x-tdep.c
addr = sp + stack_offset;
write_memory (addr, val, len);
Index: gdb-7.9.50.20150520/gdb/tilegx-tdep.c
Index: gdb-7.10.50.20151022/gdb/tilegx-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/tilegx-tdep.c 2015-05-31 17:15:01.107868355 +0200
+++ gdb-7.9.50.20150520/gdb/tilegx-tdep.c 2015-05-31 17:15:03.442882990 +0200
--- gdb-7.10.50.20151022.orig/gdb/tilegx-tdep.c 2015-10-24 23:14:17.822039526 +0200
+++ gdb-7.10.50.20151022/gdb/tilegx-tdep.c 2015-10-24 23:14:20.947060284 +0200
@@ -288,7 +288,7 @@ tilegx_push_dummy_call (struct gdbarch *
CORE_ADDR stack_dest = sp;
int argreg = TILEGX_R0_REGNUM;
@ -1155,10 +1153,10 @@ Index: gdb-7.9.50.20150520/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.9.50.20150520/gdb/v850-tdep.c
Index: gdb-7.10.50.20151022/gdb/v850-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/v850-tdep.c 2015-05-31 17:15:01.107868355 +0200
+++ gdb-7.9.50.20150520/gdb/v850-tdep.c 2015-05-31 17:15:03.443882997 +0200
--- gdb-7.10.50.20151022.orig/gdb/v850-tdep.c 2015-10-24 23:14:17.822039526 +0200
+++ gdb-7.10.50.20151022/gdb/v850-tdep.c 2015-10-24 23:14:20.948060290 +0200
@@ -1019,7 +1019,7 @@ v850_push_dummy_call (struct gdbarch *gd
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int argreg;
@ -1177,10 +1175,10 @@ Index: gdb-7.9.50.20150520/gdb/v850-tdep.c
gdb_byte *val;
gdb_byte valbuf[v850_reg_size];
Index: gdb-7.9.50.20150520/gdb/vax-tdep.c
Index: gdb-7.10.50.20151022/gdb/vax-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/vax-tdep.c 2015-05-31 17:15:01.108868361 +0200
+++ gdb-7.9.50.20150520/gdb/vax-tdep.c 2015-05-31 17:15:03.443882997 +0200
--- gdb-7.10.50.20151022.orig/gdb/vax-tdep.c 2015-10-24 23:14:17.822039526 +0200
+++ gdb-7.10.50.20151022/gdb/vax-tdep.c 2015-10-24 23:14:20.948060290 +0200
@@ -111,7 +111,7 @@ vax_store_arguments (struct regcache *re
struct gdbarch *gdbarch = get_regcache_arch (regcache);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
@ -1199,10 +1197,10 @@ Index: gdb-7.9.50.20150520/gdb/vax-tdep.c
sp -= (len + 3) & ~3;
count += (len + 3) / 4;
Index: gdb-7.9.50.20150520/gdb/xstormy16-tdep.c
Index: gdb-7.10.50.20151022/gdb/xstormy16-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/xstormy16-tdep.c 2015-05-31 17:15:01.108868361 +0200
+++ gdb-7.9.50.20150520/gdb/xstormy16-tdep.c 2015-05-31 17:15:03.443882997 +0200
--- gdb-7.10.50.20151022.orig/gdb/xstormy16-tdep.c 2015-10-24 23:14:17.822039526 +0200
+++ gdb-7.10.50.20151022/gdb/xstormy16-tdep.c 2015-10-24 23:14:20.948060290 +0200
@@ -233,8 +233,9 @@ xstormy16_push_dummy_call (struct gdbarc
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
CORE_ADDR stack_dest = sp;
@ -1215,11 +1213,11 @@ Index: gdb-7.9.50.20150520/gdb/xstormy16-tdep.c
const gdb_byte *val;
gdb_byte buf[xstormy16_pc_size];
Index: gdb-7.9.50.20150520/gdb/xtensa-tdep.c
Index: gdb-7.10.50.20151022/gdb/xtensa-tdep.c
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/xtensa-tdep.c 2015-05-31 17:15:01.110868373 +0200
+++ gdb-7.9.50.20150520/gdb/xtensa-tdep.c 2015-05-31 17:15:03.444883003 +0200
@@ -1646,8 +1646,7 @@ xtensa_store_return_value (struct type *
--- gdb-7.10.50.20151022.orig/gdb/xtensa-tdep.c 2015-10-24 23:14:17.824039539 +0200
+++ gdb-7.10.50.20151022/gdb/xtensa-tdep.c 2015-10-24 23:14:20.948060290 +0200
@@ -1640,8 +1640,7 @@ xtensa_store_return_value (struct type *
if (len > (callsize > 8 ? 8 : 16))
internal_error (__FILE__, __LINE__,
@ -1229,7 +1227,7 @@ Index: gdb-7.9.50.20150520/gdb/xtensa-tdep.c
areg = arreg_number (gdbarch,
gdbarch_tdep (gdbarch)->a0_base + 2 + callsize, wb);
@@ -1721,18 +1720,18 @@ xtensa_push_dummy_call (struct gdbarch *
@@ -1715,18 +1714,18 @@ xtensa_push_dummy_call (struct gdbarch *
{
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int i;
@ -1251,7 +1249,7 @@ Index: gdb-7.9.50.20150520/gdb/xtensa-tdep.c
int regno; /* regno if in register. */
} u;
};
@@ -1756,9 +1755,10 @@ xtensa_push_dummy_call (struct gdbarch *
@@ -1750,9 +1749,10 @@ xtensa_push_dummy_call (struct gdbarch *
{
struct value *arg = args[i];
struct type *arg_type = check_typedef (value_type (arg));
@ -1265,7 +1263,7 @@ Index: gdb-7.9.50.20150520/gdb/xtensa-tdep.c
switch (TYPE_CODE (arg_type))
{
case TYPE_CODE_INT:
@@ -1828,8 +1828,8 @@ xtensa_push_dummy_call (struct gdbarch *
@@ -1822,8 +1822,8 @@ xtensa_push_dummy_call (struct gdbarch *
info->align = TYPE_LENGTH (builtin_type (gdbarch)->builtin_long);
break;
}
@ -1275,7 +1273,7 @@ Index: gdb-7.9.50.20150520/gdb/xtensa-tdep.c
/* Align size and onstack_size. */
size = (size + info->align - 1) & ~(info->align - 1);
@@ -1874,7 +1874,7 @@ xtensa_push_dummy_call (struct gdbarch *
@@ -1868,7 +1868,7 @@ xtensa_push_dummy_call (struct gdbarch *
if (info->onstack)
{
@ -1284,7 +1282,7 @@ Index: gdb-7.9.50.20150520/gdb/xtensa-tdep.c
CORE_ADDR offset = sp + info->u.offset;
/* Odd-sized structs are aligned to the lower side of a memory
@@ -1890,7 +1890,7 @@ xtensa_push_dummy_call (struct gdbarch *
@@ -1884,7 +1884,7 @@ xtensa_push_dummy_call (struct gdbarch *
}
else
{

View File

@ -47,10 +47,10 @@ Content-Type: text/x-patch
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=f77-bounds.patch
Index: gdb-7.8.50.20141228/gdb/f-lang.h
Index: gdb-7.10.50.20151027/gdb/f-lang.h
===================================================================
--- gdb-7.8.50.20141228.orig/gdb/f-lang.h 2015-01-06 22:46:31.620852996 +0100
+++ gdb-7.8.50.20141228/gdb/f-lang.h 2015-01-06 22:46:34.190865466 +0100
--- gdb-7.10.50.20151027.orig/gdb/f-lang.h 2015-11-02 21:25:14.233161097 +0100
+++ gdb-7.10.50.20151027/gdb/f-lang.h 2015-11-02 21:25:22.404214860 +0100
@@ -62,9 +62,9 @@ struct common_block
struct symbol *contents[1];
};
@ -63,11 +63,11 @@ Index: gdb-7.8.50.20141228/gdb/f-lang.h
extern void f77_get_dynamic_array_length (struct type *);
Index: gdb-7.8.50.20141228/gdb/f-typeprint.c
Index: gdb-7.10.50.20151027/gdb/f-typeprint.c
===================================================================
--- gdb-7.8.50.20141228.orig/gdb/f-typeprint.c 2015-01-06 22:46:31.621853001 +0100
+++ gdb-7.8.50.20141228/gdb/f-typeprint.c 2015-01-06 22:47:03.731008798 +0100
@@ -158,7 +158,7 @@ f_type_print_varspec_suffix (struct type
--- gdb-7.10.50.20151027.orig/gdb/f-typeprint.c 2015-11-02 21:25:14.234161104 +0100
+++ gdb-7.10.50.20151027/gdb/f-typeprint.c 2015-11-02 21:25:22.404214860 +0100
@@ -171,7 +171,7 @@ f_type_print_varspec_suffix (struct type
int show, int passed_a_ptr, int demangled_args,
int arrayprint_recurse_level)
{
@ -76,7 +76,7 @@ Index: gdb-7.8.50.20141228/gdb/f-typeprint.c
/* No static variables are permitted as an error call may occur during
execution of this function. */
@@ -192,7 +192,7 @@ f_type_print_varspec_suffix (struct type
@@ -204,7 +204,7 @@ f_type_print_varspec_suffix (struct type
lower_bound = f77_get_lowerbound (type);
if (lower_bound != 1) /* Not the default. */
@ -85,7 +85,7 @@ Index: gdb-7.8.50.20141228/gdb/f-typeprint.c
/* Make sure that, if we have an assumed size array, we
print out a warning and print the upperbound as '*'. */
@@ -202,7 +202,7 @@ f_type_print_varspec_suffix (struct type
@@ -214,7 +214,7 @@ f_type_print_varspec_suffix (struct type
else
{
upper_bound = f77_get_upperbound (type);
@ -94,7 +94,7 @@ Index: gdb-7.8.50.20141228/gdb/f-typeprint.c
}
if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_ARRAY)
@@ -271,7 +271,7 @@ void
@@ -283,7 +283,7 @@ void
f_type_print_base (struct type *type, struct ui_file *stream, int show,
int level)
{
@ -103,7 +103,7 @@ Index: gdb-7.8.50.20141228/gdb/f-typeprint.c
int index;
QUIT;
@@ -353,7 +353,7 @@ f_type_print_base (struct type *type, st
@@ -365,7 +365,7 @@ f_type_print_base (struct type *type, st
else
{
upper_bound = f77_get_upperbound (type);
@ -112,10 +112,10 @@ Index: gdb-7.8.50.20141228/gdb/f-typeprint.c
}
break;
Index: gdb-7.8.50.20141228/gdb/f-valprint.c
Index: gdb-7.10.50.20151027/gdb/f-valprint.c
===================================================================
--- gdb-7.8.50.20141228.orig/gdb/f-valprint.c 2015-01-06 22:46:31.621853001 +0100
+++ gdb-7.8.50.20141228/gdb/f-valprint.c 2015-01-06 22:46:34.191865471 +0100
--- gdb-7.10.50.20151027.orig/gdb/f-valprint.c 2015-11-02 21:25:14.234161104 +0100
+++ gdb-7.10.50.20151027/gdb/f-valprint.c 2015-11-02 21:25:22.405214867 +0100
@@ -43,7 +43,7 @@ LONGEST f77_array_offset_tbl[MAX_FORTRAN
/* Array which holds offsets to be applied to get a row's elements
for a given array. Array also holds the size of each subarray. */

View File

@ -1,15 +1,19 @@
--- gdb-7.5.0.20120926-m64/gdb/value.c-orig 2012-11-09 17:08:52.137406118 +0100
+++ gdb-7.5.0.20120926-m64/gdb/value.c 2012-11-09 17:32:38.324199230 +0100
@@ -663,7 +663,6 @@ allocate_value_lazy (struct type *type)
Index: gdb-7.10.50.20151022/gdb/value.c
===================================================================
--- gdb-7.10.50.20151022.orig/gdb/value.c 2015-10-24 23:17:04.042143628 +0200
+++ gdb-7.10.50.20151022/gdb/value.c 2015-10-24 23:17:27.687300689 +0200
@@ -934,7 +934,6 @@ allocate_value_lazy (struct type *type)
description correctly. */
check_typedef (type);
- ulongest_fits_host_or_error (TYPE_LENGTH (type));
val = (struct value *) xzalloc (sizeof (struct value));
val = XCNEW (struct value);
val->contents = NULL;
val->next = all_values;
--- /dev/null 2012-10-18 11:08:13.202328239 +0200
+++ gdb-7.5.0.20120926-m64-test/gdb/testsuite/gdb.base/longest-types-64bit.exp 2012-11-09 18:13:56.286587994 +0100
Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.exp 2015-10-24 23:17:04.042143628 +0200
@@ -0,0 +1,59 @@
+# This testcase is part of GDB, the GNU debugger.
+
@ -70,8 +74,10 @@
+}
+
+test "native"
--- /dev/null 2012-10-18 11:08:13.202328239 +0200
+++ ./gdb/testsuite/gdb.base/longest-types-64bit.c 2012-11-09 17:08:51.374406344 +0100
Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.c 2015-10-24 23:17:04.042143628 +0200
@@ -0,0 +1,28 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@ -101,8 +107,10 @@
+{
+ return 0;
+}
--- /dev/null 2012-10-18 11:08:13.202328239 +0200
+++ ./gdb/testsuite/gdb.base/longest-types-64bit.S 2012-11-09 17:51:37.597846130 +0100
Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.S
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.S 2015-10-24 23:17:04.042143628 +0200
@@ -0,0 +1,249 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@ -353,8 +361,10 @@
+ .string "char"
+ .ident "GCC: (GNU) 4.7.3 20121109 (prerelease)"
+ .section .note.GNU-stack,"",@progbits
--- /dev/null 2012-10-18 11:08:13.202328239 +0200
+++ gdb-7.5.0.20120926-m64-test/gdb/testsuite/gdb.base/longest-types-64bit.bz2.uu 2012-11-09 18:04:52.995692771 +0100
Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.bz2.uu
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.bz2.uu 2015-10-24 23:17:04.042143628 +0200
@@ -0,0 +1,67 @@
+begin 755 gdb.base/longest-types-64bit.bz2
+M0EIH.3%!62936<'N#OH`"G/________^______?_Y______//]7SQD5'^/_%

69
gdb-upstream.patch Normal file
View File

@ -0,0 +1,69 @@
http://sourceware.org/ml/gdb-patches/2015-10/msg00510.html
Subject: [patch] Fix access_to_packed_array.exp typos/errors [Re: [PATCH] [Ada] Fix the evaluation of access to packed array subscript]
--r5Pyd7+fXNt84Ff3
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Mon, 14 Sep 2015 16:18:00 +0200, Joel Brobecker wrote:
> > * gdb.ada/access_to_packed_array.exp: New testcase.
>
> Looks good to me. Please go ahead and push.
Running ./gdb.ada/access_to_packed_array.exp ...
ERROR: tcl error sourcing ./gdb.ada/access_to_packed_array.exp.
ERROR: extra characters after close-quote
while executing
"gdb_test "print pack.a" "\\(0 => 1, 2, 3, 4, 5, 6, 7, 8, 9, 10\\)")"
(file "./gdb.ada/access_to_packed_array.exp" line 29)
invoked from within
"source ./gdb.ada/access_to_packed_array.exp"
("uplevel" body line 1)
invoked from within
"uplevel #0 source ./gdb.ada/access_to_packed_array.exp"
invoked from within
"catch "uplevel #0 source $test_file_name""
Attaching a fix of the typos.
Unrelated to the typos I have changed the print expectations s/"x"/" = x"/
as for example expectation "3" should not match " = 43".
On Fedora 21 x86_64 it then:
# of expected passes 5
OK for check-in?
Jan
--r5Pyd7+fXNt84Ff3
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename=1
gdb/testsuite/ChangeLog
2015-10-25 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.ada/access_to_packed_array.exp: Fix typos erroring the testfile.
diff --git a/gdb/testsuite/gdb.ada/access_to_packed_array.exp b/gdb/testsuite/gdb.ada/access_to_packed_array.exp
index 0dca780..1bf3e22 100644
--- a/gdb/testsuite/gdb.ada/access_to_packed_array.exp
+++ b/gdb/testsuite/gdb.ada/access_to_packed_array.exp
@@ -26,8 +26,8 @@ clean_restart ${testfile}
set bp_location [gdb_get_line_number "BREAK" ${testdir}/foo.adb]
runto "foo.adb:$bp_location"
-gdb_test "print pack.a" "\\(0 => 1, 2, 3, 4, 5, 6, 7, 8, 9, 10\\)")
-gdb_test "pack.aa" "\\(access pack\\.array_type\\) 0x.* <pack\\.a>")
+gdb_test "print pack.a" " = \\(0 => 1, 2, 3, 4, 5, 6, 7, 8, 9, 10\\)"
+gdb_test "print pack.aa" " = \\(access pack\\.array_type\\) 0x.* <pack\\.a>"
-gdb_test "pack.a(2)" "3"
-gdb_test "pack.aa(2)" "3"
+gdb_test "print pack.a(2)" " = 3"
+gdb_test "print pack.aa(2)" " = 3"
--r5Pyd7+fXNt84Ff3--

View File

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

View File

@ -165,17 +165,3 @@ Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90
+ end interface
+ call foo ('hello')
+end
Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-strings.exp
===================================================================
--- gdb-7.9.50.20150520.orig/gdb/testsuite/gdb.fortran/vla-strings.exp 2015-05-31 16:14:04.167533854 +0200
+++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-strings.exp 2015-05-31 16:14:31.073718201 +0200
@@ -33,9 +33,6 @@ gdb_continue_to_breakpoint "var_char-all
gdb_test "print var_char" \
" = \\(PTR TO -> \\( character\\*10 \\)\\) ${hex}" \
"print var_char after allocated first time"
-gdb_test "print *var_char" \
- " = '\\\\000\\\\000\\\\000\\\\000\\\\000\\\\000\\\\000\\\\000\\\\000\\\\000'" \
- "print *var_char after allocated first time"
gdb_test "whatis var_char" "type = PTR TO -> \\( character\\*10 \\)" \
"whatis var_char first time"
gdb_test "ptype var_char" "type = PTR TO -> \\( character\\*10 \\)" \

File diff suppressed because it is too large Load Diff

View File

@ -19,15 +19,15 @@ Summary: A GNU source-level debugger for C, C++, Fortran, Go and other languages
Name: %{?scl_prefix}gdb
# Freeze it when GDB gets branched
%global snapsrc 20150706
%global snapsrc 20151027
# See timestamp of source gnulib installed into gdb/gnulib/ .
%global snapgnulib 20121213
%global snapgnulib 20150822
%global tarname gdb-%{version}
Version: 7.10
Version: 7.10.50.%{snapsrc}
# The release always contains a leading reserved number, start it at 1.
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
Release: 29%{?dist}
Release: 30%{?dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain and GFDL
Group: Development/Debuggers
@ -245,7 +245,7 @@ Patch231: gdb-6.3-bz202689-exec-from-pthread-test.patch
# Backported fixups post the source tarball.
#Xdrop: Just backports.
#Patch232: gdb-upstream.patch
Patch232: gdb-upstream.patch
# Testcase for PPC Power6/DFP instructions disassembly (BZ 230000).
#=fedoratest+ppc
@ -542,19 +542,14 @@ Patch927: gdb-python-gil.patch
# Fix jit-reader.h for multi-lib.
Patch978: gdb-jit-reader-multilib.patch
# Fix 'Make the probes-based dynamic linker interface more robust to
# errors' (Sergio Durigan Junior, RH BZ 1259132).
Patch1029: gdb-probes-based-interface-robust-1of2.patch
Patch1030: gdb-probes-based-interface-robust-2of2.patch
# [ppc64le] Use skip_entrypoint for skip_trampoline_code (RH BZ 1260558).
Patch1031: gdb-rhbz1260558-ppc64le-skip_trampoline_code.patch
# Fix the pahole command breakage due to its Python3 port (RH BZ 1264532).
Patch1044: gdb-pahole-python2.patch
# Fix internal error on DW_OP_bregx(-1) (RH BZ 1270564).
Patch1052: gdb-rhbz1270564-invalid-dwarf-regno.patch
# Fix callframecfa.exp and typeddwarf.exp rebase regression.
Patch1054: gdb-nonstop-scratchpad.patch
# testsuite: Fortran: allocate()d memory is uninitialized.
Patch1056: gdb-fortran-allocate-not-inited.patch
%if 0%{!?rhel:1} || 0%{?rhel} > 6
# RL_STATE_FEDORA_GDB would not be found for:
@ -747,7 +742,7 @@ find -name "*.info*"|xargs rm -f
# Match the Fedora's version info.
%patch2 -p1
#patch232 -p1
%patch232 -p1
%patch349 -p1
%patch888 -p1
%patch983 -p1
@ -851,10 +846,8 @@ find -name "*.info*"|xargs rm -f
%patch925 -p1
%patch927 -p1
%patch978 -p1
%patch1029 -p1
%patch1030 -p1
%patch1031 -p1
%patch1052 -p1
%patch1054 -p1
%patch1056 -p1
%patch848 -p1
%if 0%{!?el6:1}
@ -1370,6 +1363,9 @@ then
fi
%changelog
* Tue Nov 3 2015 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.10.50.20151027-30.fc24
- Rebase to FSF GDB 7.10.50.20151027 (trunk snapshot).
* Mon Oct 12 2015 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.10-29.fc23
- Fix internal error on DW_OP_bregx(-1) (RH BZ 1270564).

View File

@ -1,2 +1,2 @@
7ad32d3894aaf90d00a4343a735c3e1c gdb-libstdc++-v3-python-r225521.tar.xz
2a35bac41fa8e10bf04f3a0dd7f7f363 gdb-7.10.tar.xz
08819fb3e231bbd986695bb4edcd271d gdb-7.10.50.20151027.tar.xz