From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 64023 invoked by alias); 17 Apr 2015 13:36:36 -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 64010 invoked by uid 89); 17 Apr 2015 13:36:35 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 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 (AES256-GCM-SHA384 encrypted) ESMTPS; Fri, 17 Apr 2015 13:36:34 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t3HDaUlx009107 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Fri, 17 Apr 2015 09:36:31 -0400 Received: from blade.nx (ovpn-116-95.ams2.redhat.com [10.36.116.95]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t3HDaUIg023515; Fri, 17 Apr 2015 09:36:30 -0400 Received: by blade.nx (Postfix, from userid 1000) id E9E69263FB9; Fri, 17 Apr 2015 14:36:28 +0100 (BST) Date: Fri, 17 Apr 2015 13:36:00 -0000 From: Gary Benson To: Doug Evans Cc: gdb-patches Subject: Re: [PATCH 2/7] Introduce target_fileio_set_fs Message-ID: <20150417133628.GA26681@blade.nx> References: <1429186791-6867-1-git-send-email-gbenson@redhat.com> <1429186791-6867-3-git-send-email-gbenson@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-IsSubscribed: yes X-SW-Source: 2015-04/txt/msg00675.txt.bz2 Doug Evans wrote: > On Thu, Apr 16, 2015 at 5:19 AM, Gary Benson wrote: > > This commit introduces a new target method target_fileio_set_fs > > and adds calls to it in various places. This allows support to > > be added for targets where processes do not share a common > > filesystem. > > [snip] > > > > diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c > > index 9d75b66..44b2970 100644 > > --- a/gdb/linux-tdep.c > > +++ b/gdb/linux-tdep.c > > @@ -715,6 +715,9 @@ linux_info_proc > > if (args && args[0]) > > error (_("Too many parameters: %s"), args); > > > > + /* Access /proc/ from our filesystem. */ > > + target_fileio_set_fs (NULL); > > + > > printf_filtered (_("process %ld\n"), pid); > > if (cmdline_f) > > { > > [here and elsewhere, but here's a good example] > It seems odd to have to continually set global state (the target fs) > like this before being able to access the fs. > Intuitively, I'd expect it to either be set once during some > initialization phase, and/or have something passed as a parameter > on down. > > Perhaps things will become clearer later in the patch set, but if > you have reasons for doing it this way (that aren't mentioned > elsewhere) it'd be good to hear them. It was basically because the alternative was to add a parameter to target_filesystem_is_local and target_fileio_{open,readlink,unlink} (and all their target vector implementations) to pass around whatever inferior you were talking about. You'd also have to make a lot more changes to the remote protocol: either vFile:{open,unlink,readlink} would need an extra argument (indicated with qSupported) or you'd need new "fs" versions of each packet. Both Pedro and I thought that was ugly. Thanks, Gary -- http://gbenson.net/