This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[patch] Suggest newer gdbserver if it has no qXfer:exec-file:read
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: gdb-patches at sourceware dot org
- Cc: Gary Benson <gbenson at redhat dot com>
- Date: Sat, 19 Mar 2016 21:18:42 +0100
- Subject: [patch] Suggest newer gdbserver if it has no qXfer:exec-file:read
- Authentication-results: sourceware.org; auth=none
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 <gbenson@redhat.com>
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 <jan.kratochvil@redhat.com>
* 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);