From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30626 invoked by alias); 22 Sep 2017 18:56:40 -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 30612 invoked by uid 89); 22 Sep 2017 18:56:40 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-6.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_1,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=U*gdb-patches, gdbpatchessourcewareorg, gdb-patches@sourceware.org X-HELO: eggs.gnu.org Received: from eggs.gnu.org (HELO eggs.gnu.org) (208.118.235.92) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 22 Sep 2017 18:56:38 +0000 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dvT7s-0005pR-Iu for gdb-patches@sourceware.org; Fri, 22 Sep 2017 14:56:37 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:45749) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dvT7n-0005n4-0A; Fri, 22 Sep 2017 14:56:31 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4825 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1dvT7k-0005OF-Dt; Fri, 22 Sep 2017 14:56:30 -0400 Date: Fri, 22 Sep 2017 18:56:00 -0000 Message-Id: <838th6d0l1.fsf@gnu.org> From: Eli Zaretskii To: Sergio Durigan Junior CC: gdb-patches@sourceware.org, palves@redhat.com In-reply-to: <878th64nqk.fsf@redhat.com> (message from Sergio Durigan Junior on Fri, 22 Sep 2017 14:00:51 -0400) Subject: Re: [PATCH v3 4/5] Implement "set cwd" command on GDB Reply-to: Eli Zaretskii References: <20170912042325.14927-1-sergiodj@redhat.com> <20170921225926.23132-1-sergiodj@redhat.com> <20170921225926.23132-5-sergiodj@redhat.com> <83poajcg9a.fsf@gnu.org> <878th64nqk.fsf@redhat.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-IsSubscribed: yes X-SW-Source: 2017-09/txt/msg00693.txt.bz2 > From: Sergio Durigan Junior > Cc: gdb-patches@sourceware.org, palves@redhat.com > Date: Fri, 22 Sep 2017 14:00:51 -0400 > > On Friday, September 22 2017, Eli Zaretskii wrote: > > >> +@kindex set cwd > >> +@cindex change inferior's working directory > >> +@item set cwd @r{[}@var{directory}@r{]} > >> +Set the inferior's working directory to @var{directory}. If not > >> +given, @var{directory} uses @file{'~'}. > > > > I think we should document here what does "~" mean on MS-Windows, > > especially since, when HOME is not in the environment, Gnulib's glob > > module doesn't behave according to MS platform recommendations (which > > say not to create files directly below %HOMEDRIVE%%HOMEPATH%). > > Sure, but just to be clear, this text was strongly based on another part > of the docs, which also mentions '~' without explaining further. > > As I am totally out of the loop when it comes to Windows environments, > I'd appreciate a suggestion for the new text. If you write the Unix part, I can propose how to amend it to cover Windows. OK? > > Does this show the original value typed by the user, or the expanded > > value? E.g., if the user types "set cwd ~/foo", what will "show cwd" > > display? If it shows the unexpanded form, does that mean the actual > > cwd will change if, say, HOME changes? > > Pedro and I had a conversation about this specific topic yesterday, and > the decision was that the host should not do any path expansion on this > case. Therefore, whatever the user sets with "set cwd" is not expanded > until the inferior starts, which means that it is the target who > performs the expansion. There's no contradiction between these two sides of this issue. For native debugging, host == target, so the host can expand. For the non-native debugging, you can ask the target to do the expansion and store the result. Either way IMO is better than expanding at run time, because the latter makes the expansion dependent on factors which could be out of the user control, and also requires every use of the value to call gdb_tilde_expand, thus wasting cycles. > > This seems to pass the unexpanded cwd directly to CreateProcess. I > > don't think this will work on Windows, as this directory is not > > interpreted by any shell, so "~" will cause errors. I think we should > > pass this via gdb_tilde_expand, like we do in the Unix case, and I > > also think we should mirror all the slashes in the result, just in > > case. > > Hm, you're right. I will call "gdb_tilde_expand" here. I'm not sure > what you mean by "mirror all the slashes in the result". Do you mean > "escape the slashes"? No, I mean convert forward slashes to backslashes. Thanks.