Application: kdevelop (4.2.3) KDE Platform Version: 4.7.00 (4.7.0) Qt Version: 4.7.3 Operating System: Linux 2.6.38.5-zen-juno i686 Distribution (Platform): Gentoo Packages -- Information about the crash: - What I was doing when the application crashed: I was coding away and all of the sudden kdevelop crashed and now it crashes every time I start. The crash can be reproduced every time. -- Backtrace: Application: KDevelop (kdevelop), signal: Segmentation fault [Current thread is 1 (Thread 0xb1d0e980 (LWP 4470))] Thread 5 (Thread 0xaed27b70 (LWP 4472)): #0 0xb774e424 in __kernel_vsyscall () #1 0xb5e4af44 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xb5f4d9e5 in pthread_cond_timedwait () from /lib/libc.so.6 #3 0xb6be31af in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/qt4/libQtCore.so.4 #4 0xb565c60a in KDevelop::DUChainPrivate::CleanupThread::run (this=0x8ca60d0) at /tmp/portage/dev-util/kdevplatform-1.2.3/work/kdevplatform-1.2.3/language/duchain/duchain.cpp:286 #5 0xb6be2d14 in ?? () from /usr/lib/qt4/libQtCore.so.4 #6 0xb5e46cdc in start_thread () from /lib/libpthread.so.0 #7 0xb5f3e9ce in clone () from /lib/libc.so.6 Thread 4 (Thread 0xae114b70 (LWP 4474)): [KCrash Handler] #7 0xb6c2e0a3 in QString::operator=(QString const&) () from /usr/lib/qt4/libQtCore.so.4 #8 0xae364599 in parseFunctionInfo (func=..., this=0xab3d8e78) at /tmp/portage/dev-util/kdevelop-4.2.3/work/kdevelop-4.2.3/projectmanagers/cmake/parser/cmakeast.cpp:2476 #9 OptionAst::parseFunctionInfo (this=0xab3d8e78, func=...) at /tmp/portage/dev-util/kdevelop-4.2.3/work/kdevelop-4.2.3/projectmanagers/cmake/parser/cmakeast.cpp:2471 #10 0xae3978e8 in CMakeProjectVisitor::walk (this=0xae113d6c, fc=..., line=39, isClean=true) at /tmp/portage/dev-util/kdevelop-4.2.3/work/kdevelop-4.2.3/projectmanagers/cmake/parser/cmakeprojectvisitor.cpp:2123 #11 0xae3aad61 in CMakeParserUtils::includeScript (file=..., parent=..., data=0x9399144, sourcedir=...) at /tmp/portage/dev-util/kdevelop-4.2.3/work/kdevelop-4.2.3/projectmanagers/cmake/parser/cmakeparserutils.cpp:165 #12 0xae336fb6 in CMakeManager::includeScript (this=0x8faf3a8, file=..., project=0x8f7a368, dir=..., parent=...) at /tmp/portage/dev-util/kdevelop-4.2.3/work/kdevelop-4.2.3/projectmanagers/cmake/cmakemanager.cpp:349 #13 0xae33938c in CMakeManager::parse (this=0x8faf3a8, item=0x8fbd3b8) at /tmp/portage/dev-util/kdevelop-4.2.3/work/kdevelop-4.2.3/projectmanagers/cmake/cmakemanager.cpp:404 #14 0xb584fba2 in KDevelop::ImportProjectJobPrivate::import (this=0x8fbf618, folder=0x8fbd3b8) at /tmp/portage/dev-util/kdevplatform-1.2.3/work/kdevplatform-1.2.3/project/importprojectjob.cpp:53 #15 0xb584f5d9 in QtConcurrent::VoidStoredMemberFunctionPointerCall1<void, KDevelop::ImportProjectJobPrivate, KDevelop::ProjectFolderItem*, KDevelop::ProjectFolderItem*>::runFunctor (this=0x8fbe668) at /usr/include/qt4/QtCore/qtconcurrentstoredfunctioncall.h:426 #16 0xb584f78f in run (this=0x8fbe668) at /usr/include/qt4/QtCore/qtconcurrentrunbase.h:120 #17 QtConcurrent::RunFunctionTask<void>::run (this=0x8fbe668) at /usr/include/qt4/QtCore/qtconcurrentrunbase.h:114 #18 0xb6bd6e21 in ?? () from /usr/lib/qt4/libQtCore.so.4 #19 0xb6be2d14 in ?? () from /usr/lib/qt4/libQtCore.so.4 #20 0xb5e46cdc in start_thread () from /lib/libpthread.so.0 #21 0xb5f3e9ce in clone () from /lib/libc.so.6 Thread 3 (Thread 0xac068b70 (LWP 4550)): #0 0xb5c1a50c in clock_gettime () from /lib/librt.so.1 #1 0xb6c3a376 in ?? () from /usr/lib/qt4/libQtCore.so.4 #2 0xb6d0e017 in ?? () from /usr/lib/qt4/libQtCore.so.4 #3 0xb6d0e37b in ?? () from /usr/lib/qt4/libQtCore.so.4 #4 0xb6d0cb93 in ?? () from /usr/lib/qt4/libQtCore.so.4 #5 0xb6d0cc2d in ?? () from /usr/lib/qt4/libQtCore.so.4 #6 0xb50e002c in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0 #7 0xb50e0ea8 in ?? () from /usr/lib/libglib-2.0.so.0 #8 0xb50e151b in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #9 0xb6d0d697 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt4/libQtCore.so.4 #10 0xb6cde1ee in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt4/libQtCore.so.4 #11 0xb6cde441 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt4/libQtCore.so.4 #12 0xb6bdfe7c in QThread::exec() () from /usr/lib/qt4/libQtCore.so.4 #13 0xb6cbea7e in ?? () from /usr/lib/qt4/libQtCore.so.4 #14 0xb6be2d14 in ?? () from /usr/lib/qt4/libQtCore.so.4 #15 0xb5e46cdc in start_thread () from /lib/libpthread.so.0 #16 0xb5f3e9ce in clone () from /lib/libc.so.6 Thread 2 (Thread 0xac869b70 (LWP 4613)): #0 0xb774e424 in __kernel_vsyscall () #1 0xb5e4af44 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xb5f4d9e5 in pthread_cond_timedwait () from /lib/libc.so.6 #3 0xb6be31af in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/qt4/libQtCore.so.4 #4 0xb6bd6eb4 in ?? () from /usr/lib/qt4/libQtCore.so.4 #5 0xb6be2d14 in ?? () from /usr/lib/qt4/libQtCore.so.4 #6 0xb5e46cdc in start_thread () from /lib/libpthread.so.0 #7 0xb5f3e9ce in clone () from /lib/libc.so.6 Thread 1 (Thread 0xb1d0e980 (LWP 4470)): #0 0xb774e424 in __kernel_vsyscall () #1 0xb5f32e30 in poll () from /lib/libc.so.6 #2 0xb387c688 in ?? () from /usr/lib/libxcb.so.1 #3 0xb387cc9c in ?? () from /usr/lib/libxcb.so.1 #4 0xb387cd52 in xcb_writev () from /usr/lib/libxcb.so.1 #5 0xb539b7f0 in _XSend () from /usr/lib/libX11.so.6 #6 0xb539be2c in _XReply () from /usr/lib/libX11.so.6 #7 0xb5380cba in XGetSelectionOwner () from /usr/lib/libX11.so.6 #8 0xb62b539e in ?? () from /usr/lib/qt4/libQtGui.so.4 #9 0xb62b6c24 in ?? () from /usr/lib/qt4/libQtGui.so.4 #10 0xb623b346 in ?? () from /usr/lib/qt4/libQtGui.so.4 #11 0xb6cedf76 in ?? () from /usr/lib/qt4/libQtCore.so.4 #12 0xb6cee886 in QMimeData::data(QString const&) const () from /usr/lib/qt4/libQtCore.so.4 #13 0xb59267d6 in KFilePreviewGenerator::Private::decodeIsCutSelection(QMimeData const*) () from /usr/lib/libkfile.so.4 #14 0xb59293a0 in KFilePreviewGenerator::Private::applyCutItemEffect(KFileItemList const&) () from /usr/lib/libkfile.so.4 #15 0xb5929a05 in KFilePreviewGenerator::Private::updateIcons(KFileItemList const&) () from /usr/lib/libkfile.so.4 #16 0xb592ab06 in KFilePreviewGenerator::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkfile.so.4 #17 0xb6ce56de in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/qt4/libQtCore.so.4 #18 0xb6cf456a in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/qt4/libQtCore.so.4 #19 0xb5a4eb66 in KDirLister::newItems(KFileItemList const&) () from /usr/lib/libkio.so.5 #20 0xb5a4f294 in KDirLister::Private::emitItems() () from /usr/lib/libkio.so.5 #21 0xb5a57d43 in ?? () from /usr/lib/libkio.so.5 #22 0xb5a60f3c in ?? () from /usr/lib/libkio.so.5 #23 0xb6ce56de in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/qt4/libQtCore.so.4 #24 0xb6cf456a in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/qt4/libQtCore.so.4 #25 0xb5a3528e in KIO::ListJob::entries(KIO::Job*, QList<KIO::UDSEntry> const&) () from /usr/lib/libkio.so.5 #26 0xb5a3b300 in ?? () from /usr/lib/libkio.so.5 #27 0xb5a3b4ee in KIO::ListJob::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkio.so.5 #28 0xb6ce56de in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/qt4/libQtCore.so.4 #29 0xb6cf456a in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/qt4/libQtCore.so.4 #30 0xb5aec8a6 in KIO::SlaveInterface::listEntries(QList<KIO::UDSEntry> const&) () from /usr/lib/libkio.so.5 #31 0xb5af00a2 in KIO::SlaveInterface::dispatch(int, QByteArray const&) () from /usr/lib/libkio.so.5 #32 0xb5aebdbb in KIO::SlaveInterface::dispatch() () from /usr/lib/libkio.so.5 #33 0xb5add258 in KIO::Slave::gotInput() () from /usr/lib/libkio.so.5 #34 0xb5adda8c in KIO::Slave::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkio.so.5 #35 0xb6ce56de in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/qt4/libQtCore.so.4 #36 0xb6cf456a in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/qt4/libQtCore.so.4 #37 0xb59fabd6 in KIO::Connection::readyRead() () from /usr/lib/libkio.so.5 #38 0xb59fb41a in ?? () from /usr/lib/libkio.so.5 #39 0xb59fb4ef in KIO::Connection::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkio.so.5 #40 0xb6ce56de in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/qt4/libQtCore.so.4 #41 0xb6cf0106 in QMetaCallEvent::placeMetaCall(QObject*) () from /usr/lib/qt4/libQtCore.so.4 #42 0xb6cf767f in QObject::event(QEvent*) () from /usr/lib/qt4/libQtCore.so.4 #43 0xb6226214 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/qt4/libQtGui.so.4 #44 0xb622b5f3 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/qt4/libQtGui.so.4 #45 0xb7099912 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #46 0x0805216d in KDevelopApplication::notify (this=0xbff85800, receiver=0x8f6e778, event=0x9398ed8) at /tmp/portage/dev-util/kdevelop-4.2.3/work/kdevelop-4.2.3/app/main.cpp:90 #47 0xb6cdf1be in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/qt4/libQtCore.so.4 #48 0xb6ce2a64 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/qt4/libQtCore.so.4 #49 0xb6ce2bad in QCoreApplication::sendPostedEvents(QObject*, int) () from /usr/lib/qt4/libQtCore.so.4 #50 0xb6d0d1f5 in ?? () from /usr/lib/qt4/libQtCore.so.4 #51 0xb50e0a8f in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #52 0xb50e11f0 in ?? () from /usr/lib/libglib-2.0.so.0 #53 0xb50e151b in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #54 0xb6d0d638 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt4/libQtCore.so.4 #55 0xb62d9e1b in ?? () from /usr/lib/qt4/libQtGui.so.4 #56 0xb6cde1ee in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt4/libQtCore.so.4 #57 0xb6cde441 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt4/libQtCore.so.4 #58 0xb6750a5a in QDialog::exec() () from /usr/lib/qt4/libQtGui.so.4 #59 0xb6fef66c in KMessageBox::createKMessageBox(KDialog*, QIcon const&, QString const&, QStringList const&, QString const&, bool*, QFlags<KMessageBox::Option>, QString const&, QMessageBox::Icon) () from /usr/lib/libkdeui.so.5 #60 0xb6fefecb in KMessageBox::createKMessageBox(KDialog*, QMessageBox::Icon, QString const&, QStringList const&, QString const&, bool*, QFlags<KMessageBox::Option>, QString const&) () from /usr/lib/libkdeui.so.5 #61 0xb6ff38d3 in KMessageBox::warningContinueCancelListWId(unsigned long, QString const&, QStringList const&, QString const&, KGuiItem const&, KGuiItem const&, QString const&, QFlags<KMessageBox::Option>) () from /usr/lib/libkdeui.so.5 #62 0xb6ff3adc in KMessageBox::warningContinueCancelList(QWidget*, QString const&, QStringList const&, QString const&, KGuiItem const&, KGuiItem const&, QString const&, QFlags<KMessageBox::Option>) () from /usr/lib/libkdeui.so.5 #63 0xb73cca12 in KDevelop::SessionControllerPrivate::performRecovery (this=0x8c84de8) at /tmp/portage/dev-util/kdevplatform-1.2.3/work/kdevplatform-1.2.3/shell/sessioncontroller.cpp:402 #64 0xb73cb568 in lateInitialization (this=0x8c84de8) at /tmp/portage/dev-util/kdevplatform-1.2.3/work/kdevplatform-1.2.3/shell/sessioncontroller.cpp:352 #65 KDevelop::SessionControllerPrivate::qt_metacall (this=0x8c84de8, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x94f18c0) at /tmp/portage/dev-util/kdevplatform-1.2.3/work/kdevplatform-1.2.3_build/shell/sessioncontroller.moc:79 #66 0xb6ce56de in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/qt4/libQtCore.so.4 #67 0xb6cf0106 in QMetaCallEvent::placeMetaCall(QObject*) () from /usr/lib/qt4/libQtCore.so.4 #68 0xb6cf767f in QObject::event(QEvent*) () from /usr/lib/qt4/libQtCore.so.4 #69 0xb6226214 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/qt4/libQtGui.so.4 #70 0xb622b5f3 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/qt4/libQtGui.so.4 #71 0xb7099912 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #72 0x0805216d in KDevelopApplication::notify (this=0xbff85800, receiver=0x8c84de8, event=0x94f21d8) at /tmp/portage/dev-util/kdevelop-4.2.3/work/kdevelop-4.2.3/app/main.cpp:90 #73 0xb6cdf1be in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/qt4/libQtCore.so.4 #74 0xb6ce2a64 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/qt4/libQtCore.so.4 #75 0xb6ce2bad in QCoreApplication::sendPostedEvents(QObject*, int) () from /usr/lib/qt4/libQtCore.so.4 #76 0xb6d0d1f5 in ?? () from /usr/lib/qt4/libQtCore.so.4 #77 0xb50e0a8f in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #78 0xb50e11f0 in ?? () from /usr/lib/libglib-2.0.so.0 #79 0xb50e151b in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #80 0xb6d0d638 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt4/libQtCore.so.4 #81 0xb62d9e1b in ?? () from /usr/lib/qt4/libQtGui.so.4 #82 0xb6cde1ee in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt4/libQtCore.so.4 #83 0xb6cde441 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt4/libQtCore.so.4 #84 0xb6ce2c5b in QCoreApplication::exec() () from /usr/lib/qt4/libQtCore.so.4 #85 0xb6224165 in QApplication::exec() () from /usr/lib/qt4/libQtGui.so.4 #86 0x08051819 in main (argc=<optimized out>, argv=) at /tmp/portage/dev-util/kdevelop-4.2.3/work/kdevelop-4.2.3/app/main.cpp:467 Reported using DrKonqi
please run kdevelop through valgrind and show us the output: valgrind --track-origins=yes --num-callers=25 kdevelop
Aleix, I just had a look at the sources: bool OptionAst::parseFunctionInfo( const CMakeFunctionDesc& func ) { if(func.name.toLower()!="option" || (func.arguments.count()<2 && func.arguments.count()>3)) return false; ... the || (...) stuff is always false as func.arguments.count() cannot be <2 && >3! This is most definitely an error which could lead to crashes like the above in the following code in release-builds.
Completly forgot about this one. Sorry. Anyway, I havnt triggerd it in ages, so WORKSFORME now?
not closing it until aleix commented on my "code review" - there is an error there as far as I saw the last time (see above)
Git commit 1bb44fda994a15846fb3107bc3afa0fed818d00b by Aleix Pol. Committed on 13/12/2011 at 18:16. Pushed by apol into branch 'master'. Fix OptionAST precondition. BUG: 280581 M +1 -1 projectmanagers/cmake/parser/cmakeast.cpp http://commits.kde.org/kdevelop/1bb44fda994a15846fb3107bc3afa0fed818d00b