This is the mail archive of the frysk@sourceware.org mailing list for the frysk 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: GDB interface: MI versus API or ??


Rick Moseley wrote:
Hi all.

Last week I posed the question on the Eclipse cdt-dev list as to which of the gdb interfaces were preferred for integrating with Eclipse CDT. I have received 3 responses so far and here they are:

Elena Laskavaia:

"If you implement mi protocol it is less work on IDE side (just another launch config), however mi does not support all commands and mi integration use "CDI" (user gdb) commands too, which makes it ugly.

The other approach is to create another implementation of this layer for your specific debugger, which would be more work but it may be more robust."


Marc Khouzam:


"The new DSF-based debugging frontend that can also be used with the CDT
also has an MI layer.  If Frysk was to use the MI protocol, I think its
usage would be easier to implement for DSF.

Also, GDB is evolving the MI interface for such things as non-stop
debugging and multi-process debugging.  So, MI has some effort being
put into it.  I believe an API library would need to be defined from the
start, which seems to be more work, for Frysk and for DSF.

So, I think from an "amount of work" point-of-view, using MI is better.
From a "best technical solution" point-of-view, I don't have enough
experience to have an opinion."



Mikhail Khodjaiants:

"MI is definitely the easiest way to integrate a debugger into CDT. If
implemented it will be automatically picked up by existing CDI and DSF
gdb/MI debuggers.
But if the API library provides more functionality than MI it might be
worth to consider a direct integration using one of the existing
frameworks. But it would require a lot of work and resources."


From these responses it seems the MI is alive and well inside the Eclipse CDT. Although it would seem to me the API approach would be more robust/full-featured, there does not seem to be any qualms/objections to using the MI protocol. If there are new features being made to MI in the gdb community it might be the way to go if it indeed fleshes out the functionality. We could implement the gdb MI protocol and then add "Frysk extensions" to get the additional functionality we require.


Anyways, there are the responses from the Eclipse CDT community so far, what are your thoughts on the subject?

Rick
A couple of more responses came in today pointing to another possible option.


Pawel Piech:


"You may also want to consider the TCF debugger protocol currently being developed in the Target Management project (see http://wiki.eclipse.org/DSDP/TM/TCF_FAQ). It already has a reference agent implementation (in C) that you could re-use, which would save you the headache of implementing the MI protocol layer from scratch. Also, as Marc pointed out GDB/MI protocol is evolving quite a lot to support new features and keeping up with its changes will likely require considerable effort. This shouldn't be a big surprise, as from my past discussions with GDB developers I got the impression that GDB/MI as a standard protocol to be implemented by other debuggers is definitely not on their agenda."

Ken Ryall:

"We have been looking at some similar issues with debugger integration and

I'd like to second Pawel's suggest to look at TCF. If you have any questions
I'd be happy to share our experiences."


Hmmmmm, guess I'll dive a little deeper here and see what this TCF stuff is all about.



Rick



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