This is the mail archive of the 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]
Other format: [Raw text]

[patch] Fix a buglet in elfread.c


GDB appears to make unwarranted assumptions about presence of .data,
.rodata in and ELF image.

In you can see an image
on Solaris which has .rodata, but no .data, and this causes

  elfread.c:366: internal-error: sect_index_data not initialized

when using /usr/lib/ from Solaris snv103 (SunOS 5.11) for SPARC.

Attached patch fixes that.


Paul Pluzhnikov

2009-04-30  Paul Pluzhnikov  <>

	* elfread.c (elf_symtab_read): Don't assume .data and .rodata
	are present.

Index: elfread.c
RCS file: /cvs/src/src/gdb/elfread.c,v
retrieving revision 1.76
diff -u -p -u -r1.76 elfread.c
--- elfread.c	3 Jan 2009 05:57:51 -0000	1.76
+++ elfread.c	30 Apr 2009 15:03:41 -0000
@@ -427,10 +427,11 @@ elf_symtab_read (struct objfile *objfile
 			  int max_index;
 			  size_t size;
-			  max_index 
-			    = max (SECT_OFF_BSS (objfile),
-				   max (SECT_OFF_DATA (objfile),
-					SECT_OFF_RODATA (objfile)));
+			  max_index = SECT_OFF_BSS (objfile);
+			  if (objfile->sect_index_data > max_index)
+			    max_index = objfile->sect_index_data;
+			  if (objfile->sect_index_rodata > max_index)
+			    max_index = objfile->sect_index_rodata;
 			  /* max_index is the largest index we'll
 			     use into this array, so we must

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