From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 0IrbBSAUEWIHPgAAWB0awg (envelope-from ) for ; Sat, 19 Feb 2022 11:00:32 -0500 Received: by simark.ca (Postfix, from userid 112) id 15B621F3C9; Sat, 19 Feb 2022 11:00:32 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,NICE_REPLY_A,RDNS_DYNAMIC, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 96F011EA69 for ; Sat, 19 Feb 2022 11:00:31 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0B725385E02F for ; Sat, 19 Feb 2022 16:00:31 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0B725385E02F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1645286431; bh=GScGgbVtSz8c2y8vssYxRpS/g9leTrydqBFI40ZtTtU=; h=Date:Subject:To:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=SNCSlINChWu21kxgB5Qt4Cl12o4Sa4mL33MDp48YkJIk5y7TNXkPfz3gK7uw0GXs9 2APvH9i3v3Eh+HnJWQO1RhodLLy3JIC2+2Hek9MKbSLjoSNaPIQ4qfCaOzgqc0H7Y3 CGW+pa4rCobfqZxrXyPJ2OENhK7K8pQKwjUNxNfU= Received: from smtp.polymtl.ca (smtp.polymtl.ca [132.207.4.11]) by sourceware.org (Postfix) with ESMTPS id CECC23858D1E for ; Sat, 19 Feb 2022 16:00:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org CECC23858D1E Received: from simark.ca (simark.ca [158.69.221.121]) (authenticated bits=0) by smtp.polymtl.ca (8.14.7/8.14.7) with ESMTP id 21JFxx8W007590 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 19 Feb 2022 11:00:03 -0500 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp.polymtl.ca 21JFxx8W007590 Received: from [10.0.0.11] (192-222-157-6.qc.cable.ebox.net [192.222.157.6]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 047C41EA69; Sat, 19 Feb 2022 10:59:58 -0500 (EST) Message-ID: Date: Sat, 19 Feb 2022 10:59:58 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Subject: Re: [RFC][PATCH v2 2/2][PR gdb/24069] [fix] Skip over WIFSTOPPED wait4 status Content-Language: en-US To: Philippe Blain , gdb-patches@sourceware.org References: <20210408191449.27434-1-dominique.quatravaux@epfl.ch> <20220216141540.96514-1-levraiphilippeblain@gmail.com> <20220216141540.96514-3-levraiphilippeblain@gmail.com> In-Reply-To: <20220216141540.96514-3-levraiphilippeblain@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Poly-FromMTA: (simark.ca [158.69.221.121]) at Sat, 19 Feb 2022 15:59:59 +0000 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Simon Marchi via Gdb-patches Reply-To: Simon Marchi Cc: Louis-He <1726110778@qq.com>, Dominique Quatravaux , Sam Warner Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb-patches" > diff --git a/gdb/darwin-nat.c b/gdb/darwin-nat.c > index 8b0ecfd5b77..a3c6a978676 100644 > --- a/gdb/darwin-nat.c > +++ b/gdb/darwin-nat.c > @@ -1063,7 +1063,7 @@ darwin_nat_target::decode_message (mach_msg_header_t *hdr, > } > else if (hdr->msgh_id == 0x48) > { > - /* MACH_NOTIFY_DEAD_NAME: notification for exit. */ > + /* MACH_NOTIFY_DEAD_NAME: notification for exit *or* WIFSTOPPED. */ Two spaces after period. > int res; > > res = darwin_decode_notify_message (hdr, &inf); > @@ -1103,16 +1103,26 @@ darwin_nat_target::decode_message (mach_msg_header_t *hdr, > return minus_one_ptid; > } > if (WIFEXITED (wstatus)) > - status->set_exited (WEXITSTATUS (wstatus)); > + { > + status->set_exited (WEXITSTATUS (wstatus)); > + inferior_debug (4, _("darwin_wait: pid=%d exit, status=0x%x\n"), > + res_pid, wstatus); > + } > + else if (WIFSTOPPED (wstatus)) > + { > + status->set_ignore (); > + inferior_debug (4, _("darwin_wait: pid %d received WIFSTOPPED\n"), > + res_pid); > + return minus_one_ptid; Can you add a comment explaining that the stop will be handled by a following exception? It can be confusing why we ignore a WIFSTOPPED. A bit like you explained in your commit message: - Read and ignore such messages (counting on the next exception message to let us know of the inferior's new state again) > + } > else > { > status->set_signalled > (gdb_signal_from_host (WTERMSIG (wstatus))); > + inferior_debug (4, _("darwin_wait: pid=%d received signal %d\n"), > + res_pid, status->sig()); > } Can you replace the else with else if (WIFSIGNALED (wstatus)) and add an else with a warning like: warning (_("Unexpected wait status after MACH_NOTIFY_DEAD_NAME " "notification: 0x%x"), wstatus); I think that having this warning would have made the bug you fix more visible, so easier to find. Perhaps it will help catch another similar problem in the future. The else should probably do status->set_ignore () and return minus_one_ptid. Simon