From: Pedro Alves <pedro@palves.net>
To: "Schimpe, Christina" <christina.schimpe@intel.com>,
Andrew Burgess <aburgess@redhat.com>,
"gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: [PATCH v2 1/3] gdb: Make global feature array a per-remote target array
Date: Wed, 25 May 2022 15:27:14 +0100 [thread overview]
Message-ID: <169590f1-2f6f-651b-dd12-d00f123e5199@palves.net> (raw)
In-Reply-To: <DM5PR11MB201253E8BC81A11A5F4AAFB3F9FA9@DM5PR11MB2012.namprd11.prod.outlook.com>
Hi Christina,
On 2022-04-27 14:55, Schimpe, Christina wrote:
> Hi Pedro and Andrew,
>
> Thanks a lot for identifying and fixing the regression and thank you for the review.
>
> I added my comments for Pedro's review below. It would be great if you could briefly review
> my new suggestion for the logging.
>
>
>> I'm not 100% sure about the solution here.
>>
>> What is the reasoning for making "set remote foo" affect future connections
>> in addition to the current connection? I didn't see a discussion about that,
>> and it seems counterintuitive to me offhand. I would think that:
>>
>> - if connected, the set command affects the current connection.
>>
>> - if not connected, the set command affects future connections.
>>
>> ... would be the simplest solution. Thus, if the inferior you have selected is
>> connected and you want to configure future connections, you'd first drop
>> the connection, or switch to an inferior that is not connected.
>>
>
> I think the reason why I did not investigate this approach further is because these "set remote"
> commands applied to future connections before and I did not want to change that.
> My initial patch did not add any logging for the set remote commands and the user would not
> have noticed that the configuration does not apply to future targets anymore (if connected).
> But with the appropriate logging it should be clear and the user should be warned. So I don't
> have any preferences anymore and would go ahead to adapt the patch to Pedro's suggestion,
> if there are no further arguments against it.
>
>> Also, I think it would be better if both the set and the show commands used
>> the same wording. Currently you have, when not connected:
>>
>> (gdb) set remote X-packet off
>> Use of the 'p' packet for future remote targets is set to "off".
>> (gdb) show remote X-packet
>> Support for the 'p' packet on newly created remote targets is "disabled".
>>
>> Note the
>> "Use of" vs "Support for",
>> and the
>> "for future remote targets", vs "on newly created remote targets".
>>
>> Also note that "disabled" is not accepted by the "set command", while
>> printing it in quotes suggests that it would. I mean, note:
>>
>> Current master:
>>
>> (gdb) show remote X-packet
>> Support for the `p' packet is currently disabled.
>>
>> (no quotes around disabled)
>>
>> vs your patches:
>>
>> (gdb) show remote X-packet
>> Support for the 'p' packet on newly created remote targets is "disabled".
>>
>> and of course:
>>
>> (gdb) set remote X-packet disabled
>> "on", "off" or "auto" expected.
>>
>
> Yes, you are right.
>
> So I now would suggest the following logging for the packet configuration commands
> (based on Pedro's suggestion for the new packet configuration):
>
> ~~~
> (gdb) set remote kill-packet
> "on", "off" or "auto" expected.
> (gdb) show remote kill-packet
> Support for the 'vKill' packet on future remote targets is "auto", currently unknown.
> (gdb) set remote kill-packet off
> Support for the 'vKill' packet on future remote targets is set to "off".
> (gdb) show remote kill-packet
> Support for the 'vKill' packet on future remote targets is "off".
> (gdb) target extended-remote :1234
> Remote debugging using :1234
> (gdb) set remote kill-packet on
> Support for the 'vKill' packet on the current remote target is set to "on".
> (gdb) show remote kill-packet
> Support for the 'vKill' packet on the current remote target is "on".
> ~~~~
> So the only difference between the logging for the show and the set commands, is that
> for set we log "is set to" instead of "is".
>
Seems fine.
>
> And for the memory read and write configuration of patch (2/3):
>
> ~~~~
> (gdb) set remote memory-read-packet-size
> Argument required (integer, "fixed" or "limited').
> (gdb) show remote memory-read-packet-size
> The memory-read-packet-size on future remote targets is 0 (default). The actual limit will be further reduced dependent on the target.
> (gdb) set remote memory-read-packet-size fixed
> Future targets may not be able to correctly handle a memory-read-packet-size
You say "future remote targets" in the other messages, so I guess here you'd
say "Future remote targets" instead of "Future targets" too.
> of 16384 bytes. Change the packet size for future remote targets? (y or n) y
> The memory-read-packet-size on future remote targets is set to "fixed".
> (gdb) show remote memory-read-packet-size
> The memory-read-packet-size on future remote targets is 0 (default). Packets are fixed at 16384 bytes.
> (gdb) target extended-remote :1234
> Remote debugging using :1234
> (gdb) set remote memory-read-packet-size 16300
> The memory-read-packet-size on the current remote targets is set to 16300.
"remote targets" -> "remote target" (singular).
> (gdb) show remote memory-read-packet-size
> The memory-read-packet-size on the current remote target is 16300. Packets are fixed at 16300 bytes.
> ~~~~
>
Seems all fine to me.
> Note that the configuration options before were shown as
> ~~~~
> (gdb) set remote memory-read-packet-size
> Argument required (integer, `fixed' or `limited').
> ~~~~
>
> I also noted a small issue in the configuration for the "limited" option:
> ~~~~
> (gdb) set remote memory-read-packet-size
> Argument required (integer, `fixed' or `limited').
> (gdb) set remote memory-read-packet-size limited
> Invalid memory-read-packet-size (bad syntax).
> (gdb) set remote memory-read-packet-size limit
> (gdb)
> ~~~~
> So currently you need to specify "limit" although "limited" is suggested. I would adapt it to "limited" in the v3.
Sounds like that may break someone's scripts? I'd go for tweaking the suggestion to
say "limit" instead.
I went to look what does the manual say, but I wasn't able to find where this comment
is documented in the manual... Odd.
The online help does say "limit", though:
(gdb) help set remote memory-read-packet-size
Set the maximum number of bytes per memory-read packet.
Specify the number of bytes in a packet or 0 (zero) for the
default packet size. The actual limit is further reduced
dependent on the target. Specify ``fixed'' to disable the
further restriction and ``limit'' to enable that restriction.
(gdb)
next prev parent reply other threads:[~2022-05-25 14:27 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-29 13:11 [PATCH v2 0/3] Apply fixme notes for multi-target support Christina Schimpe
2022-03-29 13:11 ` [PATCH v2 1/3] gdb: Make global feature array a per-remote target array Christina Schimpe
2022-03-29 13:45 ` Eli Zaretskii
2022-04-18 14:56 ` Tom Tromey
2022-04-18 19:01 ` Pedro Alves
2022-04-20 11:30 ` "show remote foo-packet" regression (Re: [PATCH v2 1/3] gdb: Make global feature array a per-remote target array) Pedro Alves
2022-04-20 11:31 ` Pedro Alves
2022-04-21 10:25 ` Andrew Burgess
2022-04-21 10:31 ` Pedro Alves
2022-04-21 11:01 ` Andrew Burgess
2022-04-21 16:28 ` Andrew Burgess
2022-04-21 18:20 ` Pedro Alves
2022-04-27 13:55 ` [PATCH v2 1/3] gdb: Make global feature array a per-remote target array Schimpe, Christina
2022-05-25 14:27 ` Pedro Alves [this message]
2022-06-01 10:45 ` Schimpe, Christina
2022-03-29 13:11 ` [PATCH v2 2/3] gdb: Add per-remote target variables for memory read and write config Christina Schimpe
2022-03-29 13:48 ` Eli Zaretskii
2022-04-18 14:56 ` Tom Tromey
2022-03-29 13:11 ` [PATCH v2 3/3] gdb: Remove workaround for the vCont packet Christina Schimpe
2022-04-18 14:59 ` Tom Tromey
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=169590f1-2f6f-651b-dd12-d00f123e5199@palves.net \
--to=pedro@palves.net \
--cc=aburgess@redhat.com \
--cc=christina.schimpe@intel.com \
--cc=gdb-patches@sourceware.org \
/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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).