From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 93488 invoked by alias); 1 Nov 2018 21:19:57 -0000 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 Received: (qmail 93472 invoked by uid 89); 1 Nov 2018 21:19:56 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.3 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=apologize, differs, awhile, controlling X-HELO: rock.gnat.com Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 01 Nov 2018 21:19:54 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 5F1E756017; Thu, 1 Nov 2018 17:19:52 -0400 (EDT) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 2xv3BUJLHGiG; Thu, 1 Nov 2018 17:19:52 -0400 (EDT) Received: from joel.gnat.com (localhost.localdomain [127.0.0.1]) by rock.gnat.com (Postfix) with ESMTP id 93EB756002; Thu, 1 Nov 2018 17:19:51 -0400 (EDT) Received: by joel.gnat.com (Postfix, from userid 1000) id AF05B83AF9; Thu, 1 Nov 2018 14:19:49 -0700 (PDT) Date: Thu, 01 Nov 2018 21:19:00 -0000 From: Joel Brobecker To: Brian Vandenberg Cc: gdb-patches@sourceware.org, ro@CeBiTec.Uni-Bielefeld.DE Subject: Re: [PATCH][PR gdb/8527] Interrupt not functional in Eclipse/CDT on Solaris Message-ID: <20181101211949.GB2705@adacore.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) X-SW-Source: 2018-11/txt/msg00006.txt.bz2 Hi Brian, > In Solaris: > > If gdb attaches to a process that either has no controlling terminal, > or the controlling terminal differs from the one gdb is running under, > break/^C doesn't interrupt the debugged process. > > This is a fix that was proposed for this problem quite awhile ago but > never implemented; it's been in the Adacore GDB branch for quite > awhile. > > Without going into unnecessary details I cannot easily run the test > suite against this change right now. If this patch gets rejected > based on that, when I have time I'll see about getting IllumOS > installed in a VM and test it there, but the problem was originally > found in sparc Solaris. > > ---- > > note: this patch was tested against 8.1.1. It looks like it probably > still applies on the 8.2 branch, but I won't be able to test it until > 8.2 is released. > > -brian > > ps, my assignment/release forms were completed/received 10/30/2017 > gdb/Changelog: > 2018-08-07 Brian Vandenberg > > PR gdb/8527 > * procfs.c (proc_wait_for_stop): calls to set_sigint_trap and > clear_sigint_trap. I'm not sure anyone took the time to answer this message; if not, I apologize. I can testify that, for as long as we got the patch in the AdaCore sources, we never noticed any ill effect. We never got to validate it against the official testsuite, unfortunately, because for some reason, when I did so, our Solaris machines would badly crash. Did you run the testsuite before and after the patch, by any chance? Rainer (in Cc:) is our maintainer for Solaris, so he may have an opinion. In the meantime, I have a trivial coding style comment: > > diff --git a/gdb/procfs.c b/gdb/procfs.c > index 7b7ff45..7cd870c 100644 > --- a/gdb/procfs.c > +++ b/gdb/procfs.c > @@ -913,7 +913,12 @@ proc_wait_for_stop (procinfo *pi) > > procfs_ctl_t cmd = PCWSTOP; > > + /* PR gdb/8527 > + * Was not correctly interrupting the inferior process > + * when ^C was pressed in the debug terminal. > + */ For multiline comments like the above, we do not repeat the '*' at the beginning of each line. /* PR gdb/8527: Was not correctly interrupting the inferior process when ^C was pressed in the debug terminal. */ And if I may, reading this sentence, it's a bit hard to understand what the comment is trying to explain. The following might be a little more precise: /* PR gdb/8527: Call set_sigint_trap to make sure that a ctrl-c pressed in the debugger terminal gets passed down to the inferior, thus causing it to be interrupted. */ > + set_sigint_trap(); > + > win = (write (pi->ctl_fd, (char *) &cmd, sizeof (cmd)) == sizeof (cmd)); > + > + /* PR gdb/8527 */ > + clear_sigint_trap(); > + > /* We been runnin' and we stopped -- need to update status. */ > pi->status_valid = 0; -- Joel