From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17651 invoked by alias); 16 Sep 2011 23:16:26 -0000 Received: (qmail 17643 invoked by uid 22791); 16 Sep 2011 23:16:24 -0000 X-SWARE-Spam-Status: No, hits=-1.4 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from barfooze.de (HELO barfooze.de) (78.46.117.212) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 16 Sep 2011 23:16:07 +0000 Received: from xdsl-188-155-204-78.adslplus.ch ([188.155.204.78] helo=[172.16.0.230]) by barfooze.de with esmtpsa (TLSv1:CAMELLIA256-SHA:256) (Exim 4.76) (envelope-from ) id 1R4hdc-0006np-G8; Sat, 17 Sep 2011 01:16:05 +0200 Message-ID: <4E73D806.2040302@barfooze.de> Date: Sat, 17 Sep 2011 00:31:00 -0000 From: John Spencer User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.14) Gecko/20110221 SUSE/3.1.8 Mail/1.0 MIME-Version: 1.0 To: gdb-patches@sourceware.org CC: Pedro Alves Subject: Re: wrong assumptions about pthread_t being numeric References: <4E73D06F.603@barfooze.de> <201109170000.43306.pedro@codesourcery.com> In-Reply-To: <201109170000.43306.pedro@codesourcery.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-09/txt/msg00331.txt.bz2 On 09/17/2011 01:00 AM, Pedro Alves wrote: > > These are only built natively on solaris and aix respectively, so > let's just leave them alone. > I expected it to be desirable for a product in industrial use to be standard-compliant and not invoking undefined behavior. >> thread-db.c: In function 'find_one_thread': >> thread-db.c:295:7: error: format '%ld' expects type 'long int', but >> argument 3 has type 'thread_t' >> thread-db.c: In function 'attach_thread': >> thread-db.c:335:7: error: format '%ld' expects type 'long int', but >> argument 3 has type 'thread_t' >> thread-db.c:341:9: error: format '%ld' expects type 'long int', but >> argument 2 has type 'thread_t' > So just cast it to long, and you're done. > pthread_t could legally be a struct, which you can't just cast to a long. >> gdb-7.3.1/gdb/linux-thread-db.c: gdb_assert (ti_p->ti_tid != 0); >> gdb-7.3.1/gdb/linux-thread-db.c: private->tid = ti_p->ti_tid; >> gdb-7.3.1/gdb/linux-thread-db.c: if (ti.ti_tid == 0&& >> target_has_execution) >> gdb-7.3.1/gdb/gdbserver/thread-db.c: ti.ti_tid, ti.ti_lid); >> gdb-7.3.1/gdb/gdbserver/thread-db.c: if (ti.ti_tid == 0) >> gdb-7.3.1/gdb/gdbserver/thread-db.c: ti_p->ti_tid, ti_p->ti_lid); >> gdb-7.3.1/gdb/gdbserver/thread-db.c: ti_p->ti_tid, ti_p->ti_lid); > Does your libc actually have a libthread_db.so? > no, that's another problem. the code just assumes it is there. i had to use a couple of patches to make gdb compile. if you are interested, the cumulative patch is available here http://pastie.org/private/rx05yywro1utmvvniw6gjw -- JS