[Qt-creator] Some thoughts about 2.5

André Pönitz andre.poenitz at mathematik.tu-chemnitz.de
Mon May 28 22:07:06 CEST 2012


On Mon, May 28, 2012 at 05:41:01PM +0200, Geronimo Ma. Hernandez wrote:
> On Montag 28 Mai 2012, André Pönitz wrote:
> > On Mon, May 28, 2012 at 06:45:53AM +0200, Geronimo Ma. Hernandez
> > wrote:
> > > The log is attached. (I changed the absolute path of my home
> > > directory to a '~')
> > 
> > The documentation mentions
> > 
> >   "The minimal supported version is 7.2. Using GDB version 7.4 is
> >   highly recommended with Qt Creator 2.5. For Qt Creator 2.6 the
> >   minimal supported version will be raised to GDB 7.4."
> 
> That's very poor. 
> 
> I guess, QtCreator was working with gdb V7.0 some day (very long time
> ago).

With 7.0 barely, as gdb 7.0 happily crashes every now and then when
accessing anonymous unions which are a rather common construct in Qt
container implementation. But 6.8 and 7.0.1 work indeed with
versions of Creator from that era.

> > Qt Creator heavily uses the python scripting interface gdb features
> > since 7.0. The available functions and their behaviour unfortunately
> > change even with patch releases, so supporting all versions at the
> > same time without falling back to expensive workarounds is
> > impossible.
> 
> Well, in that case, I expect QtCreator use different parsers depending
> on the gdb-version. 

If that is your expectation you might want to volunteer to maintain
the combinations you are interested in. Note that's not only a question
of gdb version but also of distribution patches on top of that.
The necessary adaptations range from "just a line" in most cases
up to 1500 lines (for the Mac version of gdb, which is btw based
on gdb 6.3 and still "supported"...)

I have a zoo of about 20 gdb "common" builds around, but at some
point one has to cut losses and simply declare "the rest" as
"unsupported".

> I'm quite sure, that I'm not the only user of debian stable, who likes
> to use a sophisticated ide.

> > I suggest to grab a supported version of gdb e.g. from
> > http://builds.qt- project.org/ and retry, and also make sure that
> > you are using a debug version of your application
> 
> Just for curiosity, I built a recent gdb-version and now it works.

Oh well.

And the requirement was even documented.

> Again: from my point of view, this behavior of QtCreator is very poor.
> With all that parsing effort it should be able to rise an appropriate
> error message, telling the user about an outdated gdb or the like.

The log file you sent earlier contains:

   UNSUPPORTED GDB VERSION GNU gdb (GDB) 7.0.1-debian

> I know from my java-projects, that supporting external tools by
> parsing their output is grunt work. Especially the support for
> different releases.  Yes, nobody likes that work, but I think, its
> essential for professional products - and I consider QtCreator having
> the potential for being professional ;)

This is not only about parsing output. This is mostly about not
triggering code paths that crash gdb while not wasting too much user
time on "safe" workarounds. It's also about handling notifications
that might come in time, or later, or not come at all. Or twice.
It's also about finding out which kind of _input_ a certain build of
gdb accepts. Like whether "disassemble" needs a comma between its
parameters or not.  Or whether it's better to run -stack-list-frames
twice to get one usable answer. Or whether, and if so, where exactly
to put quotes when evaluating C++ expressions, etc, etc.

Andre'



More information about the Qt-creator mailing list