Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Bob Rossi <bob_rossi@cox.net>
To: gdb@sources.redhat.com
Subject: Re: GDB/MI revisited
Date: Mon, 03 Mar 2003 01:04:00 -0000	[thread overview]
Message-ID: <20030303010452.GA3920@white> (raw)
In-Reply-To: <15970.39290.513649.825076@nick.uklinux.net>

On Sun, Mar 02, 2003 at 11:53:30PM +0000, Nick Roberts wrote:
>  
>  > > 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.

cgdb doesn't depend on breakpoints-invalid because they were unreliable
in some versions of gdb. For example, when the user deleted the last
breakpoint, the 'breakpoints-invalid' wouldn't be triggered. So, cgdb
requests the breakpoints after every user command.

It would be great if in MI, the client could ask for notifications that
it is interested in ( breakpoints, source file and line, variables ... )

Bob Rossi


  reply	other threads:[~2003-03-03  1:04 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
2003-03-03  1:04         ` Bob Rossi [this message]
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=20030303010452.GA3920@white \
    --to=bob_rossi@cox.net \
    --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