KDevelop crashes on code completion

Steven T. Hatton hattons at globalsymmetry.com
Sat Aug 27 01:13:07 UTC 2005


On Friday 26 August 2005 14:28, Andras Mantia wrote:
> > I'm not completely sure why bdb was removed from KDevelop.
>
> Well, it's not completely sane to keep a local copy... If BDB is so bad,
> it should be changed (sqlite?). But if it is not that bad, KDevelop must
> be able to work with different versions. BTW, this is why we have kdelibs
> and do not duplicate code everywhere.

Understood.

>  Anyway, Dirk said it will fix the crashes and he did. But there seems to
> be another problem regarding the index creation.
>  And removing -O3 is a workaround, not a solution. It was also not clear
> if during your latest test you used 4.1 or 4.3.

You noticed that too, eh?

OK, I did some digging, and this is what I've learned. If I don't give any DBD 
related arguments to ./configure, 

$ pwd
/download/org/kdevelop/repository/root/build/lib/catalog
$ . libkdevcatalog.la  #Yes I know this is stupid, but...
$ echo -e ${dependency_libs//' '/\\n} 

-ldb # This is BDB 4.3
/opt/kde3/lib/libkdecore.la
-L/usr/lib
-L/usr/lib/
-L/usr/X11R6/lib/
/opt/kde3/lib/libDCOP.la
-lresolv
-lutil
/usr/lib/libart_lgpl_2.la
/usr/lib/libidn.la
/opt/kde3/lib/libkdefx.la
/usr/lib/qt3/lib/libqt-mt.la
-lfreetype
-lfontconfig
-lXi
-lXrender
-lXrandr
-lXcursor
-lXinerama
-lXft
/usr/lib/libfontconfig.la
/usr/lib/libfreetype.la
/usr/lib/libexpat.la
-ldl
-lpng
-lz
-lXext
-lX11
-lSM
-lICE
-lpthread
/usr/lib/libstdc++.la

########################

With ./configure\
 --with-db-includedir=/usr/include/db41\
 --with-db-libdir=/usr/lib\
 --with-db-lib=db-4.1\
...
echo -e ${dependency_libs//' '/\\n} 

-L/usr/lib
/usr/lib/libdb-4.1.la # This replaced -ldb
/opt/kde3/lib/libkdecore.la
-L/usr/lib/
-L/usr/X11R6/lib/
/opt/kde3/lib/libDCOP.la
-lresolv
-lutil
/usr/lib/libart_lgpl_2.la
/usr/lib/libidn.la
/opt/kde3/lib/libkdefx.la
/usr/lib/qt3/lib/libqt-mt.la
-lfreetype
-lfontconfig
-lXi
-lXrender
-lXrandr
-lXcursor
-lXinerama
-lXft
/usr/lib/libfontconfig.la
/usr/lib/libfreetype.la
/usr/lib/libexpat.la
-ldl
-lpng
-lz
-lXext
-lX11
-lSM
-lICE
-lpthread
/usr/lib/libstdc++.la

Now here's an interesting thing.  It doesn't matter which BDB I link against. 
In either case, I get the same problem when creating a new derived class with 
the New Class dialog.  I've learned that it _does_ *eventually* return after 
I enter a character in the Base class field.  And after I enter the second 
character, it also retruns - in about a minute. Using kdebugdialog I enabled 
kdevelop (cpp support) and see that it is reporting a lengthy repetition of 
the following actions:

kdevelop (cpp support): CodeInformationRepository::getBaseClassList()
kdevelop (cpp support): CodeInformationRepository::query()
kdevelop (cpp support): CodeInformationRepository::getTagsInScope()
kdevelop (cpp support): CodeInformationRepository::query()
kdevelop (cpp support): CodeInformationRepository::query()
kdevelop (cpp support): CodeInformationRepository::query()
kdevelop (cpp support): CodeInformationRepository::getBaseClassList()
kdevelop (cpp support): CodeInformationRepository::query()
kdevelop (cpp support): CodeInformationRepository::getTagsInScope()
kdevelop (cpp support): CodeInformationRepository::query()
kdevelop (cpp support): CodeInformationRepository::query()
kdevelop (cpp support): CodeInformationRepository::query()
kdevelop (cpp support): CodeInformationRepository::getBaseClassList()
kdevelop (cpp support): CodeInformationRepository::query()
kdevelop (cpp support): CodeInformationRepository::getTagsInScope()
kdevelop (cpp support): CodeInformationRepository::query()
kdevelop (cpp support): CodeInformationRepository::query()
kdevelop (cpp support): CodeInformationRepository::query()
kdevelop (cpp support): CodeInformationRepository::getBaseClassList()
kdevelop (cpp support): CodeInformationRepository::query()

When that stops, the input cursor returns to the Base class field.

Can anybody else reproduce this behavior?  Does creating a new derived class 
when code completion is enabled, and the Qt PCS is created, and selected?
-- 
Regards,
Steven




More information about the KDevelop-devel mailing list