From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 89169 invoked by alias); 21 Jan 2020 03:16:46 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 89162 invoked by uid 89); 21 Jan 2020 03:16:46 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-7.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 spammy=H*Ad:D*gov, tonight X-HELO: conssluserg-02.nifty.com Received: from conssluserg-02.nifty.com (HELO conssluserg-02.nifty.com) (210.131.2.81) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 21 Jan 2020 03:16:43 +0000 Received: from Express5800-S70 (ntsitm247158.sitm.nt.ngn.ppp.infoweb.ne.jp [124.27.253.158]) (authenticated) by conssluserg-02.nifty.com with ESMTP id 00L3FlnN027242; Tue, 21 Jan 2020 12:15:47 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-02.nifty.com 00L3FlnN027242 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.ne.jp; s=dec2015msa; t=1579576548; bh=THVp+AwlpATwWLgn3jBDhjXt2zl4ebNzPymm2dcJjD8=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=LP1tgHT6133pDmIpM94F+91bySEGcxX5OI3J0yA1L/Z6HUsnv99KFSF00iSZHtMGz iRqNFwHyWuelqdAJT97kC/hJ9aJrqgAf107MtO1f9Ez6ZJ4C1DR83ENWIvKcq0EFiC KIf7Ydh6MzbIKUd/E6Lk3zqoOukZh6kjexT3VUXiIpgOoRgpXdK5/D1RikKf8udsZD CvbMGla+KJg62XO/xyqhs4z4DvhRiM1xwZz1W6pSZcR/7YuXM7JP5HsDNPoldmVCYg Wswo/RiMFH79LfTwo5vELO1QojwJioV7OgO5e0jM74s4G8H9SHhGp68mnkeBsbqk4E tEMlWqWqjZ3rg== Date: Tue, 21 Jan 2020 03:16:00 -0000 From: Takashi Yano To: cygwin@cygwin.com Cc: "Lavrentiev, Anton (NIH/NLM/NCBI) [C]" Subject: Re: Looks like GDB in Cygwin does not catch Ctrl/C correctly Message-Id: <20200121121557.9260057468bdfee5896273dc@nifty.ne.jp> In-Reply-To: References: Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2020-01/txt/msg00175.txt.bz2 On Tue, 21 Jan 2020 03:09:19 +0000 "Lavrentiev, Anton (NIH/NLM/NCBI) [C] via cygwin" wrote: > Hi All, > > Another question for tonight: > > So there's a program that basically enters a tight loop on some incorrect input (and needs to be debugged, obviously). > > The program is otherwise rather basic, doesn't use anything outside K&R C RTL. > > When I run the program under gdb, I want to interrupt it with Ctrl/C (as I would be doing > in Linux) and then step through the code to figure out where it is looping. > > GDB does interrupt the program but when I do step or next, it looks like some > utility thread gets the actual control, and actually processes the INT signal, which then > terminates the program, making the debugging impossible: > > Thread 1 "cprog" received signal SIGINT, Interrupt. > free_tree (tp=0x80004eae0) at cprog.c:1696 > 1696 break; > (gdb) s > 0x0000000180148990 in muto::release(_cygtls*) () from /usr/bin/cygwin1.dll > (gdb) s > Single stepping until exit from function _ZN4muto7releaseEP7_cygtls, > which has no line number information. > 0x000000018013469b in _sigbe () from /usr/bin/cygwin1.dll > (gdb) s > Single stepping until exit from function _sigbe, > which has no line number information. > 0x00000001801346e5 in sigdelayed () from /usr/bin/cygwin1.dll > (gdb) s > Single stepping until exit from function sigdelayed, > which has no line number information. > [Inferior 1 (process 6792) exited with code 01000] > > Using "n" instead of "s"s gets the termination right away: > > (gdb) n > [Inferior 1 (process 5020) exited with code 01000] > > The program does have all the debugging info on (compiled with -g) > and can be stepped through successfully (in Cygwin too from the get go but not whe interrupted). > > The same code compiled with the exact same gcc command, and run under gdb on Linux can be stepped through the actual > source code after having been interrupted with Ctrl/C. > > Any ideas would be appreciated. > > Thanks, > Anton > > P.S. This is how the debugging session looks on Linux, for comparison, showing it does step through the actual code: > > Program received signal SIGINT, Interrupt. > 0x00000000004053f1 in implicit_gbl (value=0x6269f0) at cprog.c:2494 > 2494 switch(value->type) > (gdb) n > 2527 } > (gdb) n > store_value (stack=0x7fffffffc718, tr=0x7fffffffc720, size=1, value=0x6269f0) at cprog.c:3805 > 3805 if(value->type == EX_LIT) > (gdb) n > 3807 store_word(stack->top, tr, size, value->data.lit); > (gdb) > ... What is your environment? Windows version, cygwin version and etc... -- Takashi Yano -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple