This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFA: gdb/783 doc change


Andrew Cagney wrote:
> 
> > J. Johnston writes:
> >  > The following changes the mi documentation to clarify the usage of the
> >  > "--" delimeter.  This delimeter is meant to provide a way to separate
> >  > options from parameters so as to handle cases whereby the parameters may
> >  > start with "-" and be mistaken for options.
> 
> >  > The problem reported tries to use it generally before any parameter list.
> >  > This doesn't work because only the mi_getopt option processor knows to ignore it and
> >  > commands that don't have options (preceded by dash) don't call mi_getopt.
> >  > It is then treated as a parameter which is incorrect.
> 
> >  > I have removed the delimeter from the description of the -data-disassemble
> >  > command as it is not manditory and the delimeter should be treated as optional to all
> >  > applicable commands that support both options and parameters.  I have removed
> >  > it from one of the -data-disassemble examples to clarify that it may or may not
> >  > be specified.
> 
> The documentation is correct, there is no reason for changing it.
> 
> All MI commands should use mi_getopt() as by doing this the MI can
> present a very consistent command line interface to its users.  Contrast
> this to the UNIX and GDB CLI interfaces, each individual command has its
> own eseoteric edge conditions (and the user needs to work around each
> individually).  The ``--'' problem is just one of the cases that
> mi_getopt() handles, another is c-strings (see below).
> 
> In case you're wondering, the commands that don't use mi_getopt()
> pre-date that function's implementation (and one has gone back and
> updated them).
> 
> For the most part converting commands to use mi_getopt() should be
> straight forward.  There are exceptions though, some of the older
> commands pulled a very GDB CLI like hack by accepting:
>         -command -opt x this is the "final" parameter
> when they should have accepted:
>         -command -opt x -- "this is the \"final\" parameter"
> such a change will get messy and might mean replacing the command.
> 

Could you please clarify this?  The mi_getopt code currently returns -1
when it sees a "--" or an argument that does not start with a "-".  It
sets optind to 1 so you can skip over the "--", but it is not
used to do any parsing of regular parameters beyond the option list.

Could you also clarify what you want to do with commands that currently
do not accept options.  For example, -data-disassemble only accepts parameters.
If the command is not changed to accept options, then you just want the
mi_getopt for the sake of skipping the "--".  If correct, this seems wasteful.
I can't imagine why an application would want or need to call a command this way.

-- Jeff J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]