This is the mail archive of the
mailing list for the binutils project.
Re: "gdb vmlinux" gives wrong symbol addresses
> Date: Wed, 23 Aug 2006 19:31:00 +0200
> From: Jan Kratochvil <firstname.lastname@example.org>
> On Mon, 21 Aug 2006 05:24:19 +0200, Alan Modra wrote:
> > On Sun, Aug 20, 2006 at 09:54:30PM -0400, Daniel Jacobowitz wrote:
> > > On Mon, Aug 21, 2006 at 11:08:29AM +0930, Alan Modra wrote:
> > > > I think that for ET_EXEC and ET_DYN gdb should ignore relocs that use
> > > > the normal symbol table. Sane ELF targets will have dynamic reloc
> > > > section(s) with sh_link pointing at a symtab section with sh_type of
> > > > SHT_DYNSYM. --emit-relocs creates reloc sections with sh_link pointing
> > > > at a symtab section with sh_type of SHT_SYMTAB.
> > >
> > > This amounts to always ignoring relocations; GDB only uses relocations
> > > for debug sections, which will never point at SHT_DYNSYM (I don't
> > > think?).
> > When we emitted relocs for debug sections on some targets (eg. ppc32
> > prior to 2005-04-19), they were against SHT_DYNSYM symbols.
> Do you have such (ppc32?) shared library(?) binary handy?
> It would be find to include it to the gdb testsuite.
> The restricted patch targetting relocatable Linux kernel but not
> targetting the libraries attached, IMO safe. It is gdb-only patch,
> not binutils-wide.
Are we sure this is safe? Is it really impossible for debug sections
to refer to symbols in shared libs which will have relocations that
still need to be processed?