Occasional lockups during code-completion

Andreas Pakulat apaku at gmx.de
Thu Jun 26 22:05:28 UTC 2008


Hi,

just had the second "lockup" of kdev4 due to code-completion widget and
thought I'd share the backtrace and some information:

So first the output of doing "fin" a couple of times:

(gdb) fin
Run till exit from #0  0xb626703c in nanosleep () from /lib/libc.so.6
0xb629667c in usleep () from /lib/libc.so.6
(gdb) fin
Run till exit from #0  0xb629667c in usleep () from /lib/libc.so.6
KDevelop::DUChainLock::lockForRead (this=0x8208bd0, timeout=500)
    at /home/andreas/KDE-work/4.0/kdevplatform/language/duchain/duchainlock.cpp:170
170         lock.relock();
(gdb) fin
Run till exit from #0  KDevelop::DUChainLock::lockForRead (this=0x8208bd0, timeout=500)
    at /home/andreas/KDE-work/4.0/kdevplatform/language/duchain/duchainlock.cpp:170
KDevelop::DUChainReadLocker::lock (this=0xbfb80050)
    at /home/andreas/KDE-work/4.0/kdevplatform/language/duchain/duchainlock.cpp:349
349         Q_ASSERT(m_timeout || l);
Value returned is $1 = false
(gdb) fin
Run till exit from #0  KDevelop::DUChainReadLocker::lock (this=0xbfb80050)
    at /home/andreas/KDE-work/4.0/kdevplatform/language/duchain/duchainlock.cpp:349
DUChainReadLocker (this=0xbfb80050, duChainLock=0x8208bd0, timeout=500)
    at /home/andreas/KDE-work/4.0/kdevplatform/language/duchain/duchainlock.cpp:330
330     }
Value returned is $2 = false
(gdb) fin
Run till exit from #0  DUChainReadLocker (this=0xbfb80050, duChainLock=0x8208bd0, timeout=500)
    at /home/andreas/KDE-work/4.0/kdevplatform/language/duchain/duchainlock.cpp:330
NormalDeclarationCompletionItem::data (this=0x143bfe68, index=@0xbfb801e8, role=0, model=0x8ad6270)
    at /home/andreas/KDE-work/4.0/kdevelop/languages/cpp/completionitem.cpp:183
183       if(!lock.locked()) {
(gdb) fin
Run till exit from #0  NormalDeclarationCompletionItem::data (this=0x143bfe68, index=@0xbfb801e8,
    role=0, model=0x8ad6270)
    at /home/andreas/KDE-work/4.0/kdevelop/languages/cpp/completionitem.cpp:183
0xb61b7139 in KDevelop::CodeCompletionModel::data (this=0x8ad6270, index=@0xbfb801e8, role=0)
    at /home/andreas/KDE-work/4.0/kdevplatform/language/codecompletion/codecompletionmodel.cpp:224
224       return treeElement.asItem()->data(index, role, this);
Value returned is $3 =
    {d = {data = {c = 0 '\0', i = 0, u = 0, b = false, d = -1.139427392665288e-42, ll = -5244044863850151936, ull = 13202699209859399680, ptr = 0x0, shared = 0x0}, type = 0, is_shared = 0, is_null = 1}}
(gdb) fin
Run till exit from #0  0xb61b7139 in KDevelop::CodeCompletionModel::data (this=0x8ad6270,
    index=@0xbfb801e8, role=0)
    at /home/andreas/KDE-work/4.0/kdevplatform/language/codecompletion/codecompletionmodel.cpp:224
0xb117a9ed in KateCompletionModel::Item::match (this=0x145d2e38, newCompletion=@0xbfb80388)
    at /home/andreas/qt-copy/include/QtCore/qabstractitemmodel.h:373
373     { return m ? m->data(*this, arole) : QVariant(); }
Value returned is $4 =
    {d = {data = {c = 0 '\0', i = 0, u = 0, b = false, d = -1.139427392665288e-42, ll = -5244044863850151936, ull = 13202699209859399680, ptr = 0x0, shared = 0x0}, type = 0, is_shared = 0, is_null = 1}}
