Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <drow@false.org>
To: gdb-patches@sources.redhat.com, Elena Zannoni <ezannoni@redhat.com>
Subject: [rfa] Skip "special" symbols when reading minimal symbols
Date: Wed, 09 Mar 2005 17:36:00 -0000	[thread overview]
Message-ID: <20050309173557.GA17136@nevyn.them.org> (raw)

Nick recently introduced a hook in bfd to allow a target to mark a symbol as
"special".  What exactly "special" means isn't well defined, except that
they are not normal symbols, and objdump and nm will decline to display them
unless an additional command line option is given.  So, I would like to make
that the default behavior in GDB also.

GDB could make use of special symbols in a target-specific fashion - in this
case, to build up a PC -> ISA mapping.  The most logical way to do this
would be to call a gdbarch hook for special symbols (or for all symbols?).
But we don't need that yet, so I haven't added the hook.

The advantage of skipping the mapping symbols is that they generally occur
at the same addresses as other non-mapping symbols.  This causes GDB to show
"$a" in disassembly instead of "main" in some cases (depending on the
vagaries of hashing).  Whatever target-specific meaning a special symbol may
have, the BFD hook indicates that it isn't a standard symol, so I think it's
appropriate to skip it in GDB.

Is this patch OK?  Fixes a number of testsuite failures on arm-linux and
arm-netbsd.

-- 
Daniel Jacobowitz
CodeSourcery, LLC

2005-03-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* elfread.c (elf_symtab_read): Skip symbols which BFD considers
	special.

Index: gdb/elfread.c
===================================================================
RCS file: /big/fsf/rsync/src-cvs/src/gdb/elfread.c,v
retrieving revision 1.50
diff -u -p -r1.50 elfread.c
--- gdb/elfread.c	21 Feb 2005 11:00:44 -0000	1.50
+++ gdb/elfread.c	9 Mar 2005 17:24:30 -0000
@@ -203,6 +203,12 @@ elf_symtab_read (struct objfile *objfile
 	      continue;
 	    }
 
+	  /* Skip "special" symbols, e.g. ARM mapping symbols.  These are
+	     symbols which do not correspond to objects in the symbol table,
+	     but have some other target-specific meaning.  */
+	  if (bfd_is_target_special_symbol (objfile->obfd, sym))
+	    continue;
+
           offset = ANOFFSET (objfile->section_offsets, sym->section->index);
 	  if (dynamic
 	      && sym->section == &bfd_und_section


             reply	other threads:[~2005-03-09 17:36 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-09 17:36 Daniel Jacobowitz [this message]
2005-03-11  0:10 ` Michael Snyder
2005-03-25 20:51   ` Daniel Jacobowitz
2006-02-20 17:32 ` Daniel Jacobowitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050309173557.GA17136@nevyn.them.org \
    --to=drow@false.org \
    --cc=ezannoni@redhat.com \
    --cc=gdb-patches@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox