Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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: [patchv2 2/2] Workaround gdbserver<7.7 for setfs
Date: Wed, 30 Mar 2016 14:17:00 -0000	[thread overview]
Message-ID: <56FBDFE7.90203@redhat.com> (raw)
In-Reply-To: <20160324223241.GB2548@host1.jankratochvil.net>

On 03/24/2016 10:32 PM, Jan Kratochvil wrote:
> There was a bug in patchv1.
> 
> 
> move2.patch
> 

Please include self-contained a commit/rationale along with patch
posts (and reposts).  You had context in your intro to v1 that was
lost in v2.

> 
> gdb/ChangeLog
> 2016-03-24  Jan Kratochvil  <jan.kratochvil@redhat.com>
> 
> 	* remote.c (packet_ok): Add workaround for PACKET_vFile_setfs.
> 
> diff --git a/gdb/remote.c b/gdb/remote.c
> index bb027cf..f80fee8 100644
> --- a/gdb/remote.c
> +++ b/gdb/remote.c
> @@ -1453,7 +1453,15 @@ packet_ok (const char *buf, struct packet_config *config)
>      internal_error (__FILE__, __LINE__,
>  		    _("packet_ok: attempt to use a disabled packet"));
>  
> -  result = packet_check_result (buf);
> +  if (config == &remote_protocol_packets[PACKET_vFile_setfs]
> +      && strcmp (buf, "OK") == 0)
> +    {
> +      /* Workaround gdbserver < 7.7 before its fix from 2013-12-11.  */
> +      result = PACKET_UNKNOWN;
> +    }

This comment could use more detail.

E.g., reading this I'm left wondering, did it always respond OK to
unknown vFile packets, or to all unknown packets?  I think it was
actually the latter.

AFAICS from the commit you pointed at in v1, the "OK" was
gdbserver mistaking any unknown packet for a vStopped packet,
with vStopped being the notification ack for the "%Stop" RSP async
notification.  So it could also happen that gdb sends the setfs
packet while gdbserver had a pending notification, and then
gdbserver replies back a stop reply instead of "OK"...

We may need to guarantee an early enough setfs is attempted.
Is that already the case?

If I'm right and gdbserver mishandled _any_ unknown packet,
then I wonder whether you fix this one, but will trip on another
when you get past initial connection and actually do any serious
debugging?

If not, this may be sufficient.  Otherwise, we may need to come up with
a different workaround, maybe based on sending an early probe packet,
like "MustReplyEmpty", to which well behaved stubs reply empty, just because
that's not a known packet to them.  If a stub replies something other than
empty to that one, then maybe we should disable all other
auto-probed packets...  That may force-disable too much functionality though...

So in sum:

- Expand comment a bit / include commit log with rationale in the patch.

- Give assurance that this is sufficient and that we won't trip on the
  same thing with other packets anyway.  Otherwise we may need to think
  of something else.

Thanks,
Pedro Alves


  reply	other threads:[~2016-03-30 14:17 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-19 20:18 [patch] Suggest newer gdbserver if it has no qXfer:exec-file:read 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
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 1/2] Workaround gdbserver<7.7 for setfs Jan Kratochvil
2016-03-24 22:32           ` [patchv2 2/2] " Jan Kratochvil
2016-03-30 14:17             ` Pedro Alves [this message]
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-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=56FBDFE7.90203@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