From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5795 invoked by alias); 28 Jan 2005 10:43:33 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 5679 invoked from network); 28 Jan 2005 10:43:16 -0000 Received: from unknown (HELO topsns.toshiba-tops.co.jp) (202.230.225.5) by sourceware.org with SMTP; 28 Jan 2005 10:43:16 -0000 Received: from newms.toshiba-tops.co.jp by topsns.toshiba-tops.co.jp via smtpd (for sourceware.org [12.107.209.250]) with SMTP; 28 Jan 2005 10:43:16 UT Received: from srd2sd.toshiba-tops.co.jp (gw-chiba7.toshiba-tops.co.jp [172.17.244.27]) by newms.toshiba-tops.co.jp (Postfix) with ESMTP id 6B13F239E4A for ; Fri, 28 Jan 2005 19:43:15 +0900 (JST) Received: from localhost (fragile [172.17.28.65]) by srd2sd.toshiba-tops.co.jp (8.12.10/8.12.10) with ESMTP id j0SAhERm005864 for ; Fri, 28 Jan 2005 19:43:15 +0900 (JST) (envelope-from anemo@mba.ocn.ne.jp) Date: Fri, 28 Jan 2005 10:43:00 -0000 Message-Id: <20050128.194314.85392905.nemoto@toshiba-tops.co.jp> To: gdb@sources.redhat.com Subject: Re: gdbserver: thread getmsg err on mips[el]-linux From: Atsushi Nemoto In-Reply-To: <20050114.174802.55486536.nemoto@toshiba-tops.co.jp> References: <20050114.174802.55486536.nemoto@toshiba-tops.co.jp> X-Fingerprint: 6ACA 1623 39BD 9A94 9B1A B746 CA77 FE94 2874 D52F X-Pgp-Public-Key: http://wwwkeys.pgp.net/pks/lookup?op=get&search=0x2874D52F Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-SW-Source: 2005-01/txt/msg00151.txt.bz2 >>>>> On Fri, 14 Jan 2005 17:48:02 +0900 (JST), Atsushi Nemoto said: anemo> Hi. When I tried to debug multi thread program with gdbserver anemo> (6.3.50_20050104) on mips[el]-linux, I got following error: anemo> [[gdbserver side]] anemo> $ ./gdbserver host:50000 ./ttest anemo> Process ./ttest created; pid = 3328 anemo> Listening on port 50000 anemo> Remote debugging from host 127.0.0.1 anemo> thread getmsg err: no event message for getmsg anemo> Segmentation fault Does anybody see above error? Anyway, here is a patch for this problem. Please apply to CVS if no objection. Thank you. --- gdb-6.3.org/gdb/gdbserver/thread-db.c 2004-10-17 02:42:00.000000000 +0900 +++ gdb-6.3/gdb/gdbserver/thread-db.c 2005-01-27 12:19:29.000000000 +0900 @@ -21,6 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include #include "server.h" #include "linux-low.h" @@ -142,6 +143,7 @@ td_event_msg_t msg; td_err_e err; struct inferior_linux_data *tdata; + int timeout; if (debug_threads) fprintf (stderr, "Thread creation event.\n"); @@ -152,7 +154,13 @@ In the LinuxThreads implementation, this is safe, because all events come from the manager thread (except for its own creation, of course). */ - err = td_ta_event_getmsg (thread_agent, &msg); + for (timeout = 0; timeout < 50000; timeout++) + { + err = td_ta_event_getmsg (thread_agent, &msg); + if (err != TD_NOMSG) + break; + usleep(1000); + } if (err != TD_OK) fprintf (stderr, "thread getmsg err: %s\n", thread_db_err_str (err)); P.S. I'm not on this ML. Please CC to me. --- Atsushi Nemoto