From: Nick Roberts <nick@nick.uklinux.net>
To: Andrew Cagney <ac131313@redhat.com>
Cc: gdb@sources.redhat.com
Subject: Re: GDB/MI revisited
Date: Sun, 02 Mar 2003 23:57:00 -0000 [thread overview]
Message-ID: <15970.39290.513649.825076@nick.uklinux.net> (raw)
In-Reply-To: <3E616E6D.1080908@redhat.com>
> > I would prefer this approach too since the GUD buffer would then allow
> > completion. However, without level 2 annotations, the CLI is useless to the
> > lisp package that I have written, so I don't see how an incremental migration
> > is possible.
>
> Why exactly is it useless? Using both [deprecated] level 2 annotations
> and "interpreter mi ..." simultaneously.
Ah! I follow you now. Does this mean that you would like to incrementally
obsolete annotations? This relates to something that I said earlier:
NR> Also gdb-ui.el probably doesn't need all the annotations. If you lost some
NR> key ones (frames-invalid and breakpoints-invalid, for example) would this
NR> make it easier to maintain?
I will give incremental migration some thought but unless the benefits are
clear (for you or me) I think it might be easier to do in one go.
> > > You could even continue to use "run".
> >
> > Except that the manual says:
> >
> > This mechanism is provided as an aid to developers of GDB/MI clients
> > and not as a reliable interface into the CLI. Since the command is
> > being interpreteted in an environment that assumes GDB/MI behaviour,
> > the exact output of such commands is likely to end up being an
> > un-supported hybrid of GDB/MI and CLI output.
> >
> > Also "run" generates ^done rather than *stopped and I am trying to use the
> > latter to update the source file display.
>
> The manual is refering to this behavior:
>
> (gdb)
> target sim
> &"target sim\n"
> ~"Connected to the simulator.\n"
> ^done
> (gdb)
>
> The new behavior vis:
>
> (gdb)
> -interpreter-exec console "target sim"
> ~"Connected to the simulator.\n"
> ^done
> (gdb)
>
> is documented and supported.
OK, but `-interpreter-exec console' run still generates ^done rather than
*stopped so I would need to recognise this.
> > > You mean something like:
> > >
> > > -interpreter-exec console break foo
> > > ~Breakpoint 1 created.
> > > =breakpoint-create,breakpoint={nr=5,location=foo,file=bar.c,line=47}
> >
> > I was thinking explicitly of *stopped. I haven't found a need for the others
> > yet.
>
> To clarify something about level 2 annotations, what exactly is this new
> emacs code dependant on? For level two annotations the rough equivalent
> to the above is (ignore the yy):
>
> > info break
> >
> > yypost-prompt-for-continue
> > yyarg-value *
> > 0x2000000
> > yyarg-end
...
How is info break roughly equivalent to break foo?
> and it is these markups that GDB wants to get away from. They are what
> is littered through out GDB's code and the motivator behind getting rid
> of level two annotations.
Yes. I follow this.
> > > That is the second change sitting on the interpreters branch.
> >
> > I've checked out interps-20030202-branch. This doesn't seem to do the above.
> > Should I have a different version? Does it generate the *stopped record in
> > the manner that I would like? Does it work with interpreter mi mi-command
> > also?
>
> Hmm, so to split this into two problems. How much of each of:
>
> - markups, as in the above marking up of the breakpoint out
> - events, as in things like `*stopped'
>
> is this code dependant on?
The current code (gdb-ui.el) is completely dependent on the markups that
annotations provides. I want the new code to use `*stopped' to update file
display. If this works as I would like (as described above and previously)
then together with the `^done' record it should provide most of the
functionality that Emacs needs.
> > > I don't think it is immediatly necessary though as the imediate objective
> > > is to just address the problem of level two annotations littered through
> > > out things like the breakpoint code.
> >
> > I don't follow. Aren't they interconnected? I thought the idea was that the
> > quicker that MI got adopted the quicker level two annotations could be dropped
>
> The concern is with the marking up of things like breakpoint output.
> Event notification, I believe, is less of a problem.
If this is the case, I *think* I could modify gdb-ui.el not to use the
annotation breakpoints-invalid quite easily. I don't know what other users
of level 2 annotations, e.g the authors of cgdb, would think, though.
Nick
next prev parent reply other threads:[~2003-03-02 23:57 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-02-07 20:20 Nick Roberts
2003-02-26 16:21 ` Andrew Cagney
2003-02-28 21:35 ` Nick Roberts
2003-03-02 2:35 ` Andrew Cagney
2003-03-02 23:57 ` Nick Roberts [this message]
2003-03-03 1:04 ` Bob Rossi
2003-03-03 19:09 ` Andrew Cagney
2003-03-03 20:44 ` Nick Roberts
2003-03-04 0:12 ` Andrew Cagney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=15970.39290.513649.825076@nick.uklinux.net \
--to=nick@nick.uklinux.net \
--cc=ac131313@redhat.com \
--cc=gdb@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox