Re: probing GDB for MI versions

'Bob Rossi'
2004-10-06T17:05:15Z

Sorry if I was rude here, I am very frustrated.

No one has attempted to do what I am trying to do. Write a front end
that is capable of working with different GDB's.

If they do do this, I would like to know how they negotiate the MI
version to talk.

Again, you seem to be saying that if I generate a parser off of the MI
output syntax, that I am somehow wrong.

Is this the general feel of the community?

Bob Rossi

On Wed, Oct 06, 2004 at 05:55:28PM +0100, Dave Korn wrote:
> > -----Original Message-----
> > From: 'Bob Rossi'
> > Sent: 06 October 2004 17:22
>
> > On Wed, Oct 06, 2004 at 12:50:34PM +0100, Dave Korn wrote:
> > > > -----Original Message-----
> > > > From: gdb-owner On Behalf Of Bob Rossi
> > > > Sent: 06 October 2004 12:39
>
> > > > The front end has parsers for different versions of GDB's
> > > > MI protocol.
> > > > The parser for MI2 may not work for the MI3 protocol.
> > > > The parser for the MI3 protocol may not work for the
> > MI2 protocol.
> > > > The front end *can not* start up GDB just by using
> > -interpreter=mi
> > > > because it doesn't know what parser to use in this situation.
> > > > Can we agree on this point for starters?
> > >
> > > No, we can't. As long as the output from the -mi-version
> > MI command stays
> > > in the same format, you can always parse that and determine
> > which version to
> > > use.
>
> > Dave, you do not understand the problem at all. I do not
> > appreciate your
> > defininative answer, especially since it is incorrect.
>
> #1. Well, I don't appreciate your rudeness, but hey, we don't always get
> what we want in life. Guess you're just SOL.
>
> #2. My answer IS correct. I DO understand the problem, and in fact I
> understand it better enough than you do that I can see the very very obvious
> solution (that you aren't capable of grasping) as well as the problem
> itself.
>
> #3. Why do you have to be the _only_ person in the entire software industry
> who isn't capable of dealing with elementary versioning and compatibility
> issues? These techniques work fine for EVERYONE else but you.
>
> > The actual MI output syntax is capable of changing between MI
> > versions.
>
> Yes. I hope we're all agreed that there is no hope of (nor point to)
> tracking a work-in-progress as it changes on a day-by-day basis.
>
> > If the MI4 output syntax (grammar) has an incompatible change
> > with MI3,
> > then
> > * the MI3 parser will not even be capable of parsing and
> > building a
> > parse tree for the MI4 protocol.
> > * the MI4 parser will not even be capable of parsing and building a
> > parse tree for the MI3 protocol.
>
> Try and think outside the box. Your over-reliance on tools is hobbling
> you. You aren't obliged by statute to use an automatically generated parser
> based on a formal grammar. You can use printf to send the -mi-version
> command to the gdb instance, and you can use sscanf to parse the version
> number out of the string "MI version is XXXX" that it returns.
>
> > It is not possible to understand the output of the command no
> > matter how simple it is.
>
> Speak for yourself. I can understand it, it's human readable. I could
> write a very very very simple bit of code using sscanf that would understand
> it. You might have a problem understanding it, but you're the only one who
> does, and there's no need for you to.
>
> >If there is no parse tree, then there is no way to
> > understand the output from GDB.
>
> Don't be so facile. You send one very simple command, get back one very
> simple output that you can parse with strcmp or sscanf, for crying out loud.
> Then you know what MI version you're dealing with.
>
> > I don't understand the concept of an "utterly minimal
> > unintelligent parser".
>
> Well, you're clearly biting off more than you can chew with this entire
> project. As I said above, something of the degree of complexity of a single
> sscanf statement is what I mean.
>
> > That is rediculous. I am generating a parser from the grammar.
> >
> > There absolutly needs to be a way for the front end to ask GDB what
> > versions of the MI protocol it supports.
> >
> > There is no way the front end can ask GDB what protocols it
> > supports if
> > it needs to talk to it with an MI protocol. Understood?
>
> I understand what you're claiming, but I gave you a perfectly clear and
> simple way of doing it. You haven't demonstrated any problem with my
> proposal, because as you said above, you haven't even understood it yet.
> When you do understand it, you'll also understand that it works just fine.
>
> cheers,
> DaveK
> --
> Can't think of a witty .sigline today....