Accepting request 198490 from devel:gcc
- gdb-aarch64-hw-break.patch: fix setting hardware debug registers after fork - Merge from fedoras gdb-7.6.50-20130731-cvs, of what will become 7.7 eventually. This includes 7.6, which gave: * new native configurations (e.g. ARM AArch64 GNU/Linux) * new targets (e.g. ARM AArch64, Lynx 178 PowerPC, x86_64/Cygwin) * support for the "mini debuginfo" section, .gnu_debugdata * the C++ ABI now defaults to the GNU v3 ABI * more Python scripting improvements * some GDB/MI improvements * new configure options, new commands, and options * new remote packets * a new "target record-btrace" has been added while the "target record" command has been renamed to "target record-full" - gdb-ia64-tdep.patch: build fixes - gdb-ppc-ptrace.diff: Remove patch, not needed on new kernels OBS-URL: https://build.opensuse.org/request/show/198490 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gdb?expand=0&rev=93
This commit is contained in:
committed by
Git OBS Bridge
parent
9cdd33a15c
commit
21901929ed
@@ -1,18 +1,18 @@
|
||||
Index: gdb-7.5.50.20130215/gdb/corelow.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/corelow.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/corelow.c 2013-01-31 19:37:37.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/corelow.c 2013-02-15 22:35:03.278219844 +0100
|
||||
@@ -46,6 +46,9 @@
|
||||
#include "progspace.h"
|
||||
#include "objfiles.h"
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/corelow.c 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/corelow.c 2013-08-02 17:07:28.434753293 +0200
|
||||
@@ -48,6 +48,9 @@
|
||||
#include "gdb_bfd.h"
|
||||
#include "completer.h"
|
||||
#include "filestuff.h"
|
||||
+#include "auxv.h"
|
||||
+#include "elf/common.h"
|
||||
+#include "gdbcmd.h"
|
||||
|
||||
#ifndef O_LARGEFILE
|
||||
#define O_LARGEFILE 0
|
||||
@@ -271,6 +274,52 @@ add_to_thread_list (bfd *abfd, asection
|
||||
@@ -273,6 +276,53 @@ add_to_thread_list (bfd *abfd, asection
|
||||
inferior_ptid = ptid; /* Yes, make it current. */
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ Index: gdb-7.5.50.20130215/gdb/corelow.c
|
||||
+build_id_locate_exec (int from_tty)
|
||||
+{
|
||||
+ CORE_ADDR at_entry;
|
||||
+ struct build_id *build_id;
|
||||
+ struct elf_build_id *build_id;
|
||||
+ char *exec_filename, *debug_filename;
|
||||
+ char *build_id_filename;
|
||||
+ struct cleanup *back_to;
|
||||
@@ -36,6 +36,7 @@ Index: gdb-7.5.50.20130215/gdb/corelow.c
|
||||
+ build_id = build_id_addr_get (at_entry);
|
||||
+ if (build_id == NULL)
|
||||
+ return;
|
||||
+ back_to = make_cleanup (xfree, build_id);
|
||||
+
|
||||
+ /* SYMFILE_OBJFILE should refer to the main executable (not only to its
|
||||
+ separate debug info file). gcc44+ keeps .eh_frame only in the main
|
||||
@@ -44,7 +45,7 @@ Index: gdb-7.5.50.20130215/gdb/corelow.c
|
||||
+ directly to the separate debug info file. */
|
||||
+
|
||||
+ exec_filename = build_id_to_filename (build_id, &build_id_filename, 0);
|
||||
+ back_to = make_cleanup (xfree, build_id_filename);
|
||||
+ make_cleanup (xfree, build_id_filename);
|
||||
+
|
||||
+ if (exec_filename != NULL)
|
||||
+ {
|
||||
@@ -65,7 +66,7 @@ Index: gdb-7.5.50.20130215/gdb/corelow.c
|
||||
/* This routine opens and sets up the core file bfd. */
|
||||
|
||||
static void
|
||||
@@ -409,6 +458,14 @@ core_open (char *filename, int from_tty)
|
||||
@@ -411,6 +461,14 @@ core_open (char *filename, int from_tty)
|
||||
switch_to_thread (thread->ptid);
|
||||
}
|
||||
|
||||
@@ -80,10 +81,10 @@ Index: gdb-7.5.50.20130215/gdb/corelow.c
|
||||
post_create_inferior (&core_ops, from_tty);
|
||||
|
||||
/* Now go through the target stack looking for threads since there
|
||||
@@ -978,4 +1035,11 @@ _initialize_corelow (void)
|
||||
@@ -974,4 +1032,11 @@ _initialize_corelow (void)
|
||||
init_core_ops ();
|
||||
|
||||
add_target (&core_ops);
|
||||
add_target_with_completer (&core_ops, filename_completer);
|
||||
+
|
||||
+ add_setshow_boolean_cmd ("build-id-core-loads", class_files,
|
||||
+ &build_id_core_loads, _("\
|
||||
@@ -92,11 +93,11 @@ Index: gdb-7.5.50.20130215/gdb/corelow.c
|
||||
+ NULL, NULL, NULL,
|
||||
+ &setlist, &showlist);
|
||||
}
|
||||
Index: gdb-7.5.50.20130215/gdb/doc/gdb.texinfo
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/doc/gdb.texinfo 2013-02-15 22:34:22.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/doc/gdb.texinfo 2013-02-15 22:35:03.287219863 +0100
|
||||
@@ -16662,6 +16662,27 @@ information files.
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/doc/gdb.texinfo 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo 2013-08-02 17:07:28.443753304 +0200
|
||||
@@ -17119,6 +17119,27 @@ information files.
|
||||
|
||||
@end table
|
||||
|
||||
@@ -124,11 +125,11 @@ Index: gdb-7.5.50.20130215/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.5.50.20130215/gdb/solib-svr4.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/solib-svr4.c 2013-01-31 14:52:52.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/solib-svr4.c 2013-02-15 22:35:03.287219863 +0100
|
||||
@@ -1224,9 +1224,52 @@ svr4_read_so_list (CORE_ADDR lm, struct
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/solib-svr4.c 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c 2013-08-02 17:07:28.444753305 +0200
|
||||
@@ -1365,9 +1365,52 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -136,7 +137,7 @@ Index: gdb-7.5.50.20130215/gdb/solib-svr4.c
|
||||
- new->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
|
||||
- strcpy (new->so_original_name, new->so_name);
|
||||
+ {
|
||||
+ struct build_id *build_id;
|
||||
+ struct elf_build_id *build_id;
|
||||
+
|
||||
+ strncpy (new->so_original_name, buffer, SO_NAME_MAX_PATH_SIZE - 1);
|
||||
+ new->so_original_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
|
||||
@@ -184,10 +185,10 @@ Index: gdb-7.5.50.20130215/gdb/solib-svr4.c
|
||||
xfree (buffer);
|
||||
|
||||
/* If this entry has no name, or its name matches the name
|
||||
Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/elfread.c 2013-02-01 20:39:03.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/elfread.c 2013-02-15 22:35:36.826263354 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/elfread.c 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/elfread.c 2013-08-02 17:09:06.460881503 +0200
|
||||
@@ -45,6 +45,11 @@
|
||||
#include "regcache.h"
|
||||
#include "bcache.h"
|
||||
@@ -200,10 +201,11 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
|
||||
extern void _initialize_elfread (void);
|
||||
|
||||
@@ -1074,16 +1079,65 @@ elf_gnu_ifunc_resolver_return_stop (stru
|
||||
@@ -1087,10 +1092,59 @@ elf_gnu_ifunc_resolver_return_stop (stru
|
||||
update_breakpoint_locations (b, sals, sals_end);
|
||||
}
|
||||
|
||||
-/* Locate NT_GNU_BUILD_ID from ABFD and return its content. */
|
||||
+#define BUILD_ID_VERBOSE_NONE 0
|
||||
+#define BUILD_ID_VERBOSE_FILENAMES 1
|
||||
+#define BUILD_ID_VERBOSE_BINARY_PARSE 2
|
||||
@@ -216,18 +218,10 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+ value);
|
||||
+}
|
||||
+
|
||||
struct build_id
|
||||
{
|
||||
size_t size;
|
||||
gdb_byte data[1];
|
||||
};
|
||||
|
||||
-/* Locate NT_GNU_BUILD_ID from ABFD and return its content. */
|
||||
+/* Locate NT_GNU_BUILD_ID and return its matching debug filename.
|
||||
+ FIXME: NOTE decoding should be unified with the BFD core notes decoding. */
|
||||
|
||||
static struct build_id *
|
||||
-build_id_bfd_get (bfd *abfd)
|
||||
+
|
||||
+static struct elf_build_id *
|
||||
+build_id_buf_get (bfd *templ, gdb_byte *buf, bfd_size_type size)
|
||||
+{
|
||||
+ bfd_byte *p;
|
||||
@@ -239,7 +233,7 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+ Elf_External_Note *xnp = (Elf_External_Note *) p;
|
||||
+ size_t namesz = H_GET_32 (templ, xnp->namesz);
|
||||
+ size_t descsz = H_GET_32 (templ, xnp->descsz);
|
||||
+ bfd_byte *descdata = xnp->name + BFD_ALIGN (namesz, 4);
|
||||
+ bfd_byte *descdata = (gdb_byte *) xnp->name + BFD_ALIGN (namesz, 4);
|
||||
+
|
||||
+ if (H_GET_32 (templ, xnp->type) == NT_GNU_BUILD_ID
|
||||
+ && namesz == sizeof "GNU"
|
||||
@@ -247,7 +241,7 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+ {
|
||||
+ size_t size = descsz;
|
||||
+ gdb_byte *data = (void *) descdata;
|
||||
+ struct build_id *retval;
|
||||
+ struct elf_build_id *retval;
|
||||
+
|
||||
+ retval = xmalloc (sizeof *retval - 1 + size);
|
||||
+ retval->size = size;
|
||||
@@ -262,26 +256,27 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+
|
||||
+/* Separate debuginfo files have corrupted PHDR but SHDR is correct there.
|
||||
+ Locate NT_GNU_BUILD_ID from ABFD and return its content. */
|
||||
+
|
||||
+static struct build_id *
|
||||
|
||||
static const struct elf_build_id *
|
||||
-build_id_bfd_get (bfd *abfd)
|
||||
+build_id_bfd_shdr_get (bfd *abfd)
|
||||
{
|
||||
struct build_id *retval;
|
||||
|
||||
@@ -1099,6 +1153,348 @@ build_id_bfd_get (bfd *abfd)
|
||||
return retval;
|
||||
if (!bfd_check_format (abfd, bfd_object)
|
||||
|| bfd_get_flavour (abfd) != bfd_target_elf_flavour
|
||||
@@ -1100,6 +1154,348 @@ build_id_bfd_get (bfd *abfd)
|
||||
return elf_tdata (abfd)->build_id;
|
||||
}
|
||||
|
||||
+/* Core files may have missing (corrupt) SHDR but PDHR is correct there.
|
||||
+ bfd_elf_bfd_from_remote_memory () has too much overhead by
|
||||
+ allocating/reading all the available ELF PT_LOADs. */
|
||||
+
|
||||
+static struct build_id *
|
||||
+static struct elf_build_id *
|
||||
+build_id_phdr_get (bfd *templ, bfd_vma loadbase, unsigned e_phnum,
|
||||
+ Elf_Internal_Phdr *i_phdr)
|
||||
+{
|
||||
+ int i;
|
||||
+ struct build_id *retval = NULL;
|
||||
+ struct elf_build_id *retval = NULL;
|
||||
+
|
||||
+ for (i = 0; i < e_phnum; i++)
|
||||
+ if (i_phdr[i].p_type == PT_NOTE && i_phdr[i].p_filesz > 0)
|
||||
@@ -568,11 +563,11 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+struct build_id *
|
||||
+struct elf_build_id *
|
||||
+build_id_addr_get (CORE_ADDR addr)
|
||||
+{
|
||||
+ struct build_id_addr_sect *candidate;
|
||||
+ struct build_id *retval = NULL;
|
||||
+ struct elf_build_id *retval = NULL;
|
||||
+ Elf_Internal_Phdr *i_phdr = NULL;
|
||||
+ bfd_vma loadbase = 0;
|
||||
+ unsigned e_phnum = 0;
|
||||
@@ -617,7 +612,7 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
/* Return if FILENAME has NT_GNU_BUILD_ID matching the CHECK value. */
|
||||
|
||||
static int
|
||||
@@ -1113,7 +1509,7 @@ build_id_verify (const char *filename, s
|
||||
@@ -1114,7 +1510,7 @@ build_id_verify (const char *filename, c
|
||||
if (abfd == NULL)
|
||||
return 0;
|
||||
|
||||
@@ -626,14 +621,48 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
|
||||
if (found == NULL)
|
||||
warning (_("File \"%s\" has no build-id, file skipped"), filename);
|
||||
@@ -1131,17 +1527,18 @@ build_id_verify (const char *filename, s
|
||||
return retval;
|
||||
@@ -1131,16 +1527,53 @@ build_id_verify (const char *filename, c
|
||||
}
|
||||
|
||||
-static char *
|
||||
-build_id_to_debug_filename (struct build_id *build_id)
|
||||
static char *
|
||||
-build_id_to_debug_filename (const struct elf_build_id *build_id)
|
||||
+link_resolve (const char *symlink, int level)
|
||||
+{
|
||||
+ char buf[PATH_MAX + 1], *target, *retval;
|
||||
+ ssize_t got;
|
||||
+
|
||||
+ if (level > 10)
|
||||
+ return xstrdup (symlink);
|
||||
+
|
||||
+ got = readlink (symlink, buf, sizeof (buf));
|
||||
+ if (got < 0 || got >= sizeof (buf))
|
||||
+ return xstrdup (symlink);
|
||||
+ buf[got] = '\0';
|
||||
+
|
||||
+ if (IS_ABSOLUTE_PATH (buf))
|
||||
+ target = xstrdup (buf);
|
||||
+ else
|
||||
+ {
|
||||
+ char *dir = ldirname (symlink);
|
||||
+
|
||||
+ if (dir == NULL)
|
||||
+ return xstrdup (symlink);
|
||||
+ target = xstrprintf ("%s"
|
||||
+#ifndef HAVE_DOS_BASED_FILE_SYSTEM
|
||||
+ "/"
|
||||
+#else /* HAVE_DOS_BASED_FILE_SYSTEM */
|
||||
+ "\\"
|
||||
+#endif /* HAVE_DOS_BASED_FILE_SYSTEM */
|
||||
+ "%s", dir, buf);
|
||||
+ }
|
||||
+
|
||||
+ retval = link_resolve (target, level + 1);
|
||||
+ xfree (target);
|
||||
+ return retval;
|
||||
+}
|
||||
+
|
||||
+char *
|
||||
+build_id_to_filename (struct build_id *build_id, char **link_return,
|
||||
+build_id_to_filename (const struct elf_build_id *build_id, char **link_return,
|
||||
+ int add_debug_suffix)
|
||||
{
|
||||
char *link, *debugdir, *retval = NULL;
|
||||
@@ -649,16 +678,19 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
|
||||
/* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will
|
||||
cause "/.build-id/..." lookups. */
|
||||
@@ -1154,6 +1551,8 @@ build_id_to_debug_filename (struct build
|
||||
@@ -1153,7 +1586,10 @@ build_id_to_debug_filename (const struct
|
||||
size_t debugdir_len = strlen (debugdir);
|
||||
gdb_byte *data = build_id->data;
|
||||
const gdb_byte *data = build_id->data;
|
||||
size_t size = build_id->size;
|
||||
- char *s;
|
||||
+ unsigned seqno;
|
||||
+ struct stat statbuf_trash;
|
||||
char *s;
|
||||
+ /* Initialize it just to avoid a GCC false warning. */
|
||||
+ char *s, *link0 = NULL, *link0_resolved;
|
||||
|
||||
memcpy (link, debugdir, debugdir_len);
|
||||
@@ -1168,37 +1567,240 @@ build_id_to_debug_filename (struct build
|
||||
s = &link[debugdir_len];
|
||||
@@ -1167,37 +1603,256 @@ build_id_to_debug_filename (const struct
|
||||
*s++ = '/';
|
||||
while (size-- > 0)
|
||||
s += sprintf (s, "%02x", (unsigned) *data++);
|
||||
@@ -686,8 +718,14 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+ strcpy (s2, ".debug");
|
||||
+ else
|
||||
+ *s2 = 0;
|
||||
|
||||
- if (retval != NULL && !build_id_verify (retval, build_id))
|
||||
+
|
||||
+ if (!seqno)
|
||||
+ {
|
||||
+ /* If none of the real files is found report as missing file
|
||||
+ always the non-.%u-suffixed file. */
|
||||
+ link0 = xstrdup (link);
|
||||
+ }
|
||||
+
|
||||
+ /* `access' automatically dereferences LINK. */
|
||||
+ if (lstat (link, &statbuf_trash) != 0)
|
||||
+ {
|
||||
@@ -708,42 +746,52 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+ }
|
||||
+
|
||||
+ if (retval != NULL)
|
||||
+ {
|
||||
+ /* LINK_ALL is not used below in this non-NULL RETVAL case. */
|
||||
+ xfree (link0);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ /* If the symlink has target request to install the target.
|
||||
+ BASE-debuginfo.rpm contains the symlink but BASE.rpm may be missing.
|
||||
+ https://bugzilla.redhat.com/show_bug.cgi?id=981154 */
|
||||
+ link0_resolved = link_resolve (link0, 0);
|
||||
+ xfree (link0);
|
||||
|
||||
- if (retval != NULL && !build_id_verify (retval, build_id))
|
||||
+ if (link_all == NULL)
|
||||
+ link_all = xstrdup (link0_resolved);
|
||||
+ else
|
||||
{
|
||||
- xfree (retval);
|
||||
- retval = NULL;
|
||||
+ /* LINK_ALL is not used below in this non-NULL RETVAL case. */
|
||||
+ break;
|
||||
+ size_t len_orig = strlen (link_all);
|
||||
+
|
||||
+ link_all = xrealloc (link_all,
|
||||
+ len_orig + 1 + strlen (link0_resolved) + 1);
|
||||
+
|
||||
+ /* Use whitespace instead of DIRNAME_SEPARATOR to be compatible with
|
||||
+ its possible use as an argument for installation command. */
|
||||
+ link_all[len_orig] = ' ';
|
||||
+
|
||||
+ strcpy (&link_all[len_orig + 1], link0_resolved);
|
||||
}
|
||||
|
||||
+ if (link_all == NULL)
|
||||
+ link_all = xstrdup (link);
|
||||
+ else
|
||||
+ {
|
||||
+ size_t len_orig = strlen (link_all);
|
||||
+
|
||||
+ link_all = xrealloc (link_all, len_orig + 1 + strlen (link) + 1);
|
||||
+
|
||||
+ /* Use whitespace instead of DIRNAME_SEPARATOR to be compatible with
|
||||
+ its possible use as an argument for installation command. */
|
||||
+ link_all[len_orig] = ' ';
|
||||
+
|
||||
+ strcpy (&link_all[len_orig + 1], link);
|
||||
+ }
|
||||
+ xfree (link0_resolved);
|
||||
+ }
|
||||
+
|
||||
|
||||
+ if (link_return != NULL)
|
||||
+ {
|
||||
if (retval != NULL)
|
||||
- break;
|
||||
+ {
|
||||
+ *link_return = link;
|
||||
+ link = NULL;
|
||||
+ }
|
||||
+ {
|
||||
+ *link_return = link;
|
||||
+ link = NULL;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ *link_return = link_all;
|
||||
+ link_all = NULL;
|
||||
+ }
|
||||
+ {
|
||||
+ *link_return = link_all;
|
||||
+ link_all = NULL;
|
||||
+ }
|
||||
}
|
||||
+ xfree (link);
|
||||
+ xfree (link_all);
|
||||
@@ -893,7 +941,7 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+find_separate_debug_file_by_buildid (struct objfile *objfile,
|
||||
+ char **build_id_filename_return)
|
||||
{
|
||||
struct build_id *build_id;
|
||||
const struct elf_build_id *build_id;
|
||||
|
||||
- build_id = build_id_bfd_get (objfile->obfd);
|
||||
+ if (build_id_filename_return)
|
||||
@@ -907,10 +955,10 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
- build_id_name = build_id_to_debug_filename (build_id);
|
||||
+ build_id_name = build_id_to_filename (build_id, build_id_filename_return,
|
||||
+ 1);
|
||||
xfree (build_id);
|
||||
/* Prevent looping on a stripped .debug file. */
|
||||
if (build_id_name != NULL
|
||||
@@ -1209,7 +1811,7 @@ find_separate_debug_file_by_buildid (str
|
||||
&& filename_cmp (build_id_name, objfile->name) == 0)
|
||||
@@ -1207,7 +1862,7 @@ find_separate_debug_file_by_buildid (str
|
||||
xfree (build_id_name);
|
||||
}
|
||||
else if (build_id_name != NULL)
|
||||
@@ -919,7 +967,7 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
@@ -1444,9 +2046,10 @@ elf_symfile_read (struct objfile *objfil
|
||||
@@ -1445,9 +2100,10 @@ elf_symfile_read (struct objfile *objfil
|
||||
&& objfile->separate_debug_objfile == NULL
|
||||
&& objfile->separate_debug_objfile_backlink == NULL)
|
||||
{
|
||||
@@ -932,7 +980,7 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
|
||||
if (debugfile == NULL)
|
||||
debugfile = find_separate_debug_file_by_debuglink (objfile);
|
||||
@@ -1460,6 +2063,12 @@ elf_symfile_read (struct objfile *objfil
|
||||
@@ -1461,6 +2117,12 @@ elf_symfile_read (struct objfile *objfil
|
||||
symbol_file_add_separate (abfd, symfile_flags, objfile);
|
||||
do_cleanups (cleanup);
|
||||
}
|
||||
@@ -943,9 +991,9 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+
|
||||
+ xfree (build_id_filename);
|
||||
}
|
||||
}
|
||||
|
||||
if (symtab_create_debug)
|
||||
@@ -1782,4 +2391,16 @@ _initialize_elfread (void)
|
||||
@@ -1790,4 +2452,16 @@ _initialize_elfread (void)
|
||||
|
||||
elf_objfile_gnu_ifunc_cache_data = register_objfile_data ();
|
||||
gnu_ifunc_fns_p = &elf_gnu_ifunc_fns;
|
||||
@@ -962,28 +1010,27 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+
|
||||
+ observer_attach_executable_changed (debug_print_executable_changed);
|
||||
}
|
||||
Index: gdb-7.5.50.20130215/gdb/symfile.h
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/symfile.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/symfile.h 2013-02-03 17:20:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/symfile.h 2013-02-15 22:35:03.288219867 +0100
|
||||
@@ -593,6 +593,13 @@ void free_symfile_segment_data (struct s
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/symfile.h 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/symfile.h 2013-08-02 17:07:28.446753308 +0200
|
||||
@@ -597,6 +597,12 @@ void free_symfile_segment_data (struct s
|
||||
|
||||
extern struct cleanup *increment_reading_symtab (void);
|
||||
|
||||
+/* build-id support. */
|
||||
+struct build_id;
|
||||
+extern struct build_id *build_id_addr_get (CORE_ADDR addr);
|
||||
+extern char *build_id_to_filename (struct build_id *build_id,
|
||||
+extern struct elf_build_id *build_id_addr_get (CORE_ADDR addr);
|
||||
+extern char *build_id_to_filename (const struct elf_build_id *build_id,
|
||||
+ char **link_return, int add_debug_suffix);
|
||||
+extern void debug_print_missing (const char *binary, const char *debug);
|
||||
+
|
||||
/* From dwarf2read.c */
|
||||
|
||||
/* Names for a dwarf2 debugging section. The field NORMAL is the normal
|
||||
Index: gdb-7.5.50.20130215/gdb/testsuite/lib/gdb.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/gdb.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/testsuite/lib/gdb.exp 2013-02-15 22:31:37.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/testsuite/lib/gdb.exp 2013-02-15 22:35:03.289219870 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/lib/gdb.exp 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/gdb.exp 2013-08-02 17:07:28.446753308 +0200
|
||||
@@ -1482,6 +1482,16 @@ proc default_gdb_start { } {
|
||||
warning "Couldn't set the width to 0."
|
||||
}
|
||||
@@ -998,13 +1045,13 @@ Index: gdb-7.5.50.20130215/gdb/testsuite/lib/gdb.exp
|
||||
+ warning "Could not disable the missing debug infos warnings.."
|
||||
+ }
|
||||
+ }
|
||||
return 0;
|
||||
return 0
|
||||
}
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/testsuite/lib/mi-support.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/mi-support.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/testsuite/lib/mi-support.exp 2013-01-22 00:57:59.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/testsuite/lib/mi-support.exp 2013-02-15 22:35:03.289219870 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/lib/mi-support.exp 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/mi-support.exp 2013-08-02 17:07:28.447753310 +0200
|
||||
@@ -212,6 +212,16 @@ proc default_mi_gdb_start { args } {
|
||||
warning "Couldn't set the width to 0."
|
||||
}
|
||||
@@ -1022,11 +1069,11 @@ Index: gdb-7.5.50.20130215/gdb/testsuite/lib/mi-support.exp
|
||||
# If allowing the inferior to have its own PTY then assign the inferior
|
||||
# its own terminal device here.
|
||||
if { $separate_inferior_pty } {
|
||||
Index: gdb-7.5.50.20130215/gdb/objfiles.h
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/objfiles.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/objfiles.h 2013-01-01 07:32:47.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/objfiles.h 2013-02-15 22:35:03.290219872 +0100
|
||||
@@ -432,6 +432,10 @@ struct objfile
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/objfiles.h 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/objfiles.h 2013-08-02 17:07:28.447753310 +0200
|
||||
@@ -429,6 +429,10 @@ struct objfile
|
||||
|
||||
#define OBJF_MAINLINE (1 << 5)
|
||||
|
||||
@@ -1037,11 +1084,11 @@ Index: gdb-7.5.50.20130215/gdb/objfiles.h
|
||||
/* The object file that contains the runtime common minimal symbols
|
||||
for SunOS4. Note that this objfile has no associated BFD. */
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.base/corefile.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/corefile.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/testsuite/gdb.base/corefile.exp 2013-01-01 07:33:25.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/testsuite/gdb.base/corefile.exp 2013-02-15 22:35:03.290219872 +0100
|
||||
@@ -256,3 +256,33 @@ if ![is_remote target] {
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/corefile.exp 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/corefile.exp 2013-08-02 17:07:28.447753310 +0200
|
||||
@@ -255,3 +255,33 @@ if ![is_remote target] {
|
||||
|
||||
gdb_exit
|
||||
}
|
||||
|
Reference in New Issue
Block a user