From patchwork Sat Mar 19 20:18:42 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kratochvil X-Patchwork-Id: 11417 Received: (qmail 37423 invoked by alias); 19 Mar 2016 20:18:49 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 37410 invoked by uid 89); 19 Mar 2016 20:18:49 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=BAYES_00, KAM_LAZY_DOMAIN_SECURITY, RP_MATCHES_RCVD, SPF_HELO_PASS autolearn=no version=3.3.2 spammy=Breakpoint, 710, transfers, 1234 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; Sat, 19 Mar 2016 20:18:48 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (Postfix) with ESMTPS id 05A513B702 for ; Sat, 19 Mar 2016 20:18:47 +0000 (UTC) Received: from host1.jankratochvil.net (ovpn-116-22.ams2.redhat.com [10.36.116.22]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u2JKIgfT031818 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sat, 19 Mar 2016 16:18:46 -0400 Date: Sat, 19 Mar 2016 21:18:42 +0100 From: Jan Kratochvil To: gdb-patches@sourceware.org Cc: Gary Benson Subject: [patch] Suggest newer gdbserver if it has no qXfer:exec-file:read Message-ID: <20160319201842.GA16540@host1.jankratochvil.net> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.24 (2015-08-30) X-IsSubscribed: yes 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 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; + } if (filename != NULL) xfree (filename);