From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2887 invoked by alias); 22 Sep 2006 13:53:21 -0000 Received: (qmail 2878 invoked by uid 22791); 22 Sep 2006 13:53:21 -0000 X-Spam-Check-By: sourceware.org Received: from web38912.mail.mud.yahoo.com (HELO web38912.mail.mud.yahoo.com) (209.191.125.118) by sourceware.org (qpsmtpd/0.31) with SMTP; Fri, 22 Sep 2006 13:53:19 +0000 Received: (qmail 76446 invoked by uid 60001); 22 Sep 2006 13:53:17 -0000 Message-ID: <20060922135317.76444.qmail@web38912.mail.mud.yahoo.com> Received: from [192.35.232.241] by web38912.mail.mud.yahoo.com via HTTP; Fri, 22 Sep 2006 06:53:17 PDT Date: Fri, 22 Sep 2006 13:53:00 -0000 From: Prosun Niyogi Subject: Re: TLS on powerpc(32/64) To: gdb@sourceware.org Cc: pniyogi@us.ibm.com In-Reply-To: <20060921235203.GA9769@nevyn.them.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2006-09/txt/msg00128.txt.bz2 How can I tell whether GDB is loading libthread_db? "info threads" works... I would think libthread_db must be loaded for that to work. Also, in gdb(linux-thread_db.c) - __/* glibc doesn't provide the needed interface. */ if (!td_thr_tls_get_addr_p) throw_error (TLS_NO_LIBRARY_SUPPORT_ERROR, _("No TLS library support")); __/* Caller should have verified that lm != 0. */ gdb_assert (lm != 0); __/* Get info about the thread. */ thread_info = find_thread_pid (ptid); thread_db_map_id2thr (thread_info, 1); __/* Finally, get the address of the variable. */ err = td_thr_tls_get_addr_p (&thread_info->private->th, (void *) lm, offset, &address); So the glibc interface is found... does that not mean that libthread_db is loaded and found by GDB? Apologies for the ignorance, just looking for how I can check to see why td_thr_tls_get_addr_p() doesnt return an appropriate value. So judging from the tone of your comment, I should expect to be able to print the value of a __thread variable on ppc64, and there arent any known issues preventing me from doing so? I have tried on SLES, FC, and now cvs-head, and all three have failed. Can you suggest where I should look next? I took a quick look at libthread_db in glibc, and it looks like none of the fuctions have changed in libc. Thanks, Prosun Niyogi --- Daniel Jacobowitz wrote: > On Thu, Sep 21, 2006 at 04:20:47PM -0700, Prosun > Niyogi wrote: > > Hi, > > I've been struggling the last few days on getting > gdb > > to work correctly on a powerpc64 machine. Built as > > ppc-64-linux, debugging ppc64 binaries linked > against > > libpthread. It seems to me that gdb's TLS access > does > > not work correctly on these platforms. Attempting > to > > print a variable of type __thread doesnt work. > > It looks to me like GDB has failed to load > libthread_db for some > reason. I don't know why not; you'll have to look > into it. > > -- > Daniel Jacobowitz > CodeSourcery > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com