From: Andrew Cagney Date: Sat, 22 Jun 2002 16:49:33 +0000 (+0000) Subject: * NEWS: Mention below. X-Git-Tag: gdb_5_2_1-2002-07-23-release~43 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9986ed70c5e4c24dc90e712efe8b3b454da0e19a;p=thirdparty%2Fbinutils-gdb.git * NEWS: Mention below. Merge from mainline: 2002-05-12 Fred Fish : * symfile.c (default_symfile_offsets): Arrange for uninitialized sect_index_xxx members to index the first slot in section_offsets if all of the section_offsets are zero. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 69d7778ddd7..5bc9ff712a3 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +2002-06-22 Andrew Cagney + + * NEWS: Mention below. + + Merge from mainline: + 2002-05-12 Fred Fish : + * symfile.c (default_symfile_offsets): Arrange for uninitialized + sect_index_xxx members to index the first slot in section_offsets + if all of the section_offsets are zero. + 2002-06-20 Elena Zannoni * event-top.c (command_handler): Don't use space_at_cmd_start diff --git a/gdb/NEWS b/gdb/NEWS index 2e794a2036b..d7c0ad0c15d 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -13,6 +13,10 @@ gdb/182: gdb/323: gdb/237: On alpha, gdb was reporting: mdebugread.c:2443: gdb-internal-error: sect_index_data not initialized Fix, by Joel Brobecker imported from mainline. +gdb/439: gdb/291: On some ELF object files, gdb was reporting: +dwarf2read.c:1072: gdb-internal-error: sect_index_text not initialize +Fix, by Fred Fish, imported from mainline. + *** Changes in GDB 5.2: * New command "set trust-readonly-sections on[off]". diff --git a/gdb/symfile.c b/gdb/symfile.c index 8513d34e912..c3c18bff153 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -539,6 +539,34 @@ default_symfile_offsets (struct objfile *objfile, if (sect) objfile->sect_index_rodata = sect->index; + /* This is where things get really weird... We MUST have valid + indices for the various sect_index_* members or gdb will abort. + So if for example, there is no ".text" section, we have to + accomodate that. Except when explicitly adding symbol files at + some address, section_offsets contains nothing but zeros, so it + doesn't matter which slot in section_offsets the individual + sect_index_* members index into. So if they are all zero, it is + safe to just point all the currently uninitialized indices to the + first slot. */ + + for (i = 0; i < objfile->num_sections; i++) + { + if (ANOFFSET (objfile->section_offsets, i) != 0) + { + break; + } + } + if (i == objfile->num_sections) + { + if (objfile->sect_index_text == -1) + objfile->sect_index_text = 0; + if (objfile->sect_index_data == -1) + objfile->sect_index_data = 0; + if (objfile->sect_index_bss == -1) + objfile->sect_index_bss = 0; + if (objfile->sect_index_rodata == -1) + objfile->sect_index_rodata = 0; + } } /* Process a symbol file, as either the main file or as a dynamically