From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11006 invoked by alias); 10 Mar 2011 16:02:34 -0000 Received: (qmail 10992 invoked by uid 22791); 10 Mar 2011 16:02:31 -0000 X-SWARE-Spam-Status: No, hits=-6.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 10 Mar 2011 16:02:26 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p2AG2HQ8014413 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 10 Mar 2011 11:02:17 -0500 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p2AG2G7Y022718; Thu, 10 Mar 2011 11:02:16 -0500 Received: from opsy.redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id p2AG2Fp1020326; Thu, 10 Mar 2011 11:02:16 -0500 Received: by opsy.redhat.com (Postfix, from userid 500) id 305FC3797CD; Thu, 10 Mar 2011 09:02:14 -0700 (MST) From: Tom Tromey To: Pedro Alves Cc: gdb-patches@sourceware.org, Jan Kratochvil Subject: Re: RFC: lazily call save_current_space_and_thread References: <201103081723.11974.pedro@codesourcery.com> <201103081802.35770.pedro@codesourcery.com> Date: Thu, 10 Mar 2011 20:09:00 -0000 In-Reply-To: <201103081802.35770.pedro@codesourcery.com> (Pedro Alves's message of "Tue, 8 Mar 2011 18:02:35 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii 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-03/txt/msg00637.txt.bz2 Tom> "run" appears to work in the background, which is mysterious to me. Pedro> Hmm. It shouldn't. Well, behind the scenes it does run Pedro> asynchronously, but only "run&" should work in the background, Pedro> from the user's perpective. Pedro> Boo, something's seriously broken :-/ : I looked into this. What happens is that fetch_inferior_event calls normal_stop whenever a subprocess exits. E.g., I see this: Starting program: /usr/bin/make clean [...] [New process 13249] [...] [Inferior 2 (process 13249) exited normally] ... at which point I get the (gdb) prompt. The initial `make' process and the other things it invokes continue running. I thought this was due to non-stop, but disabling that didn't seem to change anything. What I expected to happen is that after my `run', I should not get a prompt back until either (1) some event occurs (breakpoint, SEGV, whatever), or (2) the inferior and all its subprocesses have exited. This would require some extra logic when handling exit events, since AFAICT there is nothing to support this in there right now. I would appreciate your comments on this. Once I stop the inferiors, it is hard to restart them nicely. I guess this is where the I/T set idea comes in -- you need a way to be able to say "continue all inferiors". Tom