This is the mail archive of the gdb-patches@sourceware.org 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: starting gdb/mi from FE


On Tue, Jun 06, 2006 at 01:55:40PM +1200, Nick Roberts wrote:
> 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.

Hmmm, I see your point. As soon as I support mi3, it won't work with
these old released GDB's anymore. In that case, I'll know that I have to
try start GDB with just mi2 on it's own. I don't see any other solution.

>  >...
>  > > 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.

This solution works if you can guarentee that the protocol will never
change. I don't care anything about the format of specific MI commands.

>  >                                                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.

I'm confused, the patch I provided is about 20 lines of code. If you are
talking about generating a parser, I've also done that with a 300 line
bison input file.  I think I'm misunderstanding you here.

Bob Rossi


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