From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 75967 invoked by alias); 12 Aug 2015 13:02:52 -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 75957 invoked by uid 89); 12 Aug 2015 13:02:52 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD,SPF_HELO_PASS 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; Wed, 12 Aug 2015 13:02:51 +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 (Postfix) with ESMTPS id 410A83824E4; Wed, 12 Aug 2015 13:02:50 +0000 (UTC) Received: from blade.nx (ovpn-116-40.ams2.redhat.com [10.36.116.40]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t7CD2nPs012117; Wed, 12 Aug 2015 09:02:49 -0400 Received: by blade.nx (Postfix, from userid 1000) id A67022643BC; Wed, 12 Aug 2015 14:02:48 +0100 (BST) Date: Wed, 12 Aug 2015 13:02:00 -0000 From: Gary Benson To: Pedro Alves Cc: Joel Brobecker , Doug Evans , Jan Kratochvil , gdb-patches , Sandra Loosemore , =?iso-8859-1?Q?Andr=E9_P=F6nitz?= , Paul Koning Subject: Re: [PATCH 0/2] Better handling of slow remote transfers Message-ID: <20150812130248.GA15429@blade.nx> References: <001a11c301b0388ac5051d0c5ab8@google.com> <20150811185519.GA28644@host1.jankratochvil.net> <20150811195943.GC22245@adacore.com> <20150812094831.GD11096@blade.nx> <55CB1B8D.6010501@redhat.com> <20150812103831.GA12792@blade.nx> <55CB2DF8.2050506@redhat.com> <20150812123254.GA14726@blade.nx> <55CB4150.6090807@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <55CB4150.6090807@redhat.com> X-IsSubscribed: yes X-SW-Source: 2015-08/txt/msg00279.txt.bz2 Pedro Alves wrote: > On 08/12/2015 01:32 PM, Gary Benson wrote: > > Pedro Alves wrote: > > > IIUC, it still auto fetches the executable and then the solibs > > > from the target by default (e.g., after "attach"), so still > > > subject to lack of interruptibility? > > > > Yes and no. It will fetch the executable from the remote iff one > > has not been otherwise specified (i.e. by "file", or on the > > command line). It will *only* fetch libraries from the remote if > > the parent executable has a target prefix. So: > > > > (gdb) file a.out > > (gdb) target remote :9999 > > > > - exec_filename is "a.out" > > - exec_filename has no "target:" prefix > > - "target:" prefix is NOT applied to shared libraries > > - solib paths end up as "/path/to/libsolib.so.1" > > - solibs are NOT fetched over RSP > > > > But to me it looks like GDB _should_ retrieve the libraries out of > the target in this case. You'll usually have a local copy of the > executable, because you just compiled it, but not of the shared > libraries. It seems to me we're only considering this option > because we didn't make transfers interruptible? Right, but users who have been doing that will be using "set sysroot remote:": (gdb) file a.out (gdb) set sysroot remote: (gdb) target remote :9999 - gdb_sysroot is "target:" - solib paths end up as "target:/path/to/libsolib.so.1" - solibs ARE fetched over RSP This series basically means that: a) users get to type whatever they were typing before and have the same thing happen, with the exception of the 0.001% of users who have been typing "target remote :9999" with no "file" or "set sysroot" commands and debugging with no symbols whatsoever. b) those users can add "set auto-target-prefix off" in their .gdbinit c) users who want GDB to connect to a remote target and Just Work get to type "target remote :9999" without messing about with "file" and "set sysroot" commands. > > > I was only OK with trying to make transfers interruptible in the > > > branch assuming it was something non-invasive, like a missing > > > QUIT here and there. > > > > No, gdbserver sends the data in PBUFSIZ chunks, but GDB reads the > > data a character at a time. > > Can you expand on this? What code is it that reads the data a > character at a time? What data is gdb getting at when it does that? I was looking in getpkt_or_notif_sane_1, but I think maybe I misread it. I'll get back to you on this... Cheers, Gary -- http://gbenson.net/