Re: GDB/MI snapshots between major release's

Bob Rossi
2004-10-04T18:31:48Z

On Mon, Oct 04, 2004 at 11:12:01AM -0700, Felix Lee wrote:
> Bob Rossi <bob@brasko.net>:
> > With the information I have now, here is the problem. A snapshot of GDB
> > will say that it is at MI4, although, it is really at some
> > developmental version.
>
> does that ever happen? if gdb says it supports MI4 but it
> doesn't really, then it's lying, and that's a bug. I think it's
> unreasonable to expect a front-end to have workarounds for every
> gdb bug. the best answer is often 'get a gdb without the bug'.
> it might be reasonable to have workarounds for bugs in gdb
> versions that are widely deployed, and that can be handled on a
> case-by-case basis.

Felix, I think either I am wrong here about how GDB bumps it's version
numbers, or you do not understand what I am talking about. I am often
blamed for not explaining things clearly, so here it goes again.

While GDB is between versions, it will bump it's MI protocol number by
one if there is an MI backwards compatible issue. Right? (this was
stated by Mark Kettenis )

OK, so, if you get snapshots of GDB during it's development, the newly
bumped version of the MI protocol is *not* a valid protocol. It is a
protocol under development that will become an official protocol only
after a release is made. Here is a simple example,
T1 GDB 7.0 has MI10 (official)
T2 GDB 7.0-CVS has MI11 (unofficial, because of MI incompatible change X1 )
T3 GDB 7.0-CVS has MI11 (unofficial, because of MI incompatible change X2 )
T4 GDB 7.1 has MI11 (official)

The assertion is GDB is not necessarily talking an official MI protocol
until the release.

If I get a snapshot of GDB when in development, between time T2 and T3,
then my front end will not work with GDB's MI11 protocol. It will only
work with MI10. So, I need to find out from GDB what version's it will
officially support, and then the issue of working with GDB snapshots
will go away for ever (hopefully).

> I don't have any objection to an --mi-protocols switch, but it
> seems to me that it isn't really needed by front-ends. one
> simple strategy is to just try each mi version you know until you
> find one that works.

GDB currently says that it supports MI11 between times T2 and T3,
however, this is not true. It is a developmental version, that does not
conform to any specific version of the MI protocol.

Do you see the problem I am describing?

Here is debian testing ( the first system I tried ).
$ gdb --version
GNU gdb 2002-04-01-cvs

We don't have to have all the package maintainers give a formal snapshot
of GDB, we just need to make front end's understand all of the official
protocols that a given GDB supports.

Thanks,
Bob Rossi