From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 73674 invoked by alias); 12 Sep 2017 16:48:26 -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 73556 invoked by uid 89); 12 Sep 2017 16:48:21 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 12 Sep 2017 16:48:19 +0000 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 42BE5C04B92A; Tue, 12 Sep 2017 16:48:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 42BE5C04B92A Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=sergiodj@redhat.com Received: from localhost (unused-10-15-17-193.yyz.redhat.com [10.15.17.193]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0D2B76A837; Tue, 12 Sep 2017 16:48:05 +0000 (UTC) From: Sergio Durigan Junior To: Eli Zaretskii Cc: gdb-patches@sourceware.org, palves@redhat.com Subject: Re: [PATCH 0/4] New "set cwd" command References: <20170912042325.14927-1-sergiodj@redhat.com> <83fubsq84f.fsf@gnu.org> Date: Tue, 12 Sep 2017 16:48:00 -0000 In-Reply-To: <83fubsq84f.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 12 Sep 2017 17:55:28 +0300") Message-ID: <87zi9zeud6.fsf@redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-IsSubscribed: yes X-SW-Source: 2017-09/txt/msg00339.txt.bz2 On Tuesday, September 12 2017, Eli Zaretskii wrote: >> From: Sergio Durigan Junior >> Cc: Pedro Alves >> Date: Tue, 12 Sep 2017 00:23:21 -0400 >> >> This patch series is a followup of the discussion that happened at: >> >> https://sourceware.org/ml/gdb-patches/2017-09/msg00160.html >> >> It implements a new GDB command, "set cwd", which is used to set the >> current working directory of the inferior that will be started. This >> is a GDB-only command for now; its gdbserver counterpart will come >> later. > > Can you summarize the idea, please? (I didn't follow that > discussion.) Do we chdir into that directory each time before we > run/resume the debuggee? Or do we use the shell (in which case this > is limited to Posix hosts)? Or something else? Sure. The idea is that there are other inferior commands already, like "set args" or "set environment", which function per-inferior. However, the current "cd" command doesn't, and this is not only a discrepancy but also gets in the way of a future feature that will implemented: the ability to tell gdbserver to cd into another directory before starting the remote inferior. GDB's cd_command uses chdir, but also uses tilde_expand, from readline, to expand the path given by the user. It also runs right when the user invokes "cd" from the CLI. The new "set cwd" command also uses chdir (i.e., no shell involved), but because it is shared code between GDB and gdbserver, and because gdbserver doesn't link against readline, it cannot use tilde_expand. Therefore I had to import the "glob" module from gnulib. And also, this specific chdir is only invoked after the call to fork/vfork on fork_inferior, but before we actually execute the binary. I hope I could clarify this for you, but please let me know if you have more questions. Thanks, -- Sergio GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36 Please send encrypted e-mail if possible http://sergiodj.net/