* Fri Aug 6 2010 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.1.90.20100806-7.fc14

- Fix gcore from very small terminal windows (BZ 555076).
- Fix false `filesystem' debuginfo rpm request (BZ 599598).
This commit is contained in:
Jan Kratochvil 2010-08-06 18:40:59 +02:00
parent 5abe5add8a
commit fc20e6331a
7 changed files with 157 additions and 134 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
gdb-7.1.90.20100721.tar.bz2
gdb-7.1.90.20100806.tar.bz2

View File

@ -13,8 +13,8 @@
Index: gdb-7.1.90.20100721/gdb/doc/gdb.texinfo
===================================================================
--- gdb-7.1.90.20100721.orig/gdb/doc/gdb.texinfo 2010-07-22 11:57:09.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/doc/gdb.texinfo 2010-07-22 11:57:34.000000000 +0200
--- gdb-7.1.90.20100721.orig/gdb/doc/gdb.texinfo 2010-07-23 20:58:52.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/doc/gdb.texinfo 2010-07-23 20:59:15.000000000 +0200
@@ -998,6 +998,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.
@ -30,8 +30,8 @@ Index: gdb-7.1.90.20100721/gdb/doc/gdb.texinfo
@node Mode Options
Index: gdb-7.1.90.20100721/gdb/main.c
===================================================================
--- gdb-7.1.90.20100721.orig/gdb/main.c 2010-07-22 11:57:10.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/main.c 2010-07-22 11:57:49.000000000 +0200
--- gdb-7.1.90.20100721.orig/gdb/main.c 2010-07-23 20:58:55.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/main.c 2010-07-23 20:59:15.000000000 +0200
@@ -391,6 +391,7 @@ captured_main (void *data)
{"xdb", no_argument, &xdb_commands, 1},
{"dbx", no_argument, &dbx_commands, 1},
@ -50,8 +50,8 @@ Index: gdb-7.1.90.20100721/gdb/main.c
--se=FILE Use FILE as symbol file and executable file.\n\
Index: gdb-7.1.90.20100721/gdb/symfile.c
===================================================================
--- gdb-7.1.90.20100721.orig/gdb/symfile.c 2010-07-22 11:57:09.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/symfile.c 2010-07-22 11:57:34.000000000 +0200
--- gdb-7.1.90.20100721.orig/gdb/symfile.c 2010-07-23 20:58:52.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/symfile.c 2010-07-23 20:59:15.000000000 +0200
@@ -80,6 +80,7 @@ static void clear_symtab_users_cleanup (
/* Global variables owned by this file */
@ -62,17 +62,17 @@ Index: gdb-7.1.90.20100721/gdb/symfile.c
Index: gdb-7.1.90.20100721/gdb/dwarf2read.c
===================================================================
--- gdb-7.1.90.20100721.orig/gdb/dwarf2read.c 2010-07-22 11:57:10.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/dwarf2read.c 2010-07-22 11:58:05.000000000 +0200
@@ -53,6 +53,7 @@
#include "psympriv.h"
--- gdb-7.1.90.20100721.orig/gdb/dwarf2read.c 2010-07-23 20:58:53.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/dwarf2read.c 2010-07-23 20:59:26.000000000 +0200
@@ -54,6 +54,7 @@
#include "exceptions.h"
#include "gdb_stat.h"
#include "completer.h"
+#include "top.h"
#include <fcntl.h>
#include "gdb_string.h"
@@ -1282,8 +1283,9 @@ dwarf2_has_info (struct objfile *objfile
@@ -1283,8 +1284,9 @@ dwarf2_has_info (struct objfile *objfile
bfd_map_over_sections (objfile->obfd, dwarf2_locate_sections, NULL);
dwarf2_per_objfile->objfile = objfile;
}
@ -87,7 +87,7 @@ Index: gdb-7.1.90.20100721/gdb/dwarf2read.c
Index: gdb-7.1.90.20100721/gdb/top.h
===================================================================
--- gdb-7.1.90.20100721.orig/gdb/top.h 2010-04-07 18:54:39.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/top.h 2010-07-22 11:57:34.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/top.h 2010-07-23 20:59:15.000000000 +0200
@@ -61,6 +61,7 @@ extern void set_prompt (char *);
/* From random places. */

View File

@ -1,7 +1,7 @@
Index: gdb-7.1.90.20100721/gdb/event-top.c
Index: gdb-7.1.90.20100806/gdb/event-top.c
===================================================================
--- gdb-7.1.90.20100721.orig/gdb/event-top.c 2010-06-26 08:44:47.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/event-top.c 2010-07-22 11:58:24.000000000 +0200
--- gdb-7.1.90.20100806.orig/gdb/event-top.c 2010-08-06 17:42:01.000000000 +0200
+++ gdb-7.1.90.20100806/gdb/event-top.c 2010-08-06 17:42:05.000000000 +0200
@@ -33,6 +33,7 @@
#include "cli/cli-script.h" /* for reset_command_nest_depth */
#include "main.h"
@ -28,10 +28,10 @@ Index: gdb-7.1.90.20100721/gdb/event-top.c
/* Each interpreter has its own rules on displaying the command
prompt. */
if (!current_interp_display_prompt_p ())
Index: gdb-7.1.90.20100721/gdb/elfread.c
Index: gdb-7.1.90.20100806/gdb/elfread.c
===================================================================
--- gdb-7.1.90.20100721.orig/gdb/elfread.c 2010-07-22 11:58:14.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/elfread.c 2010-07-22 11:58:24.000000000 +0200
--- gdb-7.1.90.20100806.orig/gdb/elfread.c 2010-08-06 17:42:01.000000000 +0200
+++ gdb-7.1.90.20100806/gdb/elfread.c 2010-08-06 18:11:49.000000000 +0200
@@ -42,6 +42,7 @@
#include "gdbcore.h"
#include "gdbcmd.h"
@ -40,7 +40,7 @@ Index: gdb-7.1.90.20100721/gdb/elfread.c
extern void _initialize_elfread (void);
@@ -1371,8 +1372,353 @@ build_id_to_filename (struct build_id *b
@@ -1371,8 +1372,357 @@ build_id_to_filename (struct build_id *b
return retval;
}
@ -113,8 +113,12 @@ Index: gdb-7.1.90.20100721/gdb/elfread.c
+# define rpmtsInitIterator_p rpmtsInitIterator
+#endif /* !DLOPEN_LIBRPM */
+
+ if (filename == NULL)
+ return 0;
+ gdb_assert (filename != NULL);
+ if (filename[0] != '/')
+ {
+ warning (_("Ignoring non-absolute filename: <%s>"), filename);
+ return 0;
+ }
+
+ if (!rpm_init_done)
+ {
@ -395,7 +399,7 @@ Index: gdb-7.1.90.20100721/gdb/elfread.c
avoidance. */
struct missing_filepair
@@ -1426,11 +1772,17 @@ missing_filepair_change (void)
@@ -1426,11 +1776,17 @@ missing_filepair_change (void)
/* All their memory came just from missing_filepair_OBSTACK. */
missing_filepair_hash = NULL;
}
@ -413,7 +417,7 @@ Index: gdb-7.1.90.20100721/gdb/elfread.c
missing_filepair_change ();
}
@@ -1497,14 +1849,34 @@ debug_print_missing (const char *binary,
@@ -1497,14 +1853,35 @@ debug_print_missing (const char *binary,
*slot = missing_filepair;
@ -439,7 +443,8 @@ Index: gdb-7.1.90.20100721/gdb/elfread.c
+ }
+ }
+ if (missing_exec != MISSING_EXEC_ENLISTED)
+ if (missing_rpm_enlist (binary) == 0 && missing_rpm_enlist (debug) == 0)
+ if ((binary[0] == 0 || missing_rpm_enlist (binary) == 0)
+ && (debug == NULL || missing_rpm_enlist (debug) == 0))
+#endif /* HAVE_LIBRPM */
+ {
+ /* We do not collect and flush these messages as each such message
@ -455,10 +460,10 @@ Index: gdb-7.1.90.20100721/gdb/elfread.c
}
static char *
Index: gdb-7.1.90.20100721/gdb/symfile.h
Index: gdb-7.1.90.20100806/gdb/symfile.h
===================================================================
--- gdb-7.1.90.20100721.orig/gdb/symfile.h 2010-07-22 11:58:14.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/symfile.h 2010-07-22 11:58:24.000000000 +0200
--- gdb-7.1.90.20100806.orig/gdb/symfile.h 2010-08-06 17:42:01.000000000 +0200
+++ gdb-7.1.90.20100806/gdb/symfile.h 2010-08-06 17:42:05.000000000 +0200
@@ -577,6 +577,7 @@ extern struct build_id *build_id_addr_ge
extern char *build_id_to_filename (struct build_id *build_id,
char **link_return, int add_debug_suffix);
@ -467,10 +472,10 @@ Index: gdb-7.1.90.20100721/gdb/symfile.h
/* From dwarf2read.c */
Index: gdb-7.1.90.20100721/gdb/testsuite/lib/gdb.exp
Index: gdb-7.1.90.20100806/gdb/testsuite/lib/gdb.exp
===================================================================
--- gdb-7.1.90.20100721.orig/gdb/testsuite/lib/gdb.exp 2010-07-22 11:58:14.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/testsuite/lib/gdb.exp 2010-07-22 11:58:24.000000000 +0200
--- gdb-7.1.90.20100806.orig/gdb/testsuite/lib/gdb.exp 2010-08-06 17:42:01.000000000 +0200
+++ gdb-7.1.90.20100806/gdb/testsuite/lib/gdb.exp 2010-08-06 17:42:05.000000000 +0200
@@ -1359,7 +1359,7 @@ proc default_gdb_start { } {
warning "Couldn't set the width to 0."
}
@ -480,10 +485,10 @@ Index: gdb-7.1.90.20100721/gdb/testsuite/lib/gdb.exp
send_gdb "set build-id-verbose 0\n"
gdb_expect 10 {
-re "$gdb_prompt $" {
Index: gdb-7.1.90.20100721/gdb/testsuite/lib/mi-support.exp
Index: gdb-7.1.90.20100806/gdb/testsuite/lib/mi-support.exp
===================================================================
--- gdb-7.1.90.20100721.orig/gdb/testsuite/lib/mi-support.exp 2010-07-22 11:58:14.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/testsuite/lib/mi-support.exp 2010-07-22 11:58:24.000000000 +0200
--- gdb-7.1.90.20100806.orig/gdb/testsuite/lib/mi-support.exp 2010-08-06 17:42:01.000000000 +0200
+++ gdb-7.1.90.20100806/gdb/testsuite/lib/mi-support.exp 2010-08-06 17:42:05.000000000 +0200
@@ -221,7 +221,7 @@ proc default_mi_gdb_start { args } {
}
}
@ -493,10 +498,10 @@ Index: gdb-7.1.90.20100721/gdb/testsuite/lib/mi-support.exp
send_gdb "190-gdb-set build-id-verbose 0\n"
gdb_expect 10 {
-re ".*190-gdb-set build-id-verbose 0\r\n190\\\^done\r\n$mi_gdb_prompt$" {
Index: gdb-7.1.90.20100721/gdb/tui/tui-interp.c
Index: gdb-7.1.90.20100806/gdb/tui/tui-interp.c
===================================================================
--- gdb-7.1.90.20100721.orig/gdb/tui/tui-interp.c 2010-05-18 00:21:43.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/tui/tui-interp.c 2010-07-22 11:58:24.000000000 +0200
--- gdb-7.1.90.20100806.orig/gdb/tui/tui-interp.c 2010-08-06 17:42:01.000000000 +0200
+++ gdb-7.1.90.20100806/gdb/tui/tui-interp.c 2010-08-06 17:42:05.000000000 +0200
@@ -30,6 +30,7 @@
#include "tui/tui.h"
#include "tui/tui-io.h"
@ -514,10 +519,10 @@ Index: gdb-7.1.90.20100721/gdb/tui/tui-interp.c
/* Tell readline what the prompt to display is and what function
it will need to call after a whole line is read. This also
displays the first prompt. */
Index: gdb-7.1.90.20100721/gdb/aclocal.m4
Index: gdb-7.1.90.20100806/gdb/aclocal.m4
===================================================================
--- gdb-7.1.90.20100721.orig/gdb/aclocal.m4 2010-05-23 02:56:59.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/aclocal.m4 2010-07-22 11:58:24.000000000 +0200
--- gdb-7.1.90.20100806.orig/gdb/aclocal.m4 2010-08-06 17:42:01.000000000 +0200
+++ gdb-7.1.90.20100806/gdb/aclocal.m4 2010-08-06 17:42:05.000000000 +0200
@@ -19,6 +19,162 @@ You have another version of autoconf. I
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])])
@ -681,10 +686,10 @@ Index: gdb-7.1.90.20100721/gdb/aclocal.m4
# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
Index: gdb-7.1.90.20100721/gdb/config.in
Index: gdb-7.1.90.20100806/gdb/config.in
===================================================================
--- gdb-7.1.90.20100721.orig/gdb/config.in 2010-07-22 11:57:09.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/config.in 2010-07-22 11:58:24.000000000 +0200
--- gdb-7.1.90.20100806.orig/gdb/config.in 2010-08-06 17:42:01.000000000 +0200
+++ gdb-7.1.90.20100806/gdb/config.in 2010-08-06 17:42:05.000000000 +0200
@@ -46,6 +46,9 @@
/* Define to BFD's default target vector. */
#undef DEFAULT_BFD_VEC
@ -705,10 +710,10 @@ Index: gdb-7.1.90.20100721/gdb/config.in
/* Define if libunwind library is being used. */
#undef HAVE_LIBUNWIND
Index: gdb-7.1.90.20100721/gdb/configure
Index: gdb-7.1.90.20100806/gdb/configure
===================================================================
--- gdb-7.1.90.20100721.orig/gdb/configure 2010-07-22 11:57:09.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/configure 2010-07-22 11:59:13.000000000 +0200
--- gdb-7.1.90.20100806.orig/gdb/configure 2010-08-06 17:42:01.000000000 +0200
+++ gdb-7.1.90.20100806/gdb/configure 2010-08-06 17:42:05.000000000 +0200
@@ -679,6 +679,9 @@ REPORT_BUGS_TO
PKGVERSION
TARGET_OBS
@ -1242,10 +1247,10 @@ Index: gdb-7.1.90.20100721/gdb/configure
Index: gdb-7.1.90.20100721/gdb/configure.ac
Index: gdb-7.1.90.20100806/gdb/configure.ac
===================================================================
--- gdb-7.1.90.20100721.orig/gdb/configure.ac 2010-07-22 11:57:09.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/configure.ac 2010-07-22 11:59:04.000000000 +0200
--- gdb-7.1.90.20100806.orig/gdb/configure.ac 2010-08-06 17:42:01.000000000 +0200
+++ gdb-7.1.90.20100806/gdb/configure.ac 2010-08-06 17:42:05.000000000 +0200
@@ -152,6 +152,198 @@ else
fi
AC_SUBST(pythondir)
@ -1445,10 +1450,10 @@ Index: gdb-7.1.90.20100721/gdb/configure.ac
AC_CONFIG_SUBDIRS(doc testsuite)
Index: gdb-7.1.90.20100721/gdb/acinclude.m4
Index: gdb-7.1.90.20100806/gdb/acinclude.m4
===================================================================
--- gdb-7.1.90.20100721.orig/gdb/acinclude.m4 2010-05-27 05:40:45.000000000 +0200
+++ gdb-7.1.90.20100721/gdb/acinclude.m4 2010-07-22 11:58:24.000000000 +0200
--- gdb-7.1.90.20100806.orig/gdb/acinclude.m4 2010-08-06 17:42:01.000000000 +0200
+++ gdb-7.1.90.20100806/gdb/acinclude.m4 2010-08-06 17:42:05.000000000 +0200
@@ -1,3 +1,5 @@
+# serial 1
+

View File

@ -2,7 +2,7 @@ http://sourceware.org/gdb/wiki/ProjectArcher
http://sourceware.org/gdb/wiki/ArcherBranchManagement
GIT snapshot:
commit 202f4d0e3af8d8a8d7c0b408d9e0a8cb69f912b6
commit af507f71e376b19f8ee9d54067924790566440e8
branch `archer' - the merge of branches:
archer-jankratochvil-vla
@ -1528,20 +1528,6 @@ index 9300544..380473a 100644
ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
# Flags needed to compile Python code (taken from python-config --cflags).
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 04f1683..a2a6e30 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,5 +1,9 @@
2010-07-13 Tom Tromey <tromey@redhat.com>
+ * gdb.texinfo (Index Files): New node.
+
+2010-07-13 Tom Tromey <tromey@redhat.com>
+
* gdb.texinfo (GDB/MI Variable Objects): Remove extra 'for'.
2010-07-01 Pedro Alves <pedro@codesourcery.com>
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 1297175..c030b65 100644
--- a/gdb/doc/gdb.texinfo
@ -2246,19 +2232,20 @@ index 826bc45..1e7d8dc 100644
#endif /* dwarf2loc.h */
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 16381de..31a7d83 100644
index 16381de..e286f4c 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -51,6 +51,8 @@
@@ -51,6 +51,9 @@
#include "typeprint.h"
#include "jv-lang.h"
#include "psympriv.h"
+#include "exceptions.h"
+#include "gdb_stat.h"
+#include "completer.h"
#include <fcntl.h>
#include "gdb_string.h"
@@ -129,6 +131,33 @@ struct dwarf2_section_info
@@ -129,6 +132,33 @@ struct dwarf2_section_info
int readin;
};
@ -2292,7 +2279,7 @@ index 16381de..31a7d83 100644
struct dwarf2_per_objfile
{
struct dwarf2_section_info info;
@@ -141,6 +170,7 @@ struct dwarf2_per_objfile
@@ -141,6 +171,7 @@ struct dwarf2_per_objfile
struct dwarf2_section_info types;
struct dwarf2_section_info frame;
struct dwarf2_section_info eh_frame;
@ -2300,7 +2287,7 @@ index 16381de..31a7d83 100644
/* Back link. */
struct objfile *objfile;
@@ -163,6 +193,12 @@ struct dwarf2_per_objfile
@@ -163,6 +194,12 @@ struct dwarf2_per_objfile
/* A flag indicating wether this objfile has a section loaded at a
VMA of 0. */
int has_section_at_zero;
@ -2313,7 +2300,7 @@ index 16381de..31a7d83 100644
};
static struct dwarf2_per_objfile *dwarf2_per_objfile;
@@ -182,6 +218,7 @@ static struct dwarf2_per_objfile *dwarf2_per_objfile;
@@ -182,6 +219,7 @@ static struct dwarf2_per_objfile *dwarf2_per_objfile;
#define TYPES_SECTION "debug_types"
#define FRAME_SECTION "debug_frame"
#define EH_FRAME_SECTION "eh_frame"
@ -2321,7 +2308,7 @@ index 16381de..31a7d83 100644
/* local data types */
@@ -307,6 +344,32 @@ struct dwarf2_cu
@@ -307,6 +345,32 @@ struct dwarf2_cu
unsigned int has_namespace_info : 1;
};
@ -2354,7 +2341,7 @@ index 16381de..31a7d83 100644
/* Persistent data held for a compilation unit, even when not
processing it. We put a pointer to this structure in the
read_symtab_private field of the psymtab. If we encounter
@@ -347,10 +410,21 @@ struct dwarf2_per_cu_data
@@ -347,10 +411,21 @@ struct dwarf2_per_cu_data
it. */
htab_t type_hash;
@ -2380,7 +2367,7 @@ index 16381de..31a7d83 100644
};
/* Entry in the signatured_types hash table. */
@@ -1083,6 +1157,9 @@ static int attr_form_is_section_offset (struct attribute *);
@@ -1083,6 +1158,9 @@ static int attr_form_is_section_offset (struct attribute *);
static int attr_form_is_constant (struct attribute *);
@ -2390,7 +2377,7 @@ index 16381de..31a7d83 100644
static void dwarf2_symbol_mark_computed (struct attribute *attr,
struct symbol *sym,
struct dwarf2_cu *cu);
@@ -1113,6 +1190,9 @@ static void age_cached_comp_units (void);
@@ -1113,6 +1191,9 @@ static void age_cached_comp_units (void);
static void free_one_cached_comp_unit (void *);
@ -2400,7 +2387,7 @@ index 16381de..31a7d83 100644
static struct type *set_die_type (struct die_info *, struct type *,
struct dwarf2_cu *);
@@ -1132,6 +1212,56 @@ static void dwarf2_clear_marks (struct dwarf2_per_cu_data *);
@@ -1132,6 +1213,56 @@ static void dwarf2_clear_marks (struct dwarf2_per_cu_data *);
static struct type *get_die_type (struct die_info *die, struct dwarf2_cu *cu);
@ -2457,7 +2444,7 @@ index 16381de..31a7d83 100644
/* Try to locate the sections we need for DWARF 2 debugging
information and return true if we have enough to do something. */
@@ -1230,6 +1360,11 @@ dwarf2_locate_sections (bfd *abfd, asection *sectp, void *ignore_ptr)
@@ -1230,6 +1361,11 @@ dwarf2_locate_sections (bfd *abfd, asection *sectp, void *ignore_ptr)
dwarf2_per_objfile->types.asection = sectp;
dwarf2_per_objfile->types.size = bfd_get_section_size (sectp);
}
@ -2469,17 +2456,13 @@ index 16381de..31a7d83 100644
if ((bfd_get_section_flags (abfd, sectp) & SEC_LOAD)
&& bfd_section_vma (abfd, sectp) == 0)
@@ -1349,91 +1484,944 @@ dwarf2_read_section (struct objfile *objfile, struct dwarf2_section_info *info)
}
}
@@ -1353,87 +1489,940 @@ dwarf2_read_section (struct objfile *objfile, struct dwarf2_section_info *info)
if (pagesize == 0)
pagesize = getpagesize ();
-#ifdef HAVE_MMAP
- if (pagesize == 0)
- pagesize = getpagesize ();
+#ifdef HAVE_MMAP
+ if (pagesize == 0)
+ pagesize = getpagesize ();
+
- /* Only try to mmap sections which are large enough: we don't want to
- waste space due to fragmentation. Also, only try mmap for sections
- without relocations. */
+ /* Only try to mmap sections which are large enough: we don't want to
+ waste space due to fragmentation. Also, only try mmap for sections
+ without relocations. */
@ -3296,13 +3279,10 @@ index 16381de..31a7d83 100644
+ offset_type iter;
+ dw2_setup (objfile);
- /* Only try to mmap sections which are large enough: we don't want to
- waste space due to fragmentation. Also, only try mmap for sections
- without relocations. */
- if (info->size > 4 * pagesize && (sectp->flags & SEC_RELOC) == 0)
+ if (!dwarf2_per_objfile->index_table)
+ return;
- if (info->size > 4 * pagesize && (sectp->flags & SEC_RELOC) == 0)
+
+ for (iter = 0;
+ iter < dwarf2_per_objfile->index_table->index_table_slots;
+ ++iter)
@ -3479,7 +3459,15 @@ index 16381de..31a7d83 100644
/* Build a partial symbol table. */
void
@@ -1897,7 +2885,7 @@ process_psymtab_comp_unit (struct objfile *objfile,
@@ -1699,6 +2688,7 @@ create_debug_types_hash_table (struct objfile *objfile)
type_sig->signature = signature;
type_sig->offset = offset;
type_sig->type_offset = type_offset;
+ type_sig->per_cu.objfile = objfile;
slot = htab_find_slot (types_htab, type_sig, INSERT);
gdb_assert (slot != NULL);
@@ -1897,7 +2887,7 @@ process_psymtab_comp_unit (struct objfile *objfile,
/* Store the function that reads in the rest of the symbol table */
pst->read_symtab = dwarf2_psymtab_to_symtab;
@ -3488,7 +3476,7 @@ index 16381de..31a7d83 100644
dwarf2_find_base_address (comp_unit_die, &cu);
@@ -2182,6 +3170,7 @@ create_all_comp_units (struct objfile *objfile)
@@ -2182,6 +3172,7 @@ create_all_comp_units (struct objfile *objfile)
memset (this_cu, 0, sizeof (*this_cu));
this_cu->offset = offset;
this_cu->length = length + initial_length_size;
@ -3496,7 +3484,7 @@ index 16381de..31a7d83 100644
if (n_comp_units == n_allocated)
{
@@ -2613,7 +3602,7 @@ add_partial_subprogram (struct partial_die_info *pdi,
@@ -2613,7 +3604,7 @@ add_partial_subprogram (struct partial_die_info *pdi,
addrmap_set_empty (objfile->psymtabs_addrmap,
pdi->lowpc + baseaddr,
pdi->highpc - 1 + baseaddr,
@ -3505,7 +3493,7 @@ index 16381de..31a7d83 100644
}
if (!pdi->is_declaration)
/* Ignore subprogram DIEs that do not have a name, they are
@@ -2885,7 +3874,6 @@ locate_pdi_sibling (struct partial_die_info *orig_pdi,
@@ -2885,7 +3876,6 @@ locate_pdi_sibling (struct partial_die_info *orig_pdi,
static void
dwarf2_psymtab_to_symtab (struct partial_symtab *pst)
{
@ -3513,7 +3501,7 @@ index 16381de..31a7d83 100644
if (pst != NULL)
{
if (pst->readin)
@@ -2958,7 +3946,9 @@ process_queue (struct objfile *objfile)
@@ -2958,7 +3948,9 @@ process_queue (struct objfile *objfile)
may load a new CU, adding it to the end of the queue. */
for (item = dwarf2_queue; item != NULL; dwarf2_queue = item = next_item)
{
@ -3524,7 +3512,7 @@ index 16381de..31a7d83 100644
process_full_comp_unit (item->per_cu);
item->per_cu->queued = 0;
@@ -3035,22 +4025,7 @@ psymtab_to_symtab_1 (struct partial_symtab *pst)
@@ -3035,22 +4027,7 @@ psymtab_to_symtab_1 (struct partial_symtab *pst)
return;
}
@ -3548,7 +3536,7 @@ index 16381de..31a7d83 100644
}
/* Load the DIEs associated with PER_CU into memory. */
@@ -3130,9 +4105,8 @@ load_full_comp_unit (struct dwarf2_per_cu_data *per_cu, struct objfile *objfile)
@@ -3130,9 +4107,8 @@ load_full_comp_unit (struct dwarf2_per_cu_data *per_cu, struct objfile *objfile)
static void
process_full_comp_unit (struct dwarf2_per_cu_data *per_cu)
{
@ -3559,7 +3547,7 @@ index 16381de..31a7d83 100644
CORE_ADDR lowpc, highpc;
struct symtab *symtab;
struct cleanup *back_to;
@@ -3165,8 +4139,15 @@ process_full_comp_unit (struct dwarf2_per_cu_data *per_cu)
@@ -3165,8 +4141,15 @@ process_full_comp_unit (struct dwarf2_per_cu_data *per_cu)
{
symtab->language = cu->language;
}
@ -3577,7 +3565,7 @@ index 16381de..31a7d83 100644
do_cleanups (back_to);
}
@@ -3559,6 +4540,46 @@ free_cu_line_header (void *arg)
@@ -3559,6 +4542,46 @@ free_cu_line_header (void *arg)
}
static void
@ -3624,7 +3612,7 @@ index 16381de..31a7d83 100644
read_file_scope (struct die_info *die, struct dwarf2_cu *cu)
{
struct objfile *objfile = cu->objfile;
@@ -3584,35 +4605,7 @@ read_file_scope (struct die_info *die, struct dwarf2_cu *cu)
@@ -3584,35 +4607,7 @@ read_file_scope (struct die_info *die, struct dwarf2_cu *cu)
lowpc += baseaddr;
highpc += baseaddr;
@ -3661,7 +3649,7 @@ index 16381de..31a7d83 100644
attr = dwarf2_attr (die, DW_AT_language, cu);
if (attr)
@@ -5531,6 +6524,29 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu)
@@ -5531,6 +6526,29 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu)
new_symbol (die, this_type, cu);
}
@ -3691,7 +3679,7 @@ index 16381de..31a7d83 100644
/* Extract all information from a DW_TAG_array_type DIE and put it in
the DIE's type field. For now, this only handles one dimensional
arrays. */
@@ -5544,7 +6560,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -5544,7 +6562,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
struct type *element_type, *range_type, *index_type;
struct type **range_types = NULL;
struct attribute *attr;
@ -3700,7 +3688,7 @@ index 16381de..31a7d83 100644
struct cleanup *back_to;
char *name;
@@ -5597,17 +6613,11 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -5597,17 +6615,11 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
type = element_type;
if (read_array_order (die, cu) == DW_ORD_col_major)
@ -3723,7 +3711,7 @@ index 16381de..31a7d83 100644
/* Understand Dwarf2 support for vector types (like they occur on
the PowerPC w/ AltiVec). Gcc just adds another attribute to the
@@ -6061,29 +7071,114 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -6061,29 +7073,114 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
struct gdbarch *gdbarch = get_objfile_arch (objfile);
struct type *type, *range_type, *index_type, *char_type;
struct attribute *attr;
@ -3852,7 +3840,7 @@ index 16381de..31a7d83 100644
char_type = language_string_char_type (cu->language_defn, gdbarch);
type = create_string_type (NULL, char_type, range_type);
@@ -6326,60 +7421,136 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -6326,60 +7423,136 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
struct type *base_type;
struct type *range_type;
struct attribute *attr;
@ -4023,7 +4011,7 @@ index 16381de..31a7d83 100644
}
/* Dwarf-2 specifications explicitly allows to create subrange types
@@ -6421,20 +7592,41 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -6421,20 +7594,41 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
}
}
@ -4077,7 +4065,7 @@ index 16381de..31a7d83 100644
name = dwarf2_name (die, cu);
if (name)
@@ -8714,10 +9906,12 @@ var_decode_location (struct attribute *attr, struct symbol *sym,
@@ -8714,10 +9908,12 @@ var_decode_location (struct attribute *attr, struct symbol *sym,
(i.e. when the value of a register or memory location is
referenced, or a thread-local block, etc.). Then again, it might
not be worthwhile. I'm assuming that it isn't unless performance
@ -4092,7 +4080,7 @@ index 16381de..31a7d83 100644
}
/* Given a pointer to a DWARF information entry, figure out if we need
@@ -8748,6 +9942,8 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
@@ -8748,6 +9944,8 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
sizeof (struct symbol));
OBJSTAT (objfile, n_syms++);
memset (sym, 0, sizeof (struct symbol));
@ -4101,7 +4089,7 @@ index 16381de..31a7d83 100644
/* Cache this symbol's name and the name's demangled form (if any). */
SYMBOL_LANGUAGE (sym) = cu->language;
@@ -9379,6 +10575,9 @@ read_type_die (struct die_info *die, struct dwarf2_cu *cu)
@@ -9379,6 +10577,9 @@ read_type_die (struct die_info *die, struct dwarf2_cu *cu)
break;
}
@ -4111,7 +4099,7 @@ index 16381de..31a7d83 100644
return this_type;
}
@@ -11983,67 +13182,102 @@ attr_form_is_constant (struct attribute *attr)
@@ -11983,67 +13184,102 @@ attr_form_is_constant (struct attribute *attr)
}
}
@ -4263,7 +4251,7 @@ index 16381de..31a7d83 100644
}
}
@@ -12054,7 +13288,7 @@ dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym,
@@ -12054,7 +13290,7 @@ dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym,
struct objfile *
dwarf2_per_cu_objfile (struct dwarf2_per_cu_data *per_cu)
{
@ -4272,7 +4260,7 @@ index 16381de..31a7d83 100644
/* Return the master objfile, so that we can report and look up the
correct file containing this variable. */
@@ -12074,7 +13308,7 @@ dwarf2_per_cu_addr_size (struct dwarf2_per_cu_data *per_cu)
@@ -12074,7 +13310,7 @@ dwarf2_per_cu_addr_size (struct dwarf2_per_cu_data *per_cu)
else
{
/* If the CU is not currently read in, we re-read its header. */
@ -4281,7 +4269,7 @@ index 16381de..31a7d83 100644
struct dwarf2_per_objfile *per_objfile
= objfile_data (objfile, dwarf2_objfile_data_key);
gdb_byte *info_ptr = per_objfile->info.buffer + per_cu->offset;
@@ -12096,7 +13330,7 @@ dwarf2_per_cu_offset_size (struct dwarf2_per_cu_data *per_cu)
@@ -12096,7 +13332,7 @@ dwarf2_per_cu_offset_size (struct dwarf2_per_cu_data *per_cu)
else
{
/* If the CU is not currently read in, we re-read its header. */
@ -4290,7 +4278,7 @@ index 16381de..31a7d83 100644
struct dwarf2_per_objfile *per_objfile
= objfile_data (objfile, dwarf2_objfile_data_key);
gdb_byte *info_ptr = per_objfile->info.buffer + per_cu->offset;
@@ -12116,7 +13350,7 @@ dwarf2_per_cu_offset_size (struct dwarf2_per_cu_data *per_cu)
@@ -12116,7 +13352,7 @@ dwarf2_per_cu_offset_size (struct dwarf2_per_cu_data *per_cu)
CORE_ADDR
dwarf2_per_cu_text_offset (struct dwarf2_per_cu_data *per_cu)
{
@ -4299,7 +4287,7 @@ index 16381de..31a7d83 100644
return ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
}
@@ -12338,6 +13572,30 @@ dwarf2_free_objfile (struct objfile *objfile)
@@ -12338,6 +13574,30 @@ dwarf2_free_objfile (struct objfile *objfile)
/* Cached DIE trees use xmalloc and the comp_unit_obstack. */
free_cached_comp_units (NULL);
@ -4330,7 +4318,7 @@ index 16381de..31a7d83 100644
/* Everything else should be on the objfile obstack. */
}
@@ -12372,6 +13630,31 @@ offset_and_type_eq (const void *item_lhs, const void *item_rhs)
@@ -12372,6 +13632,31 @@ offset_and_type_eq (const void *item_lhs, const void *item_rhs)
return ofs_lhs->offset == ofs_rhs->offset;
}
@ -4362,7 +4350,7 @@ index 16381de..31a7d83 100644
/* Set the type associated with DIE to TYPE. Save it in CU's hash
table if necessary. For convenience, return TYPE.
@@ -12395,6 +13678,8 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
@@ -12395,6 +13680,8 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
{
struct dwarf2_offset_and_type **slot, ofs;
@ -4371,7 +4359,7 @@ index 16381de..31a7d83 100644
/* For Ada types, make sure that the gnat-specific data is always
initialized (if not already set). There are a few types where
we should not be doing so, because the type-specific area is
@@ -12592,8 +13877,567 @@ dwarf2_per_objfile_free (struct objfile *objfile, void *d)
@@ -12592,8 +13879,567 @@ dwarf2_per_objfile_free (struct objfile *objfile, void *d)
munmap_section_buffer (&data->loc);
munmap_section_buffer (&data->frame);
munmap_section_buffer (&data->eh_frame);
@ -4537,8 +4525,8 @@ index 16381de..31a7d83 100644
+ return &symtab->data[index];
+ index = (index + step) & (symtab->size - 1);
+ }
+}
+
}
+/* Expand SYMTAB's hash table. */
+static void
+hash_expand (struct mapped_symtab *symtab)
@ -4907,7 +4895,7 @@ index 16381de..31a7d83 100644
+ struct objfile *objfile;
+
+ if (!arg || !*arg)
+ error (_("usage: maintenance save-gdb-index DIRECTORY"));
+ error (_("usage: save gdb-index DIRECTORY"));
+
+ ALL_OBJFILES (objfile)
+ {
@ -4932,21 +4920,31 @@ index 16381de..31a7d83 100644
+ objfile->name);
+ }
+ }
}
+}
+
+
+
int dwarf2_always_disassemble;
static void
@@ -12657,4 +14501,8 @@ The value is the maximum depth to print."),
@@ -12610,6 +14456,8 @@ void _initialize_dwarf2_read (void);
void
_initialize_dwarf2_read (void)
{
+ struct cmd_list_element *c;
+
dwarf2_objfile_data_key
= register_objfile_data_with_cleanup (NULL, dwarf2_per_objfile_free);
@@ -12657,4 +14505,9 @@ The value is the maximum depth to print."),
NULL,
NULL,
&setdebuglist, &showdebuglist);
+
+ add_cmd ("gdb-index", class_files, save_gdb_index_command,
+ _("Save a .gdb-index file"),
+ &save_cmdlist);
+ c = add_cmd ("gdb-index", class_files, save_gdb_index_command,
+ _("Save a .gdb-index file"),
+ &save_cmdlist);
+ set_cmd_completer (c, filename_completer);
}
diff --git a/gdb/elfread.c b/gdb/elfread.c
index 8c00938..a250c58 100644

