Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <drow@mvista.com>
To: Scott Moser <ssmoser@us.ibm.com>
Cc: Biswapesh Chattopadhyay <biswapesh_chatterjee@tcscal.co.in>,
	GDB List <gdb@sources.redhat.com>,
	leiming <blackhorse_linux@sina.com>,
	Anjuta devel <anjuta-devel@lists.sourceforge.net>
Subject: Re: how to use libgdb ?
Date: Thu, 19 Sep 2002 12:07:00 -0000	[thread overview]
Message-ID: <20020919190703.GA1494@nevyn.them.org> (raw)
In-Reply-To: <Pine.LNX.4.44.0209190911270.22989-100000@dmfet>

On Thu, Sep 19, 2002 at 11:00:37AM -0500, Scott Moser wrote:
> On Thu, 19 Sep 2002, Daniel Jacobowitz wrote:
> 
> > On Thu, Sep 19, 2002 at 09:38:40AM +0530, Biswapesh Chattopadhyay wrote:
> > > Hi list
> > >
> > > I'm one of the developers of Anjuta (http://anjuta.sf.net/), an IDE for
> > > GNOME. Currently, we are using a spawned subprocess for GDB interaction.
> > > This works fairly well, but obviously a shared library with a nice (and
> > > reasoinably stable) API would be very helpful for IDE developers. So, my
> > > question is: if GDB build process already builds libgdb.a, would any
> > > patches to make it build a shared libgdb.so be accepted into the main
> > > tree ? It might be very useful, for example, for gnome-debug, which is
> > > an upcoming component for debugging applications using a nice GUI
> > > interface. This might speed up the responsiveness and enable us to do
> > > more advanced stuff (such as tracing multiple threads simultaneously).
> >
> > They would probably not be accepted - or useful, since we don't plan to
> > maintain a stable ABI.  What we do maintain is a stable
> > machine-parseable interface - MI.  See the documentation or list
> > archives for more about that if you're not familiar with it.
> 
>    While its not my place to say whether or not the patches would be
> accepted, I do think they would be at least somewhat useful.
>    The ABI doesn't need to be stable right away, or even any time in the
> near future.  But it does seem like some people have an interest in
> seeing a libGDB in the short term and for sure in the long term.
>    I can think of many benefits to moving gdb to a small application
> that gains gets all its functionality from a library, but can't think of
> many cons.
>    pros:
>       allow other projects to use libgdb.so (while they know that it is
> not a stable backwards compatible ABI)
>       performance and functionality gains over the fork and pipe method
> for those apps.
>       through the use of libgdb.so by early adopters, learning what
> people would use it for, how they would use it... so that a better
> stable ABI *could* be made later.
>       allow plugins/extensions to gdb to be written in a much more cross
> platform manner.
> 
>    cons:
>       implied ABI stability.
> 
>    My feeling is that the pros outweigh the cons in this situation.  the
> implied ABI stability is only *implied*.  One suggestion to make sure no
> one thinks that you're implying it is would be to just printf inside _init() of
> that library with something like the following if the main executable
> isn't named gdb:
>    "This is not a stable ABI.  You probably shouldn't be using it unless
> you *really* know what you're doing.  And even then, maybe you shouldn't
> be using it.  Also, this code is GPL, if your application uses it, then
> it are bound to the terms of the GPL."
> 
>    What would it really hurt to have take this step now?  Please feel
> free add more negitive affects of doing this, maybe I'm just missing
> something.

The point is that there will never be a stable ABI.  Speaking just for
myself, I don't want a hack like this that we can never support.  We
have a machine interface - MI - and it should give you everything you
need; if you think communication with GDB has any performance
implications, you need to think about it a little more.  If you think
there are functionality gains from bypassing MI then MI should be
extended.

For plugins, the right thing to do is to _first_ define an ABI to
export to plugins, and then export it portably via (say) a table of
function pointers.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


  reply	other threads:[~2002-09-19 19:07 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-17 18:06 leiming
2002-09-18  9:29 ` Scott Moser
2002-09-18 21:08   ` Biswapesh Chattopadhyay
2002-09-19  6:32     ` Daniel Jacobowitz
2002-09-19  9:02       ` Scott Moser
2002-09-19 12:07         ` Daniel Jacobowitz [this message]
2002-09-19 13:48           ` Andrew Cagney
2002-09-19 14:18             ` Joel Brobecker
2002-09-18 18:02 leiming

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=20020919190703.GA1494@nevyn.them.org \
    --to=drow@mvista.com \
    --cc=anjuta-devel@lists.sourceforge.net \
    --cc=biswapesh_chatterjee@tcscal.co.in \
    --cc=blackhorse_linux@sina.com \
    --cc=gdb@sources.redhat.com \
    --cc=ssmoser@us.ibm.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