From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 81097 invoked by alias); 22 Mar 2016 12:24:09 -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 81088 invoked by uid 89); 22 Mar 2016 12:24:08 -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,SPF_HELO_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=transfers, Breakpoint, Won't, Wont 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, 22 Mar 2016 12:24:06 +0000 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (Postfix) with ESMTPS id 2D21C804FA for ; Tue, 22 Mar 2016 12:24:05 +0000 (UTC) Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u2MCO3rr007774; Tue, 22 Mar 2016 08:24:04 -0400 Subject: Re: [patch] Suggest newer gdbserver if it has no qXfer:exec-file:read To: Jan Kratochvil , gdb-patches@sourceware.org References: <20160319201842.GA16540@host1.jankratochvil.net> Cc: Gary Benson From: Pedro Alves Message-ID: <56F13963.9040204@redhat.com> Date: Tue, 22 Mar 2016 12:24:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <20160319201842.GA16540@host1.jankratochvil.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2016-03/txt/msg00457.txt.bz2 On 03/19/2016 08:18 PM, Jan Kratochvil wrote: > Hi, > > currently: > $ gdbserver-7.9 :1234 true & > $ gdb -q -ex 'target remote :1234' # that -q is not relevant here > Remote debugging using :1234 > warning: Could not load vsyscall page because no executable was specified > try using the "file" command first. > 0x00007ffff7ddcc80 in ?? () > (gdb) b main > No symbol table is loaded. Use the "file" command. > Make breakpoint pending on future shared library load? (y or [n]) _ > > While one may not realize a newer gdbserver would fix that: > $ gdbserver-7.10 :1234 true & > $ gdb -q -ex 'target remote :1234' # that -q is not relevant here > Remote debugging using :1234 > Reading /usr/bin/true from remote target... > warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead. > Reading /usr/bin/true from remote target... > Reading symbols from target:/usr/bin/true...Reading symbols from /usr/lib/debug/usr/bin/true.debug...done. > done. > Reading /lib64/ld-linux-x86-64.so.2 from remote target... > Reading /lib64/ld-linux-x86-64.so.2 from remote target... > Reading symbols from target:/lib64/ld-linux-x86-64.so.2...Reading symbols from /usr/lib/debug/usr/lib64/ld-2.22.so.debug...done. > done. > 0x00007ffff7ddcc80 in _start () from target:/lib64/ld-linux-x86-64.so.2 > (gdb) b main > Breakpoint 1 at 0x555555555650: file src/true.c, line 59. > (gdb) _ > > This can be more common case with the popular containers. Therefore > suggesting to print there also: > warning: No executable has been specified (see the "file" command) and remote gdbserver does not support packet "qXfer:exec-file:read" - please use FSF gdbserver version 7.10 or later. > > OK for check-in? > > No regressions on {x86_64,x86_64-m32,i686}-fedora23-linux-gnu. > > The "qXfer:exec-file:read" support in GDB and gdbserver was implemented by: > commit c78fa86a213db1bdef328437ac262a4f54577827 > Author: Gary Benson > Date: Fri Apr 17 09:47:30 2015 +0100 > Implement remote_pid_to_exec_file using qXfer:exec-file:read > > > Thanks, > Jan > > > gdbexec.patch > > > gdb/ChangeLog > 2016-03-19 Jan Kratochvil > > * remote.c (remote_pid_to_exec_file): Print warning for unsupported > PACKET_qXfer_exec_file. > > diff --git a/gdb/remote.c b/gdb/remote.c > index af0a08a..d267736 100644 > --- a/gdb/remote.c > +++ b/gdb/remote.c > @@ -12977,7 +12977,13 @@ remote_pid_to_exec_file (struct target_ops *self, int pid) > char *annex = NULL; > > if (packet_support (PACKET_qXfer_exec_file) != PACKET_ENABLE) > - return NULL; > + { > + warning (_("No executable has been specified (see the \"file\" command) " > + "and remote gdbserver does not " > + "support packet \"qXfer:exec-file:read\"" > + " - please use FSF gdbserver version 7.10 or later.")); > + return NULL; > + } I think this will print the warning after connecting to any random stub, not just gdbserver. Won't it be confusing to suggest FSF gdbserver in that case? Thanks, Pedro Alves