From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30610 invoked by alias); 4 Dec 2008 21:33:16 -0000 Received: (qmail 30602 invoked by uid 22791); 4 Dec 2008 21:33:16 -0000 X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (65.74.133.4) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 04 Dec 2008 21:32:41 +0000 Received: (qmail 3237 invoked from network); 4 Dec 2008 21:32:39 -0000 Received: from unknown (HELO orlando.local) (pedro@127.0.0.2) by mail.codesourcery.com with ESMTPA; 4 Dec 2008 21:32:39 -0000 From: Pedro Alves To: gdb@sourceware.org Subject: Re: call_function_by_hand doesn't restore target async? Date: Thu, 04 Dec 2008 21:33:00 -0000 User-Agent: KMail/1.9.10 Cc: Doug Evans References: <20081204201837.29DF91C7A10@localhost> <200812042123.16654.pedro@codesourcery.com> In-Reply-To: <200812042123.16654.pedro@codesourcery.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200812042133.25694.pedro@codesourcery.com> X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2008-12/txt/msg00010.txt.bz2 On Thursday 04 December 2008 21:23:16, Pedro Alves wrote: > Right, it doesn't. =A0inf-loop.c:inferior_event_handler has a > drastic attitude about exceptions --- it always pops the target, which > means that a cleanup will would most of the times set the async mask > in the wrong target, and thus say, e.g., remote_async_mask_value > will still be left dangling... =A0I think that adjusting the > target_wait interface like described above would be the best way > to fix this. Hmmm, sorry, that's a thinko. When doing an infcall, of course you don't go through fetch_inferior_event... So a cleanup would indeed fix most cases, although a few times, like when remote.c pops the target due to losing the connection, a cleanup wil still set the async mask in the wrong target. (The parameter to target_wait would solve this 100%). Don't you love having two ways to do the same thing? --=20 Pedro Alves