This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] Suggest newer gdbserver if it has no qXfer:exec-file:read


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<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


gdbexec.patch


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;
+    }

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]