From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 42916 invoked by alias); 24 Apr 2019 20:50:51 -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 42908 invoked by uid 89); 24 Apr 2019 20:50:51 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-7.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=ham version=3.3.1 spammy=HX-Languages-Length:1270, shell_command X-HELO: gateway31.websitewelcome.com Received: from gateway31.websitewelcome.com (HELO gateway31.websitewelcome.com) (192.185.143.4) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 24 Apr 2019 20:50:49 +0000 Received: from cm12.websitewelcome.com (cm12.websitewelcome.com [100.42.49.8]) by gateway31.websitewelcome.com (Postfix) with ESMTP id 7C04DA203 for ; Wed, 24 Apr 2019 15:50:48 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id JOquhYlftiQerJOquhFlYi; Wed, 24 Apr 2019 15:50:48 -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=AVCNWHnYI7X7cZ7paBfrhHVt8CEOH+ZS9a9n0wbiLo8=; b=yTK6KVcgKKdOiHzKjoTz3iLBtL zLgLu1CfQHcrYz7tmzLDX0W1FhdJHwew+2qUC1wpdWWuAGHo9HkImyopO3a42fR4Gl+40D63lR9n3 eFvRehL6UrWR5e2FDOMjs8ylz; Received: from 97-122-168-123.hlrn.qwest.net ([97.122.168.123]:55080 helo=murgatroyd) by box5379.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from ) id 1hJOqu-0040g9-91; Wed, 24 Apr 2019 15:50:48 -0500 From: Tom Tromey To: Philippe Waroquiers Cc: gdb-patches@sourceware.org Subject: Re: [RFA 2/4] Implement | (pipe) command. References: <20190420212153.30934-1-philippe.waroquiers@skynet.be> <20190420212153.30934-3-philippe.waroquiers@skynet.be> Date: Wed, 24 Apr 2019 20:50:00 -0000 In-Reply-To: <20190420212153.30934-3-philippe.waroquiers@skynet.be> (Philippe Waroquiers's message of "Sat, 20 Apr 2019 23:21:51 +0200") Message-ID: <871s1rf7q0.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2019-04/txt/msg00500.txt.bz2 >>>>> "Philippe" == Philippe Waroquiers writes: Philippe> + while (*shell_command && *shell_command != '|') Philippe> + shell_command++; I think using strchr would be preferable here. Philippe> + if (gdb_cmd.length () == 0) Use .empty instead. Philippe> + if (gdb_cmd.length () == 0) Likewise. Philippe> + to = popen (shell_command, "w"); I wonder if it's better to use libiberty's pexecute code? This may avoid the WIFEXITED problems. Philippe> + /* In case GDB_CMD switches of inferior/thread/frame, the below Philippe> + restores the inferior/thread/frame. */ Philippe> + scoped_restore_current_thread restore; What's the rationale for this? Philippe> + gdb_cmd_result = execute_command_to_string (gdb_cmd.c_str (), Philippe> + from_tty); Philippe> + Philippe> + if (fwrite (gdb_cmd_result.c_str (), 1, gdb_cmd_result.length (), to) Philippe> + != gdb_cmd_result.length ()) Philippe> + { Philippe> + error (_("error writing \"%s\" result to \"%s\", errno %s"), Philippe> + gdb_cmd.c_str (), shell_command, safe_strerror (errno)); Philippe> + } Maybe it would be preferable to redirect gdb's actual output here instead, using whatever mechanism it is that "set logging" uses. Tom