This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
.gdb_index version 4? [Re: [commit] fix symtab/12302]
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: Tom Tromey <tromey at redhat dot com>
- Cc: gdb-patches at sourceware dot org, Doug Evans <dje at google dot com>
- Date: Fri, 21 Jan 2011 14:19:56 +0100
- Subject: .gdb_index version 4? [Re: [commit] fix symtab/12302]
- References: <20101208191549.1E09C2461AD@ruffy.mtv.corp.google.com>
On Wed, 08 Dec 2010 20:15:49 +0100, Doug Evans wrote:
> fyi, I've committed this fix to symtab/12302.
> It changes address table generation to be a simple dump of the current
> addrmap.
This means there exist .gdb_indexes out there (such as whole Fedora 14) which
break GDB behavior (I could not list glibc sources today before -readnow).
Do you agree with upgrading the index version, Tom?
Also thanks for the fix, Doug.
Thanks,
Jan
gdb/
2011-01-21 Jan Kratochvil <jan.kratochvil@redhat.com>
* dwarf2read.c (dwarf2_read_index, write_psymtabs_to_index)
(save_gdb_index_command): Switch to .gdb_index version 4.
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -2024,13 +2024,14 @@ dwarf2_read_index (struct objfile *objfile)
/* Version check. */
version = MAYBE_SWAP (*(offset_type *) addr);
/* Versions earlier than 3 emitted every copy of a psymbol. This
- causes the index to behave very poorly for certain requests. So,
- it seems better to just ignore such indices. */
- if (version < 3)
+ causes the index to behave very poorly for certain requests. Version 4
+ contained incomplete addrmap. So, it seems better to just ignore such
+ indices. */
+ if (version < 4)
return 0;
/* Indexes with higher version than the one supported by GDB may be no
longer backward compatible. */
- if (version > 3)
+ if (version > 4)
return 0;
map = OBSTACK_ZALLOC (&objfile->objfile_obstack, struct mapped_index);
@@ -15688,7 +15689,7 @@ write_psymtabs_to_index (struct objfile *objfile, const char *dir)
total_len = size_of_contents;
/* The version number. */
- val = MAYBE_SWAP (3);
+ val = MAYBE_SWAP (4);
obstack_grow (&contents, &val, sizeof (val));
/* The offset of the CU list from the start of the file. */
@@ -15746,7 +15747,7 @@ write_psymtabs_to_index (struct objfile *objfile, const char *dir)
1. The file header. This is a sequence of values, of offset_type
unless otherwise noted:
- [0] The version number, currently 3. Versions 1 and 2 are
+ [0] The version number, currently 4. Versions 1, 2 and 3 are
obsolete.
[1] The offset, from the start of the file, of the CU list.
[2] The offset, from the start of the file, of the types CU list.