[Kde-bindings] KDE/kdebindings/smoke
Richard Dale
rdale at foton.es
Fri Nov 20 12:13:43 UTC 2009
On Thursday 19 November 2009 06:32:18 pm Arno Rehn wrote:
> On Thursday 19 November 2009 19:24:18 Richard Dale wrote:
> > On Thursday 19 November 2009 06:08:28 pm Arno Rehn wrote:
> > > On Thursday 19 November 2009 12:46:44 Richard Dale wrote:
> > > > SVN commit 1051455 by rdale:
> > > >
> > > > * Added qtsvg and qtxml smoke libs. However, the generator currently
> > > > seg faults when generating the qtxml lib
> > >
> > > Hm, it works perfectly fine for me. Do you have a backtrace or some
> > > other useful information?
> >
> > I did an svn up and make clean, to make sure i had the current generator.
> > I am using kubuntu karmic with gcc 4.4.1:
> >
> > $gcc -v
> > Using built-in specs.
> > Target: i486-linux-gnu
> > Configured with: ../src/configure -v --with-pkgversion='Ubuntu
> > 4.4.1-4ubuntu8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs
> > --enable-
> > languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared
> > --enable- multiarch --enable-linker-build-id --with-system-zlib
> > --libexecdir=/usr/lib -- without-included-gettext --enable-threads=posix
> > --with-gxx-include- dir=/usr/include/c++/4.4 --program-suffix=-4.4
> > --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug
> > --enable-objc-gc --enable-targets=all --disable- werror
> > --with-arch-32=i486 --with-tune=generic --enable-checking=release --
> > build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
> > Thread model: posix
> > gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu8)
> >
> >
> >
> > [100%] Generating smokedata.cpp, x_1.cpp
> > using generator
> > "/home/rdale/kde/build/4/kdebindings/generator/bin/generator_smoke.so"
> > parsing "/home/rdale/kde/src/4/kdebindings/smoke/qtxml/qtxml_includes.h"
> > Generating SMOKE sources...
> > preparing SMOKE data [qtxml]
> >
> >
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > 0x080631d0 in QBasicAtomicInt::ref() ()
> > (gdb) where
> > #0 0x080631d0 in QBasicAtomicInt::ref() ()
> > #1 0x08071925 in QList<Type>::QList(QList<Type> const&) ()
> > #2 0x4085c8a0 in QForeachContainer<QList<Type>
> > const>::QForeachContainer(QList<Type> const&) ()
> > from
> > /home/rdale/kde/build/4/kdebindings/generator/bin/generator_smoke.so #3
> > 0x40858015 in Util::addDestructor(Class*) () from
> > /home/rdale/kde/build/4/kdebindings/generator/bin/generator_smoke.so
> > #4 0x40855950 in Util::preparse(QSet<Type*>*, QSet<Class const*>*,
> > QList<QString> const&) ()
> > from
> > /home/rdale/kde/build/4/kdebindings/generator/bin/generator_smoke.so #5
> > 0x4084601f in SmokeDataFile::SmokeDataFile() () from
> > /home/rdale/kde/build/4/kdebindings/generator/bin/generator_smoke.so
> > #6 0x40836ce9 in generate () from
> > /home/rdale/kde/build/4/kdebindings/generator/bin/generator_smoke.so
> > #7 0x08062faa in main ()
>
> That crash in QBasicAtomicInt::ref() looks strange to me. If the QList
> itself was faulty it would crash in QList::detach() or so, I guess. What
> version of Qt are you using? I have a kde-qt snapshot from November 11.
I've done some more testing. The crash only happens with the QDomText class
(which hasn't got a destructor). It inherits from QDomNode which has a non-
virtual destructor, but then there are lots of other classes that inherit from
QDomNode. If I remove QDomText from the classes list for the qt and qtxml
smoke libs they both build fine.
I added some debug logging to the addDestructor() method before the foreach
loop:
const Method* dtor = findDestructor(klass);
if (dtor && dtor->hasExceptionSpec()) {
meth.setHasExceptionSpec(true);
printf("klass.name(): %s dtor: %p\n", klass-
>name().toLatin1().constData(), dtor);
foreach (const Type& t, dtor->exceptionTypes()) {
printf("found a type\n");
meth.appendExceptionType(t);
}
}
It only ever prints something for QDomText just before the crash. With
QDomText removed it never prints anything when building the qt and qtxml smoke
libs.
-- Richard
More information about the Kde-bindings
mailing list