Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Question on future debugger interface

Vladimir Prus wrote:
On Monday 14 July 2008 21:46:24 Pawel Piech wrote:
Hi Rick,
You may also want to consider the TCF debugger protocol currently being 
developed in the Target Management project (see  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. 
I find the combination of "got the impression" and "definitely" wordings to
be confusing :-)
Vague yet forceful, exactly what as I intended :-D What I was referring to is the following comment you made a couple months ago on the GDB mailing list (

GDB/MI is actually not a finished published protocol -- it's work in progress.
Unfortunately, frontend maintainers tended to read between the lines, and guess
the behaviour and accepted input instead of asking here. And in cases where what
they've read between the lines does not correspond to what GDB developers means,
the result is a buggy frontend :-)

Given that MI, presently, is still not adequate for such basic tasks as
listing local variables in a  function, it will change, and it might break
things, and frontend developers should provide the input to avoid surprises.
You and Marc represent Eclipse here, and Nick represent Emacs, and
I represent KDevelop, so those three are fine, but other frontend developers
should be more active here.

Probably, I should add big warning to MI manual, saying that everything that is not
100% clear must be asked on the list.
Seriously though, I'm very glad you responded here as I didn't feel very comfortable speaking on your behalf.

There was an attempt to standardize MI, under the name of DMI. Ideally, you have 
to standardize existing implementation. Of course, you can use design-by-committee 
approach, and specify something fresh, but it has the obvious risks that the spec 
will either be broken, or hard to implement. MI has the important advantage here,
in that it's used by several frontends, and any changes, such as non-stop behaviour,
are relatively easy to test in the field. 

The previous attempt to standardise MI never took off, partially for management issues,
and partially because MI was not actively developed, so it was not clear (at least to me,
from a frontend developer perspective), how to standardize something that's not done yet.
I think some progress was made recently, and whatever MI we get after non-stop and
multi-process bits are in will be sufficiently functional and stable to rubber-stamp it,
if somebody wants that :-)

- Volodya
cdt-dev mailing list

Back to the top