public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* Giving canonical sections a name breaks GDB?
@ 2004-12-20 12:41 Mark Kettenis
  2004-12-20 22:35 ` Alan Modra
  0 siblings, 1 reply; 4+ messages in thread
From: Mark Kettenis @ 2004-12-20 12:41 UTC (permalink / raw)
  To: amodra; +Cc: binutils, gdb

Hi Alan,

GDB is a wee bit broken on sparc-sun-solaris2.9, and it seems the
following patch is the culprit:

2004-12-11  Alan Modra  <amodra@bigpond.net.au>

        * elfcode.h (elf_slurp_symbol_table): Use bfd_elf_sym_name so that
        canonical sections syms have a name.

With this patch, I get the following output in GDB:

(gdb) disas main
Dump of assembler code for function main:
0x00012928 <main+0>:    save  %sp, -1272, %sp
0x0001292c <main+4>:    sethi  %hi(0x24400), %o0
..
0x0001351c <main+3060>: ld  [ %o0 ], %o1
0x00013520 <main+3064>: ld  [ %o1 ], %o0
0x00013524 <.SUNW_version+0>:   st  %o0, [ %fp + -952 ]
0x00013528 <.SUNW_version+4>:   ld  [ %o1 + 4 ], %o0
..
0x00013b60 <.SUNW_version+1596>:        ret 
0x00013b64 <.SUNW_version+1600>:        restore 
End of assembler dump.

(.SUNW_version is the name of one of the sections in the ELF file)

without the patch above, everything is fine.

Any idea what's wrong?

Mark

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Giving canonical sections a name breaks GDB?
  2004-12-20 12:41 Giving canonical sections a name breaks GDB? Mark Kettenis
@ 2004-12-20 22:35 ` Alan Modra
  2004-12-21 20:28   ` Mark Kettenis
  0 siblings, 1 reply; 4+ messages in thread
From: Alan Modra @ 2004-12-20 22:35 UTC (permalink / raw)
  To: Mark Kettenis; +Cc: binutils, gdb

On Mon, Dec 20, 2004 at 01:41:12PM +0100, Mark Kettenis wrote:
> Any idea what's wrong?

Try this

	* elfread.c (elf_symtab_read): Discard section syms.

Index: gdb/elfread.c
===================================================================
RCS file: /cvs/src/src/gdb/elfread.c,v
retrieving revision 1.47
diff -u -p -r1.47 elfread.c
--- gdb/elfread.c	23 Oct 2004 16:18:08 -0000	1.47
+++ gdb/elfread.c	20 Dec 2004 22:34:20 -0000
@@ -254,6 +254,8 @@ elf_symtab_read (struct objfile *objfile
 			      &objfile->objfile_obstack);
 #endif
 	    }
+	  else if (sym->flags & BSF_SECTION_SYM)
+	    continue;
 	  else if (sym->flags & (BSF_GLOBAL | BSF_LOCAL | BSF_WEAK))
 	    {
 	      struct minimal_symbol *msym;

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Giving canonical sections a name breaks GDB?
  2004-12-20 22:35 ` Alan Modra
@ 2004-12-21 20:28   ` Mark Kettenis
  2004-12-30 22:32     ` Alan Modra
  0 siblings, 1 reply; 4+ messages in thread
From: Mark Kettenis @ 2004-12-21 20:28 UTC (permalink / raw)
  To: amodra, ezannoni; +Cc: binutils, gdb

   Date: Tue, 21 Dec 2004 09:04:49 +1030
   From: Alan Modra <amodra@bigpond.net.au>

   On Mon, Dec 20, 2004 at 01:41:12PM +0100, Mark Kettenis wrote:
   > Any idea what's wrong?

   Try this

	   * elfread.c (elf_symtab_read): Discard section syms.

Thanks, yes, that solves the problem.  Elena, is this ok?  Perhaps it
needs a comment?

Mark


Index: gdb/elfread.c
===================================================================
RCS file: /cvs/src/src/gdb/elfread.c,v
retrieving revision 1.47
diff -u -p -r1.47 elfread.c
--- gdb/elfread.c	23 Oct 2004 16:18:08 -0000	1.47
+++ gdb/elfread.c	20 Dec 2004 22:34:20 -0000
@@ -254,6 +254,8 @@ elf_symtab_read (struct objfile *objfile
 			      &objfile->objfile_obstack);
 #endif
 	    }
+	  else if (sym->flags & BSF_SECTION_SYM)
+	    continue;
 	  else if (sym->flags & (BSF_GLOBAL | BSF_LOCAL | BSF_WEAK))
 	    {
 	      struct minimal_symbol *msym;

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Giving canonical sections a name breaks GDB?
  2004-12-21 20:28   ` Mark Kettenis
@ 2004-12-30 22:32     ` Alan Modra
  0 siblings, 0 replies; 4+ messages in thread
From: Alan Modra @ 2004-12-30 22:32 UTC (permalink / raw)
  To: binutils

It possibly changes objdump disassembly too.  Fixed as follows.

binutils/ChangeLog
	* objdump.c (remove_useless_symbols): Discard section symbols.

Index: binutils/objdump.c
===================================================================
RCS file: /cvs/src/src/binutils/objdump.c,v
retrieving revision 1.96
diff -u -p -r1.96 objdump.c
--- binutils/objdump.c	11 Oct 2004 08:18:43 -0000	1.96
+++ binutils/objdump.c	30 Dec 2004 22:06:07 -0000
@@ -458,7 +458,7 @@ remove_useless_symbols (asymbol **symbol
 
       if (sym->name == NULL || sym->name[0] == '\0')
 	continue;
-      if (sym->flags & (BSF_DEBUGGING))
+      if (sym->flags & (BSF_DEBUGGING | BSF_SECTION_SYM))
 	continue;
       if (bfd_is_und_section (sym->section)
 	  || bfd_is_com_section (sym->section))

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2004-12-30 22:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-12-20 12:41 Giving canonical sections a name breaks GDB? Mark Kettenis
2004-12-20 22:35 ` Alan Modra
2004-12-21 20:28   ` Mark Kettenis
2004-12-30 22:32     ` Alan Modra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).