From: Pedro Alves <palves@redhat.com>
To: Jan Kratochvil <jan.kratochvil@redhat.com>
Cc: gdb-patches@sourceware.org, Gary Benson <gbenson@redhat.com>
Subject: Re: [patch] Suggest newer gdbserver if it has no qXfer:exec-file:read
Date: Tue, 22 Mar 2016 13:56:00 -0000 [thread overview]
Message-ID: <56F14F1E.5010606@redhat.com> (raw)
In-Reply-To: <20160322131604.GA24312@host1.jankratochvil.net>
On 03/22/2016 01:16 PM, Jan Kratochvil wrote:
> On Tue, 22 Mar 2016 13:24:03 +0100, Pedro Alves wrote:
>> On 03/19/2016 08:18 PM, Jan Kratochvil wrote:
>>> 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?
>
> (1) I think this message can only appear during a mistake. Is it right?
> In fact this is my primary concern with this patch.
> In such case I find any info better than no info.
>
> (2) Still it may suggest they could for example implement qXfer:exec-file:read
> in their gdbserver stub if appropriate. I believe that people who use custom
> gdbserver stub are more aware of how to fix it than normal
> (=desktop/enterprise) OS developers who just try to debug some programs.
>
> (3) Do you have a better idea? One could add "if approproate" in that
> message but I find that excessive. One could detect FSF gdbserver
> (if possible, I do not think it is, BTW it could be good to identify
> variant+version of gdbserver over the protocol) but then still if it either is
> or is not a FSF gdbserver that message may be relevant in some cases.
>
- It's usually a mistake, though you can genuinely not have a
binary available. Not "only", but "usually".
- Random stubs may not know at all the executable that is running -- the
remote end is often just bare metal raw memory, no concept of elf, etc.
So it's not just a matter of implementing a packet - more tooling might
and I suspect will, be necessary. OTOH, there are OSs where it's just not
possible, by design, to retrieve the name of the executable a process
is running, like OpenBSD (I find it odd not to allow a ptracer access
to that, but, alas).
- I think the important points are:
- The user did not specify the executable manually.
- The target/server does not support automatic executable
retrieval.
- I see that at least the following choices to correct the situation:
#1 - Upgrade server to some version that supports automatic automatic
executable retrieval.
#2 - Hack on stub/server yourself to add support for automatic
executable retrieval, if possible on the target.
#3 - Use the "file" command.
If you're connecting with a new gdb to an older gdbserver, it usually
means that installing a newer gdbserver is more than a couple
seconds work, and may not even be possible. I think #3 will be the
path most often taken.
So I'd suggest:
warning: No executable has been specified and target does not support
determining executable automatically. Try using the \"file\" command.
Seeing this, users that can hack on a remote stub will probably
realize that there's now some way for gdb to automatically retrieve
the executable. We don't need to expose implementation details for those
users; they'll be savvy enough to find the necessary info in the RSP
manual. For other users, talking about implementation details may
largely be noise.
Thinking of local/remote parity (and perhaps some day using gdbserver
for local debugging), that text is also generic enough that it could
be emitted by common code instead.
WDYT?
Thanks,
Pedro Alves
next prev parent reply other threads:[~2016-03-22 13:56 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-19 20:18 Jan Kratochvil
2016-03-22 9:15 ` Gary Benson
2016-03-22 12:24 ` Pedro Alves
2016-03-22 13:16 ` Jan Kratochvil
2016-03-22 13:56 ` Pedro Alves [this message]
2016-03-23 21:15 ` Jan Kratochvil
2016-03-24 16:59 ` Jan Kratochvil
2016-03-24 22:09 ` [patch] Workaround gdbserver<7.7 for setfs [Re: [patch] Suggest newer gdbserver if it has no qXfer:exec-file:read] Jan Kratochvil
2016-03-24 22:32 ` [patchv2 2/2] Workaround gdbserver<7.7 for setfs Jan Kratochvil
2016-03-30 14:17 ` Pedro Alves
2016-04-03 19:30 ` Jan Kratochvil
2016-04-04 21:14 ` [patchv3] " Jan Kratochvil
2016-04-05 16:29 ` Pedro Alves
2016-04-06 13:49 ` [patchv4] " Jan Kratochvil
2016-04-06 14:31 ` Pedro Alves
2016-04-06 15:19 ` [commit] " Jan Kratochvil
2016-04-06 19:09 ` [revert] " Jan Kratochvil
2016-04-26 21:29 ` [patchv5] " Jan Kratochvil
2016-04-27 9:59 ` Pedro Alves
2016-04-27 19:32 ` [commit+7.11] " Jan Kratochvil
2016-04-28 10:36 ` Gary Benson
2016-03-24 22:32 ` [patchv2 1/2] " Jan Kratochvil
2016-04-05 16:32 ` [patch] Suggest newer gdbserver if it has no qXfer:exec-file:read Pedro Alves
2016-04-05 17:14 ` Jan Kratochvil
2016-04-05 16:58 ` Pedro Alves
2016-04-06 14:34 ` [commit] " Jan Kratochvil
2016-04-06 14:49 ` [commit fix] Revert check-in by a mistake in the previous commit [Re: [commit] Suggest newer gdbserver if it has no qXfer:exec-file:read] Jan Kratochvil
2016-04-06 15:04 ` [commit] Suggest newer gdbserver if it has no qXfer:exec-file:read Pedro Alves
2016-04-06 15:29 ` Jan Kratochvil
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56F14F1E.5010606@redhat.com \
--to=palves@redhat.com \
--cc=gbenson@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=jan.kratochvil@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox