From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 118428 invoked by alias); 1 Aug 2018 04:34:21 -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 118415 invoked by uid 89); 1 Aug 2018 04:34:20 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-3.1 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=maze X-HELO: gateway21.websitewelcome.com Received: from gateway21.websitewelcome.com (HELO gateway21.websitewelcome.com) (192.185.45.191) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 01 Aug 2018 04:34:18 +0000 Received: from cm14.websitewelcome.com (cm14.websitewelcome.com [100.42.49.7]) by gateway21.websitewelcome.com (Postfix) with ESMTP id 8BA86400CEB95 for ; Tue, 31 Jul 2018 23:34:16 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id kipjfzEGqkBj6kipsfIMPV; Tue, 31 Jul 2018 23:34:16 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=sHBbfD7iz0wScmNtyy7lFmjmthu8mulKhmqI2c3AVLw=; b=xUeC6Ytse29ofwysuOlNgEVher Q1jGLeTcFslsAlKk8Jcf23A62ca203cevRtXjahTNLQol9ZA1r1qUDzEvRg80DW2wMEIc6NL7U1u9 beYwJ3fWSiiah08G8Xof8yUX6; Received: from 75-166-85-72.hlrn.qwest.net ([75.166.85.72]:37840 helo=bapiya) by box5379.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from ) id 1fkipj-001jRS-2s; Tue, 31 Jul 2018 23:33:59 -0500 From: Tom Tromey To: Tom Tromey Cc: Philippe Waroquiers , Joel Brobecker , gdb-patches@sourceware.org Subject: Re: [RFA_v4 1/8] Add helper functions parse_flags and parse_flags_qcs References: <20180710213926.32240-1-philippe.waroquiers@skynet.be> <20180710213926.32240-2-philippe.waroquiers@skynet.be> <20180730201556.GA19069@adacore.com> <87pnz4o2iu.fsf@tromey.com> <20180731135242.GA3186@adacore.com> <87va8v4dmy.fsf@tromey.com> <1533071582.1467.21.camel@skynet.be> <87zhy6n35z.fsf@tromey.com> Date: Wed, 01 Aug 2018 04:34:00 -0000 In-Reply-To: <87zhy6n35z.fsf@tromey.com> (Tom Tromey's message of "Tue, 31 Jul 2018 22:04:08 -0600") Message-ID: <87va8un1s9.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2018-08/txt/msg00011.txt.bz2 >>>>> "Tom" == Tom Tromey writes: >>>>> "Philippe" == Philippe Waroquiers writes: Philippe> I am wondering if the correct solution would not be to avoid Philippe> having input lines memory being managed 'manually' like it is now, Philippe> as having the 'input const char* arg' disappearing 'under the carpet' Philippe> is quite tricky, and we might have other places where a previous Philippe> line of input must be kept alive, while new lines of input have Philippe> to be read. Tom> Yeah, my approach has been to require the callers of Tom> handle_line_of_input to handle the storage, so nothing relies on Tom> saved_command_line surviving across reentrant calls. The bug in my patch turns out to be this line in top.c: if (repeat_arguments != NULL && cmd_start == saved_command_line) ... which relies on handle_line_of_input returning saved_command_line exactly rather than a copy. Fixing this in a good way will require passing a bit more information through the maze of functions. This part of gdb sure seems complicated for what it does. A less principled way to fix this would be to stuff another global in there somewhere, to indicate that the current command is a repeat. This is "safe" in that nearly nothing ought to check the global. However, I think I'd rather try not to introduce more globals, at least unless I get too annoyed. Tom