(gdb) fin
Run till exit from #0  0xb117a9ed in KateCompletionModel::Item::match (this=0x145d2e38,
    newCompletion=@0xbfb80388) at /home/andreas/qt-copy/include/QtCore/qabstractitemmodel.h:373
0xb1180cd8 in KateCompletionModel::changeCompletions (this=0xc242170, g=0x144785b0,
    newCompletion=@0xbfb80388, changeType=KateCompletionModel::Narrow)
    at /home/andreas/KDE-work/4.0/kdelibs/kate/completion/katecompletionmodel.cpp:934
934               if (prefilter.peekNext().match(newCompletion)) {
Value returned is $5 = false
(gdb) fin
Run till exit from #0  0xb1180cd8 in KateCompletionModel::changeCompletions (this=0xc242170,
    g=0x144785b0, newCompletion=@0xbfb80388, changeType=KateCompletionModel::Narrow)
    at /home/andreas/KDE-work/4.0/kdelibs/kate/completion/katecompletionmodel.cpp:934
KateCompletionModel::setCurrentCompletion (this=0xc242170, completion=@0xbfb80388)
    at /home/andreas/KDE-work/4.0/kdelibs/kate/completion/katecompletionmodel.cpp:866
866         foreach (Group* g, m_rowTable)
(gdb) fin

And now the backtrace

#0  0xb626703c in nanosleep () from /lib/libc.so.6
#1  0xb629667c in usleep () from /lib/libc.so.6
#2  0xb61998dd in KDevelop::DUChainLock::lockForRead (this=0x8208bd0, timeout=500)
    at /home/andreas/KDE-work/4.0/kdevplatform/language/duchain/duchainlock.cpp:168
#3  0xb6199a7f in KDevelop::DUChainReadLocker::lock (this=0xbfb80050)
    at /home/andreas/KDE-work/4.0/kdevplatform/language/duchain/duchainlock.cpp:348
#4  0xb6199afc in DUChainReadLocker (this=0xbfb80050, duChainLock=0x8208bd0, timeout=500)
    at /home/andreas/KDE-work/4.0/kdevplatform/language/duchain/duchainlock.cpp:329
#5  0xaf47d2dc in NormalDeclarationCompletionItem::data (this=0x143bfe68, index=@0xbfb801e8,
    role=0, model=0x8ad6270)
    at /home/andreas/KDE-work/4.0/kdevelop/languages/cpp/completionitem.cpp:182
#6  0xb61b7139 in KDevelop::CodeCompletionModel::data (this=0x8ad6270, index=@0xbfb801e8, role=0)
    at /home/andreas/KDE-work/4.0/kdevplatform/language/codecompletion/codecompletionmodel.cpp:224
#7  0xb117a9ed in KateCompletionModel::Item::match (this=0x145d2e38, newCompletion=@0xbfb80388)
    at /home/andreas/qt-copy/include/QtCore/qabstractitemmodel.h:373
#8  0xb1180cd8 in KateCompletionModel::changeCompletions (this=0xc242170, g=0x144785b0,
    newCompletion=@0xbfb80388, changeType=KateCompletionModel::Narrow)
    at /home/andreas/KDE-work/4.0/kdelibs/kate/completion/katecompletionmodel.cpp:934
#9  0xb118144f in KateCompletionModel::setCurrentCompletion (this=0xc242170, completion=@0xbfb80388)
    at /home/andreas/KDE-work/4.0/kdelibs/kate/completion/katecompletionmodel.cpp:868
#10 0xb117485d in KateCompletionWidget::cursorPositionChanged (this=0xc133148)
    at /home/andreas/KDE-work/4.0/kdelibs/kate/completion/katecompletionwidget.cpp:389
#11 0xb1176f1b in KateCompletionWidget::qt_metacall (this=0xc133148,
    _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0xbfb804a8)
    at /home/andreas/KDE-work/4.0/build/kdelibs/kate/katecompletionwidget.moc:91
