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
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.
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 (http://sourceware.org/ml/gdb/2008-05/msg00014.html):
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.
Cheers,
Pawel
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
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
|