From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Blandy To: Fernando Nasser Cc: gdb-patches@sources.redhat.com Subject: Re: RFA: [dwarf2read.c] Avoid using section index if not yet set Date: Fri, 11 May 2001 13:38:00 -0000 Message-id: References: <3AFB90A7.D8F37C43@redhat.com> X-SW-Source: 2001-05/msg00242.html This patch is not approved. At the moment, GDB isn't really designed to read debug info from .o files. I have no objection to enhancing GDB to provide this support, but it's ridiculous to try to do it by running GDB, looking to see where it crashes, and adding `if' statements to keep that code from being executed. The author of the patch needs to provide a complete story explaining how loading .o files will work. In particular, I want to know how they will provide values for undefined symbols referenced in the .o file. The absence of a coherent answer to that question is the underlying cause of the crash this patch attempts to plaster over. > * dwarf2read.c (new_symbol): Do not attempt to use the section > index of a symbol if it is not yet set. > > Index: dwarf2read.c > =================================================================== > RCS file: /cvs/src/src/gdb/dwarf2read.c,v > retrieving revision 1.24 > diff -c -p -r1.24 dwarf2read.c > *** dwarf2read.c 2001/04/30 10:30:27 1.24 > --- dwarf2read.c 2001/05/10 23:06:28 > *************** new_symbol (struct die_info *die, struct > *** 4195,4203 **** > if (SYMBOL_VALUE_ADDRESS (sym)) > { > fixup_symbol_section (sym, objfile); > ! SYMBOL_VALUE_ADDRESS (sym) += > ! ANOFFSET (objfile->section_offsets, > ! SYMBOL_SECTION (sym)); > SYMBOL_CLASS (sym) = LOC_STATIC; > } > else > --- 4195,4204 ---- > if (SYMBOL_VALUE_ADDRESS (sym)) > { > fixup_symbol_section (sym, objfile); > ! if (SYMBOL_SECTION (sym) != -1) > ! SYMBOL_VALUE_ADDRESS (sym) += > ! ANOFFSET (objfile->section_offsets, > ! SYMBOL_SECTION (sym)); > SYMBOL_CLASS (sym) = LOC_STATIC; > } > else