This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: RFA: [dwarf2read.c] Avoid using section index if not yet set



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]