From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from conssluserg-02.nifty.com (conssluserg-02.nifty.com [210.131.2.81]) by sourceware.org (Postfix) with ESMTPS id F0EAC3857C4A for ; Sun, 16 Aug 2020 13:52:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org F0EAC3857C4A Received: from Express5800-S70 (v038192.dynamic.ppp.asahi-net.or.jp [124.155.38.192]) (authenticated) by conssluserg-02.nifty.com with ESMTP id 07GDqH6r021895 for ; Sun, 16 Aug 2020 22:52:17 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-02.nifty.com 07GDqH6r021895 X-Nifty-SrcIP: [124.155.38.192] Date: Sun, 16 Aug 2020 22:52:21 +0900 From: Takashi Yano To: cygwin@cygwin.com Subject: Re: unhandled C++ exceptions not propagating Message-Id: <20200816225221.d7c41334927c9766d6e26415@nifty.ne.jp> In-Reply-To: <6c27d8d6-876a-6c09-bccd-a9123400cfdb@cornell.edu> References: <20200816125306.60dc246baf63d7f9fba60611@nifty.ne.jp> <6c27d8d6-876a-6c09-bccd-a9123400cfdb@cornell.edu> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, NICE_REPLY_A, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: cygwin@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Aug 2020 13:52:39 -0000 On Sun, 16 Aug 2020 09:21:24 -0400 Ken Brown via Cygwin wrote: > On 8/15/2020 11:53 PM, Takashi Yano via Cygwin wrote: > > On Sat, 15 Aug 2020 20:38:01 -0300 > > David McFarland via Cygwin wrote: > >> > >> I was just debugging a c++ app (b2 build system from boost), and noticed > >> that it would appear to exit unexpectedly without an error. This turned > >> out to be when an unhandled C++ exception was thrown. > >> > >> On a fresh install of cygwin with gcc-g++, this program will throw an > >> exception from the std::string constructor: > >> > >> c++ -x c++ - < >> #include > >> int main() { std::string str(nullptr); return 0; } > >> END > >> > >> When it's executed from the shell it returns zero, but execution stops > >> at the exception. > >> > >> $ ./a; echo $? > >> 0 > >> > >> When executed under gdb, the exception is caught, and the process exits > >> non-zero when continued: > >> > >> (gdb) r > >> Starting program: /home/corngood/a > >> [New Thread 4300.0x1390] > >> [New Thread 4300.0x1d24] > >> [New Thread 4300.0x1d48] > >> [New Thread 4300.0x80c] > >> gdb: unknown target exception 0x20474343 at 0x7ff8d2cfa799 > >> Thread 1 "a" received signal ?, Unknown signal. > >> 0x00007ff8d2cfa799 in RaiseException () from /cygdrive/c/WINDOWS/System32/KERNELBASE.dll > >> (gdb) c > >> Continuing. > >> [Thread 4300.0x1d24 exited with code 541541187] > >> [Thread 4300.0x1870 exited with code 541541187] > >> [Thread 4300.0x1d48 exited with code 541541187] > >> [Thread 4300.0x1390 exited with code 541541187] > >> [Inferior 1 (process 4300) exited with code 04021641503] > >> (gdb) > >> > >> When executed under strace, it exits with an error as expected: > >> > >> $ strace -o /dev/null a; echo $? > >> 67 > >> > >> That's as far as I've investigated so far. > > > > Is this the same issue with > > https://cygwin.com/pipermail/cygwin/2019-October/242795.html ? > > > > As far as I tested, this does not occur in 32-bit cygwin. > > This doesn't seem to be a new issue. I found the following report from 6 years > ago, on Cygwin 1.7.30 with GCC 4.9.0: > > https://stackoverflow.com/questions/24402412/program-executed-on-cygwin-does-not-report-a-thrown-exception Thanks for the information. But I still wonder why 32-bit and 64-bit cygwin behave differently. -- Takashi Yano