Re: starting gdb/mi from FE

Nick Roberts
2006-06-06T01:56:27Z

B> > > $This change is backwards compatible because users were not able in the
> > > $past to have a comma separated list in the -i flag.
> >
> > Backward compatible because it won't work with any version before GDB 6.5?
>
> Backward compatible because FE's can use mi2 when they do mi2, and
> mi3,mi2 when they do more than mi2. I'm thinking no front end will ever
> support mi1 (correct me if I'm wrong). Therefore, if we do this now,
> it'll work for most FE's.

But it won't work for *released* versions of GDB.

>...
> > Pre GDB 6.5 wouldn't really work in this case either, but
> >
> > (gdb)
> > -mi-version
> > ^error,msg="Undefined MI command: mi-version"
> > (gdb)
> >
> > wouldn't require restarting GDB, while:
> >
> > nickrob/21 gdb -i=mi2,mi1 myprog
> > Interpreter `mi2,mi1' unrecognized
> > nickrob/22
> >
> > would.
>
> That's not correct. Unless you will work with mi1. It will work with mi2
> on as described above.

I don't see how, unless you plan to `recall' all released versions of GDB.

> Also, the solution your provide is a chicken/egg
> problem. If anyone ever changes the MI output syntax in a non backwards
> compatible way, then I will not know which generated parser to use. If I
> don't know which generated parser to use, I can't possible call
> -mi-version and expect to parse the output.

If it changes from:

(gdb)
-mi-version
^done,major="3",minor="1"
(gdb)

your right, but I think this part of MI should be pretty constant. I imagine
MI level changes involving things like asynchronous operation, event
notification etc.

> I think it's bad to provide
> functionality that only works with makeshift parsers.

I think we need to be practical and work within our limited resources. If
a corporate sponsor comes along then maybe we can consider such general
principles.

--
Nick http://www.inet.net.nz/~nickrob