From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6468 invoked by alias); 22 Sep 2006 18:03:01 -0000 Received: (qmail 6457 invoked by uid 22791); 22 Sep 2006 18:03:01 -0000 X-Spam-Check-By: sourceware.org Received: from mx2.palmsource.com (HELO mx2.palmsource.com) (12.7.175.14) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 22 Sep 2006 18:02:56 +0000 Received: from localhost (localhost [127.0.0.1]) by localhost.domain.tld (Postfix) with ESMTP id BD4E226E5A; Fri, 22 Sep 2006 11:02:54 -0700 (PDT) Received: from mx2.palmsource.com ([127.0.0.1]) by localhost (mx2.palmsource.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 12299-01-35; Fri, 22 Sep 2006 11:02:53 -0700 (PDT) Received: from ussunex01.palmsource.com (unknown [192.168.101.9]) by mx2.palmsource.com (Postfix) with ESMTP id A2AF826DC9; Fri, 22 Sep 2006 11:02:53 -0700 (PDT) Received: from 192.168.92.59 ([192.168.92.59]) by ussunex01.palmsource.com ([192.168.101.9]) via Exchange Front-End Server owa.palmsource.com ([10.0.20.17]) with Microsoft Exchange Server HTTP-DAV ; Fri, 22 Sep 2006 18:02:53 +0000 Received: from svmsnyderlnx by owa.palmsource.com; 22 Sep 2006 11:02:53 -0700 Subject: Re: TLS on powerpc(32/64) From: Michael Snyder To: Prosun Niyogi Cc: gdb@sourceware.org, pniyogi@us.ibm.com In-Reply-To: <20060922135317.76444.qmail@web38912.mail.mud.yahoo.com> References: <20060922135317.76444.qmail@web38912.mail.mud.yahoo.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Date: Fri, 22 Sep 2006 18:03:00 -0000 Message-Id: <1158948173.22863.70.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.4.1 X-IsSubscribed: yes 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/msg00131.txt.bz2 On Fri, 2006-09-22 at 06:53 -0700, Prosun Niyogi wrote: > 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. If it's a native linux (or solaris) gdb, yes. You could also try running gdb under gdb -- with verbose mode turned on in the "outer" or master gdb. Then the outer gdb would notify you whenever the inner gdb loaded a shared library, and you could look for libthread_db. > 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? libthread_db is a separate shared library, and might be missing or something. But that would be unusual, I suppose. > 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. Version problem? There were versions of glibc and libthread_db that predated TLS. > 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 do a "ptype" or "whatis" on the type? > 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