Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Bob Rossi <bob_rossi@cox.net>
To: gdb@sources.redhat.com
Subject: obsoleting annotate level 2
Date: Tue, 04 Feb 2003 12:44:00 -0000	[thread overview]
Message-ID: <20030204124435.GB2565@white> (raw)

Hi,

I have been writing a front end to gdb called cgdb. It depends on gdb's
annotate level 2 feature. This project can be downloaded at
cgdb.sourceforge.net. Before that it was hosted at tgdb.sourceforge.net.

It is a curses front end to gdb that is intended to be lightweight and
responsive. I originally wrote cgdb because I use gdb, sometimes for
several hours, during the day at work. We use GNAT's version of gdb
which seems to be behind GNU ( As far as version and features ).

I decided to make it a curses front end because there are many times
during the day when I ssh into a window's box using cygwin.

At the time I started developing cgdb ( about 8 month's ago ). I began
looking into how to interface with gdb without losing any of the
command line power. I began looking into how other debugger's did it.
So I soon realized that xxgdb, ddd and gvd all used annotate level 1.
I then did a little more research and discovered
http://www.gnu.org/manual/gdb/html_chapter/gdb_21.html#SEC203 which
encouraged me to use annotate level 2. Since even NOW, the manual says
nothing about annotate level 2 being deprecated, but describes how to
use the annotations.

I used annotate 2 to interface to gdb for several reasons:
   1. gdb-mi is not in older versions of gdb. Including GNAT's version
      of gdb ( which we use at work ). If I wrote a front end using this
      the gdb-mi feature of gdb, I would not be able to debug programs
      with GNAT, cygwin, red-hat, suse ... out of the box distributions.
      This seems UNACCEPTABLE.
   2. gdb-mi does not have readline support at the command line.
      This is an important feature if the GUI wants to keep gdb's
      useful command line feeling 100%.
   3. gdb-mi did not ( at the time ) support the CLI commands.
   4. annotate level 2 gave much more information to the GUI over
      annotate level 1. Including:
      1. When the user is interfacing with the readline library.
      2. When the breakpoints need to be checked (instead of every time).  
      3. The prompt can change. the debugged program can output the
      string '(gdb) ' to stdout without breaking the GUI.
      4. I was able to allow the user to communicate with the debugged
      program, no matter how the debugged program sets the terminal.
      ex. ( cbreak, raw ...)

I feel that cgdb should be separated from gdb for several reasons:
   1. cgdb should support a rich variety of options including
      1. macro support
      2. key bindings that do not have to be Emacs style
      3. configuration file for syntax color support ...
      4. regular expression searching
      5. many more options that can make cgdb easier to use.
   2. Users should not have to recompile gdb to get curses support.
   3. I can write cgdb knowing nothing about the internals of gdb,
      without sacrificing the risk of bugs in gdb for a GUI.

With these things in mind, I understand that gdb must move on. With or
without cgdb. Eventually cgdb will support gdb-mi. My only claim is that
gdb keep supporting annotate level 2 until it is ready to remove both
annotate level 1 and 2.

This way when other programs like gvd, ddd and xxgdb are rewritten to 
use gdb-mi and not annotate level 1, then programs like cgdb and
possibly others can be rewritten as well. I know these programs will use
gdb-mi when it is stable and ready. Util then, I don't think annotate
level 1 or 2 should be removed since there are existing front ends to gdb
that use them.

I believe this is fair. In fact, I am even willing to support annotate
level 2 if necessary. I know I have no association with GNU, but I would
be willing.

Thanks,
Bob Rossi


             reply	other threads:[~2003-02-04 12:44 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-02-04 12:44 Bob Rossi [this message]
2003-02-04 15:49 ` Elena Zannoni
2003-02-04 16:12   ` Peter Kovacs
2003-02-04 16:30     ` Elena Zannoni
2003-02-04 16:37       ` Bob Rossi
2003-02-04 17:10         ` Elena Zannoni
2003-02-04 19:48           ` Jim Blandy
2003-02-04 21:22             ` Nick Roberts
2003-02-04 23:01               ` Andrew Cagney
2003-02-04 16:41       ` Peter Kovacs
2003-02-04 16:46         ` Peter Kovacs
2003-02-04 17:16         ` Elena Zannoni
2003-02-04 19:53 Mike Mueller
2003-02-05  6:57 ` Jim Blandy
2003-02-05 20:04   ` Bob Rossi

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=20030204124435.GB2565@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