This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
[Various] obsoleting the annotate level 2 interface
- From: Jim Blandy <jimb at redhat dot com>
- To: gdb at sources dot redhat dot com
- Date: 28 Jan 2003 14:59:41 -0500
- Subject: [Various] obsoleting the annotate level 2 interface
Annotate 2 isn't dead after all! Or, we took too long to delete it,
and it came back to life. :(
Subject: Topics
Topics:
obsoleting the annotate level 2 interface
Re: obsoleting the annotate level 2 interface
Re: obsoleting the annotate level 2 interface
Re: obsoleting the annotate level 2 interface
Re: obsoleting the annotate level 2 interface
--- Begin Message ---
- From: Nick Roberts <nick at nick dot uklinux dot net>
- To: Jim Blandy <jimb at redhat dot com>
- Cc: rms at gnu dot org
- Date: Tue, 21 Jan 2003 19:02:21 +0000
- Subject: obsoleting the annotate level 2 interface
- References: <vt265sjj6vi.fsf@zenia.red-bean.com>
There is a mode in the Emacs CVS repository (gdb-ui.el) that I have written
(based on gdba.el by Tom Lord and Jim Kingdon) that uses annotation level 2.
I did try to use GDB/MI when I started writing it but gave up because it
wasn't complete at the time (March/April last year). There was some discussion
on the mailing list and I felt that the folks working on the Eclipse project
became similarly disillusioned (I think that they might also currently use
annotation level 2). Additionally there was a debate about whether the command
line interface would be suported through GDB/MI as Richard Stallman was
anxious to keep the GUD buffer. Also, I think that DDD uses annotation level 1.
I had presumed that development on annotations had ceased and not that it
would be taken out. It has appeared quite robust to me and Andrew Cagney has
said as much. It would be a shame to lose it before GDB/MI has gained proven
acceptance.
Anyway, I'm sure that Richard will have something further to add.
Jim Blandy writes:
>
> GDB seems to support two different ways of doing detailed annotations
> of its output for consumption by other programs: MI and 'set annotate
> 2'. I don't think annotation level 2 has many active users, if any at
> all. It pervades GDB's code. Would it make sense to put 'set
> annotate 2' on the path to obsolescence?
>
> Some background: the 'set annotate' command sets the
> 'annotation_level' variable. There are only three distinguished
> values for this variable:
>
> 0: nothing special, GDB behaves normally.
> 1: in source.c:line_info and stack.c:print_frame_info, when we print
> the source line, we print out something extra that helps Emacs pop
> up the source code in a window.
> 2 or greater: we enable around 250 calls to a variety of functions in
> annotate.c to mark and identify lots of things GDB prints.
>
> I think we should keep level 1, since the standard Emacs GDB interface
> uses it, and it's not very much code.
>
> I'd like to see GDB dump level 2, since it duplicates MI, badly. MI's
> design ensures that whoever's trying to parse GDB's output gets
> something that's well-formed, whereas annotate just sticks escape
> codes into the outgoing stream of text. This means that, if you
> change the way anything prints, you may break an annotate level 2
> client. But to break an MI client, you actually have to change a
> ui_out call, whose sole purpose is to produce output for clients to
> read. So MI is a much more maintainable approach, because it's easier
> for people to see what they're doing.
>
> If folks agree that annotate level 2 should go, we could:
> - announce that annotate level 2 will be disabled in the release after
> next;
> - in that release, disable the code, but leave it there, to see if
> anyone complains, and whether they can be persuaded to switch to MI;
> and
> - in the release after that, if all goes well, remove the code to
> support annotation level 2.
>
> Personally, I'd like to see Emacs switch from annotation level 1 to
> MI, too; then we could get rid of annotation altogether. But I think
> it makes sense to tackle level 2 first, since I don't think it has
> many users (if any).
>
--- End Message ---
--- Begin Message ---
- From: Richard Stallman <rms at gnu dot org>
- To: hilfingr at CS dot Berkeley dot edu, vincent at waw dot com, jimb at redhat dot com, cagney at redhat dot com, jtc at acorntoolworks dot com, dewar at gnat dot com, klee at apple dot com, shebs at apple dot com, toddpw at toddpw dot org
- Cc: Nick Roberts <nick at nick dot uklinux dot net>
- Date: Thu, 23 Jan 2003 03:00:15 -0500
- Subject: Re: obsoleting the annotate level 2 interface
- References: <vt265sjj6vi.fsf@zenia.red-bean.com> <15917.39229.935851.920452@nick.uklinux.net>
Please don't drop the support for annotation level 2.
The new Emacs feature gdb-ui.el uses it.
If in the future people want to adapt Emacs to use MI instead, that
would be ok. If Emacs is to use MI, it is essential to make the
command line work side by side with MI.
From: Nick Roberts <nick@nick.uklinux.net>
Date: Tue, 21 Jan 2003 19:02:21 +0000
To: Jim Blandy <jimb@redhat.com>
Cc: rms@gnu.org
Subject: obsoleting the annotate level 2 interface
In-Reply-To: <vt265sjj6vi.fsf@zenia.red-bean.com>
X-Spam-Status: No, hits=-5.4 required=5.0
tests=IN_REP_TO,REFERENCES,SPAM_PHRASE_01_02
version=2.41
X-Spam-Level:
There is a mode in the Emacs CVS repository (gdb-ui.el) that I have written
(based on gdba.el by Tom Lord and Jim Kingdon) that uses annotation level 2.
I did try to use GDB/MI when I started writing it but gave up because it
wasn't complete at the time (March/April last year). There was some discussion
on the mailing list and I felt that the folks working on the Eclipse project
became similarly disillusioned (I think that they might also currently use
annotation level 2). Additionally there was a debate about whether the command
line interface would be suported through GDB/MI as Richard Stallman was
anxious to keep the GUD buffer. Also, I think that DDD uses annotation level 1.
I had presumed that development on annotations had ceased and not that it
would be taken out. It has appeared quite robust to me and Andrew Cagney has
said as much. It would be a shame to lose it before GDB/MI has gained proven
acceptance.
Anyway, I'm sure that Richard will have something further to add.
Jim Blandy writes:
>
> GDB seems to support two different ways of doing detailed annotations
> of its output for consumption by other programs: MI and 'set annotate
> 2'. I don't think annotation level 2 has many active users, if any at
> all. It pervades GDB's code. Would it make sense to put 'set
> annotate 2' on the path to obsolescence?
>
> Some background: the 'set annotate' command sets the
> 'annotation_level' variable. There are only three distinguished
> values for this variable:
>
> 0: nothing special, GDB behaves normally.
> 1: in source.c:line_info and stack.c:print_frame_info, when we print
> the source line, we print out something extra that helps Emacs pop
> up the source code in a window.
> 2 or greater: we enable around 250 calls to a variety of functions in
> annotate.c to mark and identify lots of things GDB prints.
>
> I think we should keep level 1, since the standard Emacs GDB interface
> uses it, and it's not very much code.
>
> I'd like to see GDB dump level 2, since it duplicates MI, badly. MI's
> design ensures that whoever's trying to parse GDB's output gets
> something that's well-formed, whereas annotate just sticks escape
> codes into the outgoing stream of text. This means that, if you
> change the way anything prints, you may break an annotate level 2
> client. But to break an MI client, you actually have to change a
> ui_out call, whose sole purpose is to produce output for clients to
> read. So MI is a much more maintainable approach, because it's easier
> for people to see what they're doing.
>
> If folks agree that annotate level 2 should go, we could:
> - announce that annotate level 2 will be disabled in the release after
> next;
> - in that release, disable the code, but leave it there, to see if
> anyone complains, and whether they can be persuaded to switch to MI;
> and
> - in the release after that, if all goes well, remove the code to
> support annotation level 2.
>
> Personally, I'd like to see Emacs switch from annotation level 1 to
> MI, too; then we could get rid of annotation altogether. But I think
> it makes sense to tackle level 2 first, since I don't think it has
> many users (if any).
>
--- End Message ---
--- Begin Message ---
- From: Andrew Cagney <ac131313 at redhat dot com>
- To: rms at gnu dot org
- Cc: hilfingr at CS dot Berkeley dot edu, vincent at waw dot com, jimb at redhat dot com, cagney at redhat dot com, jtc at acorntoolworks dot com, dewar at gnat dot com, klee at apple dot com, shebs at apple dot com, toddpw at toddpw dot org, Nick Roberts <nick at nick dot uklinux dot net>
- Date: Thu, 23 Jan 2003 11:49:44 -0500
- Subject: Re: obsoleting the annotate level 2 interface
- References: <vt265sjj6vi.fsf@zenia.red-bean.com> <15917.39229.935851.920452@nick.uklinux.net> <E18bcHX-0007cl-00@fencepost.gnu.org>
> Please don't drop the support for annotation level 2.
> The new Emacs feature gdb-ui.el uses it.
>
> If in the future people want to adapt Emacs to use MI instead, that
> would be ok. If Emacs is to use MI, it is essential to make the
> command line work side by side with MI.
This is very very unfortunate. The 5.1 release notes, from 2001-11-21
clearly read:
> * The MI enabled by default.
>
> The new machine oriented interface (MI) introduced in GDB 5.0 has been
> revised and enabled by default. Packages which use GDB as a debugging
> engine behind a UI or another front end are encouraged to switch to
> using the GDB/MI interface, instead of the old annotations interface
> which is now deprecated.
GDB developers are working to resolve all known issues with MI that
would block EMACS(1). We really don't want to be in a situtation where
we're forced to prop up the level two annotations.
For the record. Eclipse is using MI and not annotations. The
frustrations the Eclipse group stemed largly from a lack of
communication, on their part, with the GDB group.
Andrew
(1) Two are known. The command line, and a tab-expand.
> From: Nick Roberts <nick@nick.uklinux.net>
> Date: Tue, 21 Jan 2003 19:02:21 +0000
> To: Jim Blandy <jimb@redhat.com>
> Cc: rms@gnu.org
> Subject: obsoleting the annotate level 2 interface
> In-Reply-To: <vt265sjj6vi.fsf@zenia.red-bean.com>
> X-Spam-Status: No, hits=-5.4 required=5.0
> tests=IN_REP_TO,REFERENCES,SPAM_PHRASE_01_02
> version=2.41
> X-Spam-Level:
>
>
> There is a mode in the Emacs CVS repository (gdb-ui.el) that I have written
> (based on gdba.el by Tom Lord and Jim Kingdon) that uses annotation level 2.
> I did try to use GDB/MI when I started writing it but gave up because it
> wasn't complete at the time (March/April last year). There was some discussion
> on the mailing list and I felt that the folks working on the Eclipse project
> became similarly disillusioned (I think that they might also currently use
> annotation level 2). Additionally there was a debate about whether the command
> line interface would be suported through GDB/MI as Richard Stallman was
> anxious to keep the GUD buffer. Also, I think that DDD uses annotation level 1.
>
> I had presumed that development on annotations had ceased and not that it
> would be taken out. It has appeared quite robust to me and Andrew Cagney has
> said as much. It would be a shame to lose it before GDB/MI has gained proven
> acceptance.
>
> Anyway, I'm sure that Richard will have something further to add.
>
> Jim Blandy writes:
> >
> > GDB seems to support two different ways of doing detailed annotations
> > of its output for consumption by other programs: MI and 'set annotate
> > 2'. I don't think annotation level 2 has many active users, if any at
> > all. It pervades GDB's code. Would it make sense to put 'set
> > annotate 2' on the path to obsolescence?
> >
> > Some background: the 'set annotate' command sets the
> > 'annotation_level' variable. There are only three distinguished
> > values for this variable:
> >
> > 0: nothing special, GDB behaves normally.
> > 1: in source.c:line_info and stack.c:print_frame_info, when we print
> > the source line, we print out something extra that helps Emacs pop
> > up the source code in a window.
> > 2 or greater: we enable around 250 calls to a variety of functions in
> > annotate.c to mark and identify lots of things GDB prints.
> >
> > I think we should keep level 1, since the standard Emacs GDB interface
> > uses it, and it's not very much code.
> >
> > I'd like to see GDB dump level 2, since it duplicates MI, badly. MI's
> > design ensures that whoever's trying to parse GDB's output gets
> > something that's well-formed, whereas annotate just sticks escape
> > codes into the outgoing stream of text. This means that, if you
> > change the way anything prints, you may break an annotate level 2
> > client. But to break an MI client, you actually have to change a
> > ui_out call, whose sole purpose is to produce output for clients to
> > read. So MI is a much more maintainable approach, because it's easier
> > for people to see what they're doing.
> >
> > If folks agree that annotate level 2 should go, we could:
> > - announce that annotate level 2 will be disabled in the release after
> > next;
> > - in that release, disable the code, but leave it there, to see if
> > anyone complains, and whether they can be persuaded to switch to MI;
> > and
> > - in the release after that, if all goes well, remove the code to
> > support annotation level 2.
> >
> > Personally, I'd like to see Emacs switch from annotation level 1 to
> > MI, too; then we could get rid of annotation altogether. But I think
> > it makes sense to tackle level 2 first, since I don't think it has
> > many users (if any).
> >
>
>
>
--- End Message ---
--- Begin Message ---
- From: Richard Stallman <rms at gnu dot org>
- To: Andrew Cagney <ac131313 at redhat dot com>
- Cc: hilfingr at CS dot Berkeley dot edu, vincent at waw dot com, jimb at redhat dot com, cagney at redhat dot com, jtc at acorntoolworks dot com, dewar at gnat dot com, klee at apple dot com, shebs at apple dot com, toddpw at toddpw dot org, nick at nick dot uklinux dot net, rms at gnu dot org
- Date: Fri, 24 Jan 2003 12:16:12 -0500
- Subject: Re: obsoleting the annotate level 2 interface
- References: <vt265sjj6vi.fsf@zenia.red-bean.com> <15917.39229.935851.920452@nick.uklinux.net> <E18bcHX-0007cl-00@fencepost.gnu.org> <3E301D28.3060504@redhat.com>
GDB developers are working to resolve all known issues with MI that
would block EMACS(1). We really don't want to be in a situtation where
we're forced to prop up the level two annotations.
I support the goal of making Emacs use MI, but it may take some time
before this works, since it requires changes in GDB and bigger changes
in Emacs. Please don't drop support for the annotations until this
works.
--- End Message ---
--- Begin Message ---
- From: Andrew Cagney <ac131313 at redhat dot com>
- To: rms at gnu dot org
- Cc: hilfingr at CS dot Berkeley dot edu, vincent at waw dot com, jimb at redhat dot com, cagney at redhat dot com, jtc at acorntoolworks dot com, dewar at gnat dot com, klee at apple dot com, shebs at apple dot com, toddpw at toddpw dot org, nick at nick dot uklinux dot net
- Date: Mon, 27 Jan 2003 12:00:59 -0500
- Subject: Re: obsoleting the annotate level 2 interface
- References: <vt265sjj6vi.fsf@zenia.red-bean.com> <15917.39229.935851.920452@nick.uklinux.net> <E18bcHX-0007cl-00@fencepost.gnu.org> <3E301D28.3060504@redhat.com> <E18c7R6-0007Ef-00@fencepost.gnu.org>
> GDB developers are working to resolve all known issues with MI that
> would block EMACS(1). We really don't want to be in a situtation where
> we're forced to prop up the level two annotations.
>
> I support the goal of making Emacs use MI, but it may take some time
> before this works, since it requires changes in GDB and bigger changes
> in Emacs. Please don't drop support for the annotations until this
> works.
My understanding is:
- To the best of my knowledge, all previous versions of EMACS use GDB's
level-one annotations.
- This new (unreleased?) EMACS debug mode is different. It is using
level-two annotations even though GDB has deprecated support for this.
- JimB's proposal was to continue providing level-one annotations (and
hence allow existing EMACS releases to work) but obsolete (and
eventually remove) level-two annotations.
Supporting level-two annotations will involve an ongoing commitment of
GDB developer resources (something we're sadly lacking). I think those
developer resources would be far better spent improving GDB's support of
features such as Java, C++ and threads, and the far more powerful /
robust / tested MI interface.
Consequently, I don't think it is reasonable to have GDB commit to
supporting level-two annotations (something GDB has already deprecated)
until the new EMACS mode is working with MI. I believe that GDB should
obsolete (and schedule the removal of) level-two annotations the moment
the remaining MI work is completed.
Andrew
--- End Message ---