This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] plugin/extension interface


> Date: Fri, 02 Dec 2005 18:22:54 +0000
> From: Andrew STUBBS <andrew.stubbs@st.com>
> 
> Hi all,
> 
> I would like to test the waters and find out what your opinion would be 
> on the subject of a GDB plugin/extension interface.

My initial reaction (without reading the rest of your mail) would be
"Not over my dead body!".  In my experience plugin/extension
interfaces add a lot of bloat, are difficult to maintain, and
difficult to support.  Look at the problems we've had with the
libthread-db.so stuff on Linux and (to a lesser extent) Solaris.
There are also GPL issues.

> We, here at ST, have a custom target backend which is implemented as a 
> DLL connected to some custom code in GDB not totally unlike remote.c. We 
> did this because the remote protocol was too slow, too limited and 
> required some way to launch other processes which could then easily get 
> left over by mistake.
> 
> Now we have reason to rewrite the interface - it is currently very 
> SH-centric and we wish to share it with another ST architecture - so I 
> am considering the various possibilities.
> 
> One possibility (of which I am in favour) is to create a generic GDB 
> plugin interface which can become part of the official GDB. This course 
> of action is not yet certain, but the outcome of any discussion we have 
> here will probably influence the final decision (along with some other 
> local considerations).
> 
> Desirable features (from our point of view):
> - Target independent [1].
> - Architecture independent [1].
> - Flexible/Powerful enough not to limit capabilities.
> - Debugger independent [2].
> - Extensible.
> - Easy to maintain.
> 
> It is largely this last requirement which prompts me to ask your opinion 
> - it will be easier to maintain if it is accepted into the official 
> source base, because we will not have to continually forward port it as 
> a local change. Obviously I am more likely to get something accepted if 
> you guys have agreed the interface in principle in advance.

Why can't you just compile your remote protocol support code into GDB.
That's the way it's been always done.  It's simple, and works, and I
think that'll actually be the easiest to maintain.  Plugin/extension
interfaces only make sense for third parties that want to distribute
binary stuff.  That doesn't make sense for an open source debugger.

Mark


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]