#12 0xb73b2fcb in QMetaObject::activate () from /home/andreas/qt-copy/lib/libQtCore.so.4
#13 0xb73b344d in QMetaObject::activate () from /home/andreas/qt-copy/lib/libQtCore.so.4
#14 0xb7469419 in KTextEditor::View::cursorPositionChanged (this=0xc90e3e8, _t1=0xc90e3e8,
    _t2=@0x93fa464) at /home/andreas/KDE-work/4.0/build/kdelibs/interfaces/ktexteditor/view.moc:166
#15 0xb1268c1d in KateViewInternal::updateCursor (this=0x93fa410, newCursor=@0x93fa464, force=true,
    center=false, calledExternally=false)
    at /home/andreas/KDE-work/4.0/kdelibs/kate/view/kateviewinternal.cpp:1843
#16 0xb126f2f3 in KateViewInternal::editEnd (this=0x93fa410, editTagLineStart=53,
    editTagLineEnd=53, tagFrom=false)
    at /home/andreas/KDE-work/4.0/kdelibs/kate/view/kateviewinternal.cpp:3190
#17 0xb124c0d9 in KateView::editEnd (this=0xc90e3e8, editTagLineStart=53, editTagLineEnd=53,
    tagFrom=<value optimized out>) at /home/andreas/KDE-work/4.0/kdelibs/kate/view/kateview.cpp:1333
---Type <return> to continue, or q <return> to quit---
#18 0xb11d1e49 in KateDocument::editEnd (this=0xc93bcc0)
    at /home/andreas/KDE-work/4.0/kdelibs/kate/document/katedocument.cpp:1100
#19 0xb11d5ef5 in KateDocument::typeChars (this=0xc93bcc0, view=0xc90e3e8, chars=@0xbfb807e0)
    at /home/andreas/KDE-work/4.0/kdelibs/kate/document/katedocument.cpp:4053
#20 0xb126a53e in KateViewInternal::keyPressEvent (this=0x93fa410, e=0xbfb80d04)
    at /home/andreas/KDE-work/4.0/kdelibs/kate/view/kateviewinternal.cpp:2293
#21 0xb1266ab9 in KateViewInternal::eventFilter (this=0x93fa410, obj=0x93fa410, e=0xbfb80d04)
    at /home/andreas/KDE-work/4.0/kdelibs/kate/view/kateviewinternal.cpp:2133
#22 0xb739c694 in QCoreApplicationPrivate::sendThroughObjectEventFilters ()
   from /home/andreas/qt-copy/lib/libQtCore.so.4
#23 0xb6584253 in QApplicationPrivate::notify_helper () from /home/andreas/qt-copy/lib/libQtGui.so.4
#24 0xb65848e5 in QApplication::notify () from /home/andreas/qt-copy/lib/libQtGui.so.4
#25 0xb77ac8dd in KApplication::notify (this=0xbfb816dc, receiver=0x93fa410, event=0xbfb80d04)
    at /home/andreas/KDE-work/4.0/kdelibs/kdeui/kernel/kapplication.cpp:311
#26 0xb739e312 in QCoreApplication::notifyInternal () from /home/andreas/qt-copy/lib/libQtCore.so.4
#27 0xb6590153 in QCoreApplication::sendSpontaneousEvent ()
   from /home/andreas/qt-copy/lib/libQtGui.so.4
#28 0xb65ef19c in qt_sendSpontaneousEvent () from /home/andreas/qt-copy/lib/libQtGui.so.4
#29 0xb6625e64 in QKeyMapper::sendKeyEvent () from /home/andreas/qt-copy/lib/libQtGui.so.4
#30 0xb6626fee in QKeyMapperPrivate::translateKeyEvent ()
   from /home/andreas/qt-copy/lib/libQtGui.so.4
#31 0xb65fe8d6 in QApplication::x11ProcessEvent () from /home/andreas/qt-copy/lib/libQtGui.so.4
#32 0xb6629508 in x11EventSourceDispatch () from /home/andreas/qt-copy/lib/libQtGui.so.4
#33 0xb5d5d978 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#34 0xb5d60bce in ?? () from /usr/lib/libglib-2.0.so.0
#35 0x08099c90 in ?? ()



-- 
You are as I am with You.




More information about the KDevelop-devel mailing list