View File

@ -0,0 +1,12 @@
--- a/gdb/gdb_gcore.sh
+++ b/gdb/gdb_gcore.sh
@@ -64,6 +64,9 @@ for pid in $*
do
# Write gdb script for pid $pid.
cat >>$tmpfile <<EOF
+set pagination off
+set width 0
+set height 0
attach $pid
gcore $name.$pid
detach

View File

@ -32,11 +32,11 @@ Name: gdb%{?_with_debug:-debug}
# Set version to contents of gdb/version.in.
# NOTE: the FSF gdb versions are numbered N.M for official releases, like 6.3
# and, since January 2005, X.Y.Z.date for daily snapshots, like 6.3.50.20050112 # (daily snapshot from mailine), or 6.3.0.20040112 (head of the release branch).
Version: 7.1.90.20100721
Version: 7.1.90.20100806
# 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: 6%{?_with_upstream:.upstream}%{dist}
Release: 7%{?_with_upstream:.upstream}%{dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and GFDL and BSD and Public Domain
Group: Development/Debuggers
@ -420,6 +420,9 @@ Patch489: gdb-bz614659-prelink-dynbss.patch
# Provide /usr/bin/gdb-add-index for rpm-build (Tom Tromey).
Patch491: gdb-gdb-add-index-script.patch
# Fix gcore from very small terminal windows (BZ 555076).
Patch493: gdb-bz555076-gcore-small-height.patch
BuildRequires: ncurses-devel%{?_isa} texinfo gettext flex bison expat-devel%{?_isa}
Requires: readline%{?_isa}
BuildRequires: readline-devel%{?_isa}
@ -671,6 +674,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
%patch415 -p1
%patch489 -p1
%patch491 -p1
%patch493 -p1
%patch393 -p1
%patch335 -p1
@ -999,6 +1003,10 @@ fi
%endif
%changelog
* Fri Aug 6 2010 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.1.90.20100806-7.fc14
- Fix gcore from very small terminal windows (BZ 555076).
- Fix false `filesystem' debuginfo rpm request (BZ 599598).
* Wed Jul 28 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 7.1.90.20100721-6.fc14
- Rebuild against python 2.7

View File

@ -1 +1 @@
26c6432521efa296bf8bdcae465c048b gdb-7.1.90.20100721.tar.bz2
37672a43bf094a9d64f252611e384524 gdb-7.1.90.20100806.tar.bz2