From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32581 invoked by alias); 13 May 2006 14:58:41 -0000 Received: (qmail 32565 invoked by uid 22791); 13 May 2006 14:58:40 -0000 X-Spam-Check-By: sourceware.org Received: from nevyn.them.org (HELO nevyn.them.org) (66.93.172.17) by sourceware.org (qpsmtpd/0.31.1) with ESMTP; Sat, 13 May 2006 14:58:36 +0000 Received: from drow by nevyn.them.org with local (Exim 4.54) id 1FevZd-0000zp-PQ; Sat, 13 May 2006 10:58:29 -0400 Date: Sat, 13 May 2006 15:13:00 -0000 From: Daniel Jacobowitz To: Alan Modra Cc: PAUL GILLIAM , gdb-patches@sources.redhat.com Subject: Re: [patch] Strange stepping behaviour with ppc32 with secure PLTs Message-ID: <20060513145829.GA3721@nevyn.them.org> Mail-Followup-To: Alan Modra , PAUL GILLIAM , gdb-patches@sources.redhat.com References: <1147469935.3672.114.camel@dufur.beaverton.ibm.com> <20060512225044.GA20706@nevyn.them.org> <20060513143141.GB19700@bubble.grove.modra.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20060513143141.GB19700@bubble.grove.modra.org> User-Agent: Mutt/1.5.8i X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2006-05/txt/msg00293.txt.bz2 On Sun, May 14, 2006 at 12:01:41AM +0930, Alan Modra wrote: > Not too hard, but messy. The only real difficulty is finding the stubs. > We don't have any handy symbols or relocs to identify them, so that > means code reading. > > We do have --emit-stub-syms to emit symbols on stubs at link time. I > probably should have made the linker always emit the first stub sym so > we could easily find all the stubs. Hmm. Do they still end up in a section named .plt? That'd probably make it easier for both gdb and binutils. > > The right thing to do then is probably to create the synthetic symbols > > at exactly those same addresses. > > No, if I understand correctly, Paul wants to use a stub symbol as a > means of letting gdb know that it is in a plt call trampoline. Putting > the symbol in .plt won't do that for you. Best just teach gdb what a > plt call stub looks like. There's two things necessary to make stepping and shared libraries play nice. 1. Be able to unwind from the stub, so that we can see we've stepped into something. We need symbols or some other similar code reading in order to make this work. 2. Be able to identify this debug-info-less block of code as a stub, so that we can skip it if we're going to step into a shared library function that has debug info. I pointed Paul at the right function for handling this earlier, but it's somewhat orthogonal. -- Daniel Jacobowitz CodeSourcery