From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 69079 invoked by alias); 14 Apr 2015 11:41:33 -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 69065 invoked by uid 89); 14 Apr 2015 11:41:33 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,SPF_HELO_PASS,T_RP_MATCHES_RCVD autolearn=no 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; Tue, 14 Apr 2015 11:41:32 +0000 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (Postfix) with ESMTPS id 031978E66E; Tue, 14 Apr 2015 11:41:31 +0000 (UTC) Received: from blade.nx (ovpn-116-95.ams2.redhat.com [10.36.116.95]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t3EBfUrG031027; Tue, 14 Apr 2015 07:41:30 -0400 Received: by blade.nx (Postfix, from userid 1000) id C64C0263FBA; Tue, 14 Apr 2015 12:41:29 +0100 (BST) Date: Tue, 14 Apr 2015 11:41:00 -0000 From: Gary Benson To: Doug Evans Cc: gdb-patches Subject: Re: [PATCH] Mark object files with "target:" filenames as OBJF_NONLOCAL_FILENAME Message-ID: <20150414114129.GB4660@blade.nx> References: <1428952063-2121-1-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/msg00517.txt.bz2 Doug Evans wrote: > On Mon, Apr 13, 2015 at 12:07 PM, Gary Benson wrote: > > This patch introduces a new objfile flag OBJF_NONLOCAL_FILENAME to > > denote that objfile->original_name and objfile->obfd->filename are > > filenames referring to files on filesystems other than GDB's local > > filesystem. allocate_objfile is updated to force > > OBJF_NONLOCAL_FILENAME if the specified name starts with "target:", > > and to not attempt to expand the name using gdb_abspath if flags has > > OBJF_NONLOCAL_FILENAME set. load_auto_scripts_for_objfile is updated > > to not attempt loading of auto-load scripts for objfiles with > > OBJF_NONLOCAL_FILENAME set in their flags. > > > > A new flag was created rather than reusing OBJF_NOT_FILENAME because > > setting that flag would stop Python's gdb.lookup_objfile from seeing > > the file, and it's not clear that that's desirable. > > > > Without this patch you *sometimes* get things like: > > > > Reading symbols from /home/gary/target:/lib64/libreadline.so.6... > > > > I haven't figured out why this doesn't always happen but it's plainly > > wrong :) > > > > Built and regtested on RHEL6.6 x86_64. > > > > Ok to commit? > > > > Cheers, > > Gary > > > > gdb/ChangeLog: > > > > * objfiles.h (OBJF_NONLOCAL_FILENAME): New define. > > * objfiles.c (allocate_objfile): Force OBJF_NONLOCAL_FILENAME > > for BFDs with "target:" filenames. Do not attempt to expand > > name if flags has OBJF_NONLOCAL_FILENAME set. > > * auto-load.c (load_auto_scripts_for_objfile): Do not attempt > > to auto-load scripts for OBJF_NONLOCAL_FILENAME objfiles. > > My first thought is that we'll be recording something twice, and that > can lead to problems (e.g., effort has to be expended to keep them in > sync). > "is nonlocal" is already specified by the "target:" in the name. > > While I'm all for building on "foo:bar" in path names (target:foo, > remote:foo, and so on), IWBN to build a library on top of that > rather than have sideband tables that recorded such extra info. > [Down the road I can imagine having a class for such things such > that we could augment what's recorded beyond just a "foo:bar" > string, but that's later, if ever.] > > IOW, how about having an "is non-local" predicate that is invoked on > the path whenever needed? > [it could be the current "is_target_filename" or if you wanted to add > a layer of abstraction that might be ok, depending on how this might > evolve] > > I realize this is a bit incongruous with OBJF_NOT_FILENAME, but I'd > rather head in the above direction than adding more OBJF_ flags. > > Thoughts? I'm happy to remake this patch using "is_target_filename". I'll do that and mail a version 2 tomorrow. (I've been thinking we might need something more than a prefix at some point, maybe something more URL-like, but like you say, we don't need that right now.) Cheers, Gary -- http://gbenson.net/