From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12580 invoked by alias); 4 Aug 2008 18:25:24 -0000 Received: (qmail 12559 invoked by uid 22791); 4 Aug 2008 18:25:23 -0000 X-Spam-Check-By: sourceware.org Received: from mtagate5.de.ibm.com (HELO mtagate5.de.ibm.com) (195.212.29.154) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 04 Aug 2008 18:24:39 +0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate5.de.ibm.com (8.13.8/8.13.8) with ESMTP id m74INFAw288844 for ; Mon, 4 Aug 2008 18:23:15 GMT Received: from d12av02.megacenter.de.ibm.com (d12av02.megacenter.de.ibm.com [9.149.165.228]) by d12nrmr1607.megacenter.de.ibm.com (8.13.8/8.13.8/NCO v9.0) with ESMTP id m74INFuL3919952 for ; Mon, 4 Aug 2008 20:23:15 +0200 Received: from d12av02.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id m74INFJw008294 for ; Mon, 4 Aug 2008 20:23:15 +0200 Received: from tuxmaker.boeblingen.de.ibm.com (tuxmaker.boeblingen.de.ibm.com [9.152.85.9]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.12.11) with SMTP id m74INFCJ008291; Mon, 4 Aug 2008 20:23:15 +0200 Message-Id: <200808041823.m74INFCJ008291@d12av02.megacenter.de.ibm.com> Received: by tuxmaker.boeblingen.de.ibm.com (sSMTP sendmail emulation); Mon, 4 Aug 2008 20:23:14 +0200 Subject: Re: [gdbserver] Problems trying to resume dead threads To: drow@false.org (Daniel Jacobowitz) Date: Mon, 04 Aug 2008 18:25:00 -0000 From: "Ulrich Weigand" Cc: gdb-patches@sourceware.org In-Reply-To: <20080804134000.GA17925@caradoc.them.org> from "Daniel Jacobowitz" at Aug 04, 2008 09:40:00 AM X-Mailer: ELM [version 2.5 PL2] MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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: 2008-08/txt/msg00056.txt.bz2 Daniel Jacobowitz wrote: > I can reproduce this problem by using the binary from killed.exp and > running strace on gdbserver. I can also reproduce it on an embedded > ARM target by running killed.exp. I can't reproduce it on my desktop > running killed.exp, which suggests this is normally hidden by > scheduler decisions - you need a long enough gap between the two > PTRACE_CONT's. > > What do you think of this change? Ideally, we could wait with WNOHANG > at this point to check for the exit case, but we'd have to restructure > a bit of the event loop to handle pending status == exited. Hmm, still fails with my Cell test case like this: writing register 25: No such process ptrace(regsets_fetch_inferior_registers) PID=14241: No such process reading register 0: No such process The initial error happens in usr_store_inferior_registers called via the regcache_invalidate_one call in linux_resume_one_process, just before the location you modified. Whether this writes anything probably depends on target properties like decr_pc_after_break ... Ignoring ESRCH in usr_store_inferior_registers as well seems to fix the problem for me. In any case, I'm not sure why usr_store_inferior_registers errors out ... the parallel regsets_store_inferior_registers only gives a warning in this case. Bye, Ulrich -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE Ulrich.Weigand@de.ibm.com