From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16107 invoked by alias); 25 Nov 2003 21:13:23 -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 16100 invoked from network); 25 Nov 2003 21:13:22 -0000 Received: from unknown (HELO localhost.redhat.com) (207.219.125.105) by sources.redhat.com with SMTP; 25 Nov 2003 21:13:22 -0000 Received: from redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id EE2C62B8F; Tue, 25 Nov 2003 16:13:18 -0500 (EST) Message-ID: <3FC3C5EE.2090201@redhat.com> Date: Tue, 25 Nov 2003 21:13:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.2) Gecko/20030820 X-Accept-Language: en-us, en MIME-Version: 1.0 To: gdb-patches@sources.redhat.com Cc: Roland McGrath Subject: [rfa/threads] Convert thread event descriptors to code addrs Content-Type: multipart/mixed; boundary="------------060706090401020902090001" X-SW-Source: 2003-11/txt/msg00576.txt.bz2 This is a multi-part message in MIME format. --------------060706090401020902090001 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-length: 602 Hello, For PPC64 every function has two minimal symbols vis: .__nptl_create_event: the start address __nptl_create_event: the descriptor This patch modifies ps_pglobal_lookup so that it always returns the function's start address. Doing this ensures that libthread_db and GDB's thread code are "on the same page" when it comes to the true address of the thread-create and thread-death breakpoints. The alternative would be to modify libthread_db so that it knew that PPC64 symbol were special but I suspect that it doesn't want to know about such underlying details. ok for mainline? Andrew --------------060706090401020902090001 Content-Type: text/plain; name="diffs" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="diffs" Content-length: 1012 2003-11-25 Andrew Cagney * proc-service.c (ps_pglobal_lookup): Convert function descriptors into code addresses using gdbarch_convert_from_func_ptr_addr. Index: ./gdb/proc-service.c =================================================================== RCS file: /cvs/src/src/gdb/proc-service.c,v retrieving revision 1.7 diff -u -r1.7 proc-service.c --- ./gdb/proc-service.c 24 Feb 2002 22:31:19 -0000 1.7 +++ ./gdb/proc-service.c 25 Nov 2003 20:59:49 -0000 @@ -181,7 +181,13 @@ if (ms == NULL) return PS_NOSYM; - *sym_addr = SYMBOL_VALUE_ADDRESS (ms); + /* Get the addres, make certain that any descriptors are converted + into corresponding code addresses. (For PPC64, the symbol + "__nptl_create_event" points at a function descriptor while this + code needs the corresponding function's start address.) */ + *sym_addr = gdbarch_convert_from_func_ptr_addr (current_gdbarch, + SYMBOL_VALUE_ADDRESS (ms), + ¤t_target); return PS_OK; } --------------060706090401020902090001--