Date: Sat, 2 Feb 2002 06:59:39 +0200 (SAT) From: John Hay <jhay@icomtek.csir.co.za> To: des@ofug.org (Dag-Erling Smorgrav) Cc: jhay@icomtek.csir.co.za (John Hay), obrien@FreeBSD.org, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/contrib/binutils Message-ID: <200202020459.g124xdL87420@zibbi.icomtek.csir.co.za> In-Reply-To: <xzpd6zo25c4.fsf@flood.ping.uio.no> from Dag-Erling Smorgrav at "Feb 1, 2002 11:40:59 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
> > #0 0x2805353a in reloc_non_plt (obj=0x0, obj_rtld=0x0)
> > at /home/src/libexec/rtld-elf/i386/reloc.c:196
> > 196 *where += (Elf_Addr) obj->relocbase;
> > [...]
> > It seems as if the stack or something gets clobbered in reloc_non_plt()
> > because obj has been used earlier in the function and didn't cause a bus
> > error then.
>
> No. The problem isn't obj, the problem is where, which is computed a
> few lines earlier, right before the switch:
>
> Elf_Addr *where = (Elf_Addr *) (obj->relocbase + rel->r_offset);
>
> Try
>
> (gdb) p where
> (gdb) p *obj
> (gdb) p *rel
(gdb) p where
$9 = (Elf_Addr *) 0x2808815d
(gdb) p *obj
Cannot access memory at address 0x0.
(gdb) p *rel
$10 = {r_offset = 115037, r_info = 8}
(gdb)
>
> where is probably way off in never-never land, which is possibly the
> result of a bug in binutils, and possibly the result of a bug in
> rtld-elf. JDP should be able to help, given a proper backtrace. I'll
> try to reproduce the problem and produce one.
What is a proper backtrace?
John
--
John Hay -- John.Hay@icomtek.csir.co.za / jhay@FreeBSD.org
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200202020459.g124xdL87420>
