1 http://sourceware.org/ml/gdb-patches/2010-09/msg00183.html
2 Subject: [patch] .gdb_index: Do not crash on NOBITS
6 elfutils-0.148 still do not contain patch of its GIT
7 804e9ca4d644e64a6125307cbf0a0b89477d7611 where the .gdb_index section has been
8 also split into the separate debug info file.
10 Due to it binaries split using elfutils-0.148 contain
11 [38] .gdb_index NOBITS 0000000000000000 0000338c
13 [28] .gdb_index PROGBITS 0000000000000000 0000211c
15 and due to it GDB while reading the file can error() by:
16 Reading symbols from x.debug...Dwarf Error: Can't read DWARF data from 'x.debug'
18 which should not be fatal but due to some other bugs therein it can crash GDB.
20 The wrong separate debug info file is for example:
21 http://kojipkgs.fedoraproject.org/packages/glibc/2.12.90/10/x86_64/glibc-debuginfo-2.12.90-10.x86_64.rpm
22 /usr/lib/debug/lib64/libutil-2.12.90.so.debug
26 It does not attempt to use .gdb_index from the main binary, it will just
27 disable .gdb_index usage on these binaries.
34 http://sourceware.org/ml/gdb-cvs/2010-09/msg00062.html
36 ### src/gdb/ChangeLog 2010/09/08 19:09:42 1.12162
37 ### src/gdb/ChangeLog 2010/09/08 19:49:28 1.12163
39 +2010-09-08 Jan Kratochvil <jan.kratochvil@redhat.com>
41 + * dwarf2read.c (dwarf2_read_index): Return on no SEC_HAS_CONTENTS.
43 2010-09-08 Daniel Jacobowitz <dan@codesourcery.com>
45 * dwarf2read.c (read_structure_type): Move processing of
46 --- src/gdb/dwarf2read.c 2010/09/08 19:09:42 1.452
47 +++ src/gdb/dwarf2read.c 2010/09/08 19:49:28 1.453
48 @@ -1904,6 +1904,13 @@
49 if (dwarf2_per_objfile->gdb_index.asection == NULL
50 || dwarf2_per_objfile->gdb_index.size == 0)
53 + /* Older elfutils strip versions could keep the section in the main
54 + executable while splitting it for the separate debug info file. */
55 + if ((bfd_get_file_flags (dwarf2_per_objfile->gdb_index.asection)
56 + & SEC_HAS_CONTENTS) == 0)
59 dwarf2_read_section (objfile, &dwarf2_per_objfile->gdb_index);
61 addr = dwarf2_per_objfile->gdb_index.buffer;