From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27089 invoked by alias); 29 Apr 2004 16:13:58 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 27057 invoked from network); 29 Apr 2004 16:13:57 -0000 Received: from unknown (HELO pippin.tausq.org) (64.81.244.94) by sources.redhat.com with SMTP; 29 Apr 2004 16:13:57 -0000 Received: by pippin.tausq.org (Postfix, from userid 1000) id 80E57CD28A; Thu, 29 Apr 2004 09:13:57 -0700 (PDT) Date: Thu, 29 Apr 2004 16:13:00 -0000 From: Randolph Chung To: Andrew Cagney Cc: gdb-patches@sources.redhat.com Subject: Re: [patch/rfc/hppa] handle setting gp for calling shlib functions Message-ID: <20040429161357.GA3965@tausq.org> Reply-To: Randolph Chung References: <20040429062324.GX3965@tausq.org> <40910D4F.1020700@gnu.org> <20040429150704.GZ3965@tausq.org> <409126FD.3080708@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <409126FD.3080708@gnu.org> X-GPG: for GPG key, see http://www.tausq.org/gpg.txt User-Agent: Mutt/1.5.5.1+cvs20040105i X-SW-Source: 2004-04/txt/msg00678.txt.bz2 > > Unfortunately the func_addr that is passed > >into push_dummy_call is already the canonicalized function address, > >so i cannot do this as part of e.g. find_global_pointer. > > For PPC64 I used ABI knowledge to do a code address -> descriptor > address reverse lookup. Can you do something similar? you mean look through a opd section? unfortunately there isn't such a thing for the 32-bit abi. it's there in hppa64. for hppa32, the plabel likely resides in the got/plt, and i don't think we can easily find it there. > Anyway, a thing-to-do-one day is to pass the function's ``value'' > (descriptor and type) to push-dummy-call (there has been talk of doing > this before). Another is to clean up what's passed as the parameter > list -> again descriptors. well, i can already do this, by *not* implementing the conversion function. However, when the actual call is made, we need to do the conversion. how about adding a new gdbarch method breakpoint_from_func_ptr and potentially not calling convert_from_func_ptr_address() from call_function_by_hand()? other than ia64, ppc64 and hppa, how many function-descriptor archs do we have? randolph -- Randolph Chung Debian GNU/Linux Developer, hppa/ia64 ports http://www.tausq.org/