This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: RFC: "set" command with 2 arguments instead of one?
- From: Doug Evans <xdje42 at gmail dot com>
- To: Joel Brobecker <brobecker at adacore dot com>
- Cc: Andreas Schwab <schwab at linux-m68k dot org>, "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Sun, 23 Nov 2014 21:38:58 -0800
- Subject: Re: RFC: "set" command with 2 arguments instead of one?
- Authentication-results: sourceware.org; auth=none
- References: <20141123042417 dot GA839 at adacore dot com> <87bnny45zi dot fsf at igel dot home> <20141123095317 dot GE5774 at adacore dot com>
On Sun, Nov 23, 2014 at 1:53 AM, Joel Brobecker <brobecker@adacore.com> wrote:
>> > It proposes the introduction of a couple of commands, one to dump
>> > the contents of the of the bounds table, and one to set the bounds
>> > for any given address. Since those commands are MPX-specific,
>> > I would like to have them prefixed somehow. But the beyond the
>> > fact that I'd like to have them prefixed, I was wondering if
>> > set/show commands could be used for that. Eg:
>> >
>> > show mpx bound ADDR
>> > set mpx bound ADDR LBOUND UBOUND
>> >
>> > The reason why I am asking for comments is that the "set" command
>> > above has a syntax which is slightly unusual for "set" commands
>> > in the sense that "set" commands nearly always only have one argument,
>> > whereas it has 3 in this case.
>>
>> How do you parse the arguments if they are arbitrary expressions?
>
> I think that this is a question which is othogonal to the question
> I am asking. If you need a command that takes multiple arguments,
> and some of these arguments are going to be arbitrary expressions,
> you're going to have a parsing problem regardless of the name of
> the command you're choosing. And each command, regardless of the
> name of the command they decide on, can determine how they handle it.
> For instance, they could use quoting, a la shell.
>
> But in the particular case that interests us, there are no arbitrary
> expressions as of yet.
This feels like a case where we need to at least think about some
future-proofing.
One way some commands separate expressions is with commas.
I'm not fond of optional commas (setting aside the thread on
info macro -at LOCATION,).
IOW, if it turns out that we want to use commas down the road
to separate expressions here, then I'd prefer the commas
be required today.
E.g., set mpx bound ADDR, LBOUND, UBOUND
As for how to process multiple arguments to a "set" command,
one way would be to stage the value in a string parameter,
and then have a set handler post-process the result.