On Wed, Feb 3, 2010 at 4:08 PM, Dominique Toupin
It does give the impression you're selective about which communities are worth encouraging (EDC) and which
to do an end run around (GDB).
Given that I have no vested interest in GDB, I'm not sure why I personally need to promote it. EDC is an interesting addition to our ecosystem and I'm curious to see where it fits in. And I'm especially curious if it helps solve my JNI debugging problem.
My understanding from CDT meeting discussions (which don't have minutes most of the time) was that
we would leave CDI for Galileo and put DSF-GDB for Helios, in the last
meeting (which has documented minutes), the plan for CDT is not clear anymore ("Which one should be the default? EDC is good for Windows").
Not having a clear direction doesn't help companies to contribute
to open source projects and doesn't help to focus the existing community, it takes time to be up to speed with a new framework, people are hesitant to do it unless they know the knowledge will help them in the future and that a stable/rich set of features
The direction is decided by the community and what people contribute to. Pretty much all current contributions are based on DSF. So if there is confusion over whether to pick DSF or CDI, then it should be clear. CDI is a deprecated framework.
Now, whether people pick EDC over GDB, is a matter for the community and we are giving them the choice. I have no idea what the people doing the 400,000+ downloads of CDT prefer. Today they are using CDI with GDB. So if we're going to switch to whichever, we
need to make sure we don't mess them up too badly. Other than that, the adopting vendors and distribution makers can pick whatever debugger and framework they like.
In the debug area, many companies are making big contributions to GDB, e.g. multi-architecture, multi-OS support (IBM, Ericsson), Python scripting
(RedHat, etc), dynamic and static Tracepoint (CodeSourcery, Ericsson, Polytechnique), improved C/C++ debug (RedHat/Archer), Multi-Process/exec (CodeSourcery, Freescale, etc.), non-stop (CodeSourcery, Ericsson) reversible debug (VMware, Virtutech, etc.), I
could go on, especially for upcoming features like core awareness. A lot more companies are making smaller contribution and using GDB extensively,
DSF/GDB has a lot of features, it's been around for many years, GDB stubs works on all targets that I know of, from RTOS, to native Linux, to windows, to emulator/simulators (e.g simics), to JTAG, we can even use the same DSF/GDB binary on
host to debug different targets. GDB is the most ubiquitous debugger I know. For the DSF-GDB, I think WindRiver (e.g. Pawel, Randy, etc.) did a great job with the initial DSF-GDB implementation and we were happy to contribute to it in order to help build
the future debug solution for CDT.
Again, GDB is just one of the external debuggers that we integrate with. It's the most popular, but it's not up to the CDT to pick what debugger people use. CDT is a platform. Don't confuse the exemplary integration we have with the gnu tools as an endorsement
of them, only an acknowledgement of their proliferation. The fact that we have integrations with the gnu tools actually enters a grey zone with the IP rules at Eclipse, so we do need to tread carefully.
I am afraid that if CDT changes direction again, companies who are using GDB and Eclipse will continue to wait for contributions until CDT makes up it's mind and has a stable/rich
set of features for debug, going EDC as default is narrowing and doesn't help collaboration with Linux Foundation on tools (something equivalent to LSB but for tools). As
you know we are planning a packaging of CDT + Linux Tools + GNU Tools for Linux targets, hopefully it will give more visibility to the CDT in the Linux community and attract more people (Linux is a fast growing community). We can do it on Eclipse Lab under
some form of CDT distribution including GNU binaries.
That's fine. As you do your own distribution, you are free to pick the debugger and integration you'd like. The CDT is a platform that supports many debugger integrations. You aren't forced into any particular one.
answer your question below yes DSF/GDB is working with MinGW gdb 7.0.1 on windows and you can use it in Wascana, hopefully we can work together on the CDT distribution.
Wascana is a pet project of mine, for legal reasons not a part of the CDT project, but intended to help promote CDT in the Windows development community. And, as it is turning out, it's an exemplary implementation of an p2 installer that gives you a complete
IDE including tools and libraries. Feel free to reuse some of the concepts from it and the cdt.p2 plug-in and I can help you get started with that.
For Linux, I'd prefer to spend time helping the Linux distro guys who all have their own external tools and install strategy. Fedora is doing a great job at integrating the CDT. Ubuntu and Debian need help. I might do something with Moblin, but I'd prefer they
release an SDK with CDT in it. And Android is something different all together. That's enough to fill my days.
I guess putting something together in order to make the DSF-GDB default choice more obvious would be good, the above + list of features could be a start?
Sure. However, my plan for the next couple of weeks is to take another look at our launch story. I hate the fact we have a default. It should be related to the toolchain that the user is using for their project. Then when you define your toolchain, you can
say what debugger and integration framework to use. For our exemplary toolchain support, where DSF/GDB works well, we can hook it up. Where it doesn't we can use alternatives.
I need to and plan on being non-partisan in this debate of GDB versus EDC. I hope you aren't looking to me for guidance on what to choose. That's for you the community to decide, if you feel you have to at all.
Well, I certainly wasn't making a personal attack on the people working on gdb for mingw, nor was I challenging their character. The issues I was running into was much more technical than that and involved stack unwinding when mixing msvc and gcc built DLLs.
Or maybe it was stopping on shared library events giving me garbage stacks or stopping at the wrong time. I'm not a debugger expert, but It was more complicated than tty's at any rate.
I'm just not confident that the Windows platform is getting a lot of love from the gcc and gdb communities, and if that's the case, I'm OK with that.. It is a bit of a niche market. Or maybe that's changing lately and I'll certainly take a look at the 7.0.1
gdb that's now up on the mingw site. If it works with GDB/DSF, then I'll be happy. If not, I do know that EDC seems to work there and there is effort going into making it work well there.
On Wed, Feb 3, 2010 at 9:18 AM, Daniel Jacobowitz
This really pushes my buttons.
Instead of constantly complaining about MinGW GDB, you could submit
bug reports or try to understand the actual problem. For someone
who's so gung-ho about community involvement, you're selective about
which communities are worth being involved in (or even worth
encouraging) and which to do an end run around.
For instance, this might be the mostly intractable problem of
_isatty(). There's no API equivalent to pseudo-TTY's on Windows;
if you run a console program from GDB, it has to either pop up a new
console or else run the program with its standard handles connected
to a pipe. This results in buffered output and people complain about
missing printfs. I think current GDB does a little better.
An experienced Windows developer might be able to make it do
It could be any number of other problems. This random poster is
complaining about GDB 5.3. That is a seven year old release. For
some perspective on how long ago that is: this is like walking up to
you and complaining about a bug in CDT 1.0.
cdt-dev mailing list
cdt-dev mailing list