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: "Tedeschi, Walfred" <walfred dot tedeschi at intel dot com>
- To: Doug Evans <xdje42 at gmail dot com>, 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: Mon, 20 Apr 2015 15:30:29 +0000
- 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> <CAP9bCMStR=uJ387HDhKdN8CHShFOiquYFHXhOvcVX0i0_Hr7VA at mail dot gmail dot com> <20141124071258 dot GI5774 at adacore dot com> <AC542571535E904D8E8ADAE745D60B192FA0A7CD at IRSMSX104 dot ger dot corp dot intel dot com> <20150414124920 dot GH4704 at adacore dot com> <CAP9bCMT-2YOZGZ1HRuVWFoL+at7MmTiOWSFS7mH8AcUZyx2Jdw at mail dot gmail dot com>
Doug and Joel,
I agree with the argument about the commas.
For instance parsing a more complex expression (an inferior call) will potentially have issues parsing to spaces. But will work using commas.
In this sense I am also for commas.
Joel, thanks a lot for raising this subject!
I will send an reworked version using commas for review....
Thanks and regards,
-Fred
-----Original Message-----
From: Doug Evans [mailto:xdje42@gmail.com]
Sent: Monday, April 20, 2015 7:45 AM
To: Joel Brobecker
Cc: Tedeschi, Walfred; Andreas Schwab; gdb-patches@sourceware.org
Subject: Re: RFC: "set" command with 2 arguments instead of one?
On Tue, Apr 14, 2015 at 5:49 AM, Joel Brobecker <brobecker@adacore.com> wrote:
>> Sorry for the long delay here. Now I could come back to the patches again.
>>
>> Was there any outcome on that discussion. How do you think I could
>> use the multiple arguments?
>
> I don't remember any reply to the message you quote above, which
> summarizes my current thinking and position. As you indicate, it is a
> question of making a decision.
>
> Global Maintainers: What do you think? Let's make a decision so that
> Walfred can resume his work on this.
>
> Thanks!
Hi.
As a data point, regarding this comment:
"Commas also have a meaning in C, so arguably they could be used in expressions as well."
note that parse_to_comma_and_eval handles parenthesized expressions, so one *can* use commas in expressions. If they pose a problem to parsing of the command then one can wrap that expression in parens.
E.g.,
(gdb) p $pc
$1 = (void (*)(void)) 0x400764 <main()+4>
(gdb) disas (($pc+42),($pc+0)),+16
Dump of assembler code from 0x400764 to 0x400774:
=> 0x0000000000400764 <main()+4>: mov $0x400860,%esi
0x0000000000400769 <main()+9>: mov $0x401c80,%edi
0x000000000040076e <main()+14>: callq 0x400630
<_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@plt>
0x0000000000400773 <main()+19>: mov $0x0,%eax
So I'm not worried about commas in expressions.
gdb is never going to be at a point where all commands can use buildargv.
I think choosing either buildargv or commas (using parse_to_comma_and_eval or whatever) should consider what the arguments to the command are.
And since this command takes things that are more like expressions than like strings, I'm leaning towards commas.
>> -----Original Message-----
>> From: gdb-patches-owner@sourceware.org
>> [mailto:gdb-patches-owner@sourceware.org] On Behalf Of Joel Brobecker
>> Sent: Monday, November 24, 2014 8:13 AM
>> To: Doug Evans
>> Cc: Andreas Schwab; gdb-patches@sourceware.org
>> Subject: Re: RFC: "set" command with 2 arguments instead of one?
>>
>> > 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.
>>
>> I think using commas systematically is making it worse for ourselves, since it prevents us from using gdb_buildargv to parse the command arguments for us. Commas also have a meaning in C, so arguably they could be used in expressions as well. But, if that's the way people prefer, then having a standard gdb_buildargv-like API that everyone consistently uses will make it easier for me to accept that decision.
>>
>> --
>> Joel
>> Intel GmbH
>> Dornacher Strasse 1
>> 85622 Feldkirchen/Muenchen, Deutschland Sitz der Gesellschaft:
>> Feldkirchen bei Muenchen
>> Geschaeftsfuehrer: Christian Lamprechter, Hannes Schwaderer, Douglas
>> Lusk
>> Registergericht: Muenchen HRB 47456
>> Ust.-IdNr./VAT Registration No.: DE129385895 Citibank Frankfurt a.M.
>> (BLZ 502 109 00) 600119052
>
> --
> Joel
Intel GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen, Deutschland
Sitz der Gesellschaft: Feldkirchen bei Muenchen
Geschaeftsfuehrer: Christian Lamprechter, Hannes Schwaderer, Douglas Lusk
Registergericht: Muenchen HRB 47456
Ust.-IdNr./VAT Registration No.: DE129385895
Citibank Frankfurt a.M. (BLZ 502 109 00) 600119052