From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 39019 invoked by alias); 28 Sep 2017 04:10:56 -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 39007 invoked by uid 89); 28 Sep 2017 04:10:56 -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; Thu, 28 Sep 2017 04:10:54 +0000 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6D33D2FDC39; Thu, 28 Sep 2017 04:10:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 6D33D2FDC39 Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=sergiodj@redhat.com Received: from psique.yyz.redhat.com (unused-10-15-17-193.yyz.redhat.com [10.15.17.193]) by smtp.corp.redhat.com (Postfix) with ESMTP id F336785A38; Thu, 28 Sep 2017 04:10:52 +0000 (UTC) From: Sergio Durigan Junior To: GDB Patches Cc: Pedro Alves , Eli Zaretskii Subject: [PATCH v4 0/3] New "set cwd" command Date: Thu, 28 Sep 2017 04:10:00 -0000 Message-Id: <20170928041046.5468-1-sergiodj@redhat.com> In-Reply-To: <20170912042325.14927-1-sergiodj@redhat.com> References: <20170912042325.14927-1-sergiodj@redhat.com> X-IsSubscribed: yes X-SW-Source: 2017-09/txt/msg00846.txt.bz2 v1: https://sourceware.org/ml/gdb-patches/2017-09/msg00321.html v2: https://sourceware.org/ml/gdb-patches/2017-09/msg00458.html v3: https://sourceware.org/ml/gdb-patches/2017-09/msg00658.html Changes from v3: * Patch #1 (former patch #3): - Do not s/tilde_expand/gdb_tilde_expand/ on gdb/cli/cli-cmds.c:cd_command (leave as a possible cleanup for later patches). - Use only GLOB_TILDE_CHECK (and not "GLOB_TILDE | GLOB_TILDE_CHECK | GLOB_ONLYDIR") when calling "glob", making "gdb_tilde_expand" to behave as a general-purpose "tilde-expander" (i.e., don't deal only with dirs). * Patch #2 (former patch #4): - Rewrite several parts of the documentation (NEWS, gdb.texinfo, commit log, etc.) in order to remove target-dependent sentences explaining how GDB deals with the inferior's cwd. - Expand documentation to explain what "~" means on Windows. - Improve Windows-related code to perform wide-char conversion when needed, and mirror slashes of paths provided by the user. Call "gdb_tilde_expand" before passing the path to CreateProcess. - Make "set cwd" (without arguments) actually clean up the previously set inferior's cwd (i.e., reset it to an empty value), instead of defaulting to "~" as "cd" does. Adjust testsuite and code accordingly. * Patch #3 (former patch #5): - Rewrite several parts of the documentation (NEWS, gdb.texinfo, commit log, etc.) in order to remove target-dependent sentences explaining how GDB deals with the inferior's cwd. - s/gdbserver/remote server/ in the manual. - s/@code/@kbd/ for writing commands in the manual. - Improve debug string on gdb/gdbserver/server.c:handle_general_set when dealing with "QSetWorkingDir". - Implement the "set cwd"-without-arguments cleanup on gdbserver, by making "QSetWorkingDir" accept an empty argument. This way, we'll always send the packet to the remote stub, even when the user hasn't set any cwd for the inferior. - Improved debug string on gdb/remote.c's code to handle "QSetWorkingDir". - Improved message when calling "untested" because "[use_gdb_stub]" is true. 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 command works for both native and remote debugging scenarios. The idea here is that "set cwd" will become the de facto way of setting the inferior's cwd. Currently, the user can use "cd" for that, but there are side effects: with "cd", GDB also switches to another directory, and that can impact the loading of scripts and other files. With "set cwd", we separate the logic into a new command. To maintain backward compatibility, if the user issues a "cd" command but doesn't use "set cwd", then the inferior's cwd will still be changed according to what the user specified. However, "set cwd" has precedence over "cd", so it can always be used to override it.