Re: / (slash) command : fast way to temporarily change setting(s) to run a command

Philippe Waroquiers
2019-04-17T20:59:26Z

On Wed, 2019-04-17 at 01:14 -0700, Kevin Buettner wrote:
> My first reaction to this proposal was that '/' is already used in
> some commands to modify their behavior. E.g. "print", "display", and
> "x" all use /FMT to change the way that data is formatted.
>
> That said, '/' seems to be used in only a handful of commands. It
> may be that its use is confined to the ones already mentioned.
>
> I see that the "interrupt" command allows the use of -a to modify
> its behavior. Most commands have no modifiers at all.
>
> I don't have a serious objection to Philippe's proposal, but I do
> think that we ought to consider whether use of '/' in this context
> might be confusing to the user. Might some other character or command
> name be less confusing? I don't know the answer to this, but I do
> think it's something which should be pondered before making this
> proposal a part of GDB's CLI.
Yes, for sure, getting the user interface correct is critical:
it is always possible to improve the implementation/code in the next
release, but changing the user interface in a next release
is a lot more difficult.

Maybe we need to identify first what kind of confusion
can happen with the '/' command ?
In fact, one of the reasons I started with '/' is that I find this
easy to remember and not confusing, as '/' is already used
to indicate 'some options or settings' in various GDB commands.
I did not want to use '-' as today, the '-' options of
commands that use this cannot be combined, while the / options
can (both in the slash command, and in commands that use /
as option such as print).

We could use another character, e.g. ':', but other characters
IMO do not ring a bell that it is related to settings or options.

If really we need to use another character, of course, the code
to change is quite trivial (mostly name changes, as currently,
many variables and args are called 'slash_...').

But / seems a reasonable (the best?) option :)

Thanks

Philippe