Bug 370259 - CPP Parser hangs on specific construct
Summary: CPP Parser hangs on specific construct
Status: RESOLVED WAITINGFORINFO
Alias: None
Product: kdevelop
Classification: Applications
Component: Language Support: CPP (old) (show other bugs)
Version: 4.7.3
Platform: Gentoo Packages Linux
: NOR crash
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-10-07 19:55 UTC by Daniel Santos
Modified: 2017-06-22 09:27 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Santos 2016-10-07 19:55:27 UTC
I am working on gcc at the moment, which is strange because it was converted into C++ several years ago, but most of the sources files still have a .c extension (possibly part of the problem?).

Currently, when I accidentally click on or move my text cursor to the start of a the text `gcc_assert`, I get a nice hang. By getting distracted after this one, I actually discovered that it will resolve after some 10-20 minutes. Here is the backtrace:

(gdb) bt
#0  0x00007f2d282fdfa4 in QString::operator[] (i=236222, this=0x7fff224b7d10) at /usr/include/qt4/QtCore/qstring.h:701
#1  KDevelop::findClose (str=..., pos=pos@entry=0) at /usr/src/debug/dev-util/kdevplatform-1.7.3/kdevplatform-1.7.3/language/duchain/stringhelpers.cpp:66
#2  0x00007f2c7c34d934 in CppLanguageSupport::specialLanguageObjectNavigationWidget (this=0x350ec80, url=..., position=...)
    at /usr/src/debug/dev-util/kdevelop-4.7.3/kdevelop-4.7.3/languages/cpp/cpplanguagesupport.cpp:840
#3  0x00007f2c7ca2ddbd in ContextBrowserPlugin::updateForView (this=this@entry=0x3407560, view=0x509d660)
    at /usr/src/debug/dev-util/kdevplatform-1.7.3/kdevplatform-1.7.3/plugins/contextbrowser/contextbrowser.cpp:688
#4  0x00007f2c7ca2e64c in ContextBrowserPlugin::updateViews (this=0x3407560) at /usr/src/debug/dev-util/kdevplatform-1.7.3/kdevplatform-1.7.3/plugins/contextbrowser/contextbrowser.cpp:728
#5  0x00007f2c7ca2660d in ContextBrowserPlugin::qt_static_metacall (_o=0x3407560, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>)
    at /usr/src/debug/dev-util/kdevplatform-1.7.3/kdevplatform-1.7.3_build/plugins/contextbrowser/moc_contextbrowser.cpp:121
#6  0x00007f2d29b4b463 in QMetaObject::activate (sender=0x34032a0, m=<optimized out>, local_signal_index=<optimized out>, argv=0x0)
    at /usr/src/debug/dev-qt/qtcore-4.8.7-r2/qt-everywhere-opensource-src-4.8.7/src/corelib/kernel/qobject.cpp:3567
#7  0x00007f2d29b4fb23 in QObject::event (this=0x34032a0, e=<optimized out>) at /usr/src/debug/dev-qt/qtcore-4.8.7-r2/qt-everywhere-opensource-src-4.8.7/src/corelib/kernel/qobject.cpp:1253
#8  0x00007f2d2a06888c in QApplicationPrivate::notify_helper (this=this@entry=0xbc8920, receiver=receiver@entry=0x34032a0, e=e@entry=0x7fff224b84b0)
    at /usr/src/debug/dev-qt/qtgui-4.8.7/qt-everywhere-opensource-src-4.8.7/src/gui/kernel/qapplication.cpp:4565
#9  0x00007f2d2a06f458 in QApplication::notify (this=this@entry=0x7fff224b8900, receiver=receiver@entry=0x34032a0, e=e@entry=0x7fff224b84b0)
    at /usr/src/debug/dev-qt/qtgui-4.8.7/qt-everywhere-opensource-src-4.8.7/src/gui/kernel/qapplication.cpp:4351
#10 0x00007f2d2b5581ba in KApplication::notify (this=0x7fff224b8900, receiver=0x34032a0, event=0x7fff224b84b0) at /usr/src/debug/kde-base/kdelibs-4.14.21/kdelibs-4.14.21/kdeui/kernel/kapplication.cpp:311
#11 0x00007f2d29b35f4c in QCoreApplication::notifyInternal (this=0x7fff224b8900, receiver=0x34032a0, event=event@entry=0x7fff224b84b0)
    at /usr/src/debug/dev-qt/qtcore-4.8.7-r2/qt-everywhere-opensource-src-4.8.7/src/corelib/kernel/qcoreapplication.cpp:955
#12 0x00007f2d29b68cbb in QCoreApplication::sendEvent (event=0x7fff224b84b0, receiver=<optimized out>) at ../../../qt-everywhere-opensource-src-4.8.7/src/corelib/kernel/qcoreapplication.h:231
#13 QTimerInfoList::activateTimers (this=0xbc7e90) at /usr/src/debug/dev-qt/qtcore-4.8.7-r2/qt-everywhere-opensource-src-4.8.7/src/corelib/kernel/qeventdispatcher_unix.cpp:621
#14 0x00007f2d29b65ac9 in timerSourceDispatch (source=<optimized out>) at /usr/src/debug/dev-qt/qtcore-4.8.7-r2/qt-everywhere-opensource-src-4.8.7/src/corelib/kernel/qeventdispatcher_glib.cpp:193
#15 idleTimerSourceDispatch (source=<optimized out>) at /usr/src/debug/dev-qt/qtcore-4.8.7-r2/qt-everywhere-opensource-src-4.8.7/src/corelib/kernel/qeventdispatcher_glib.cpp:240
#16 0x00007f2d23563c2a in g_main_dispatch (context=0xbc8250) at /usr/src/debug/dev-libs/glib-2.48.1/glib-2.48.1/glib/gmain.c:3154
#17 g_main_context_dispatch (context=context@entry=0xbc8250) at /usr/src/debug/dev-libs/glib-2.48.1/glib-2.48.1/glib/gmain.c:3769
#18 0x00007f2d23563fc5 in g_main_context_iterate (context=context@entry=0xbc8250, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at /usr/src/debug/dev-libs/glib-2.48.1/glib-2.48.1/glib/gmain.c:3840
#19 0x00007f2d2356408c in g_main_context_iteration (context=0xbc8250, may_block=1) at /usr/src/debug/dev-libs/glib-2.48.1/glib-2.48.1/glib/gmain.c:3901
#20 0x00007f2d29b664bc in QEventDispatcherGlib::processEvents (this=0xb11bd0, flags=...)
    at /usr/src/debug/dev-qt/qtcore-4.8.7-r2/qt-everywhere-opensource-src-4.8.7/src/corelib/kernel/qeventdispatcher_glib.cpp:450
#21 0x00007f2d2a112dd6 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...)
    at /usr/src/debug/dev-qt/qtgui-4.8.7/qt-everywhere-opensource-src-4.8.7/src/gui/kernel/qguieventdispatcher_glib.cpp:204
#22 0x00007f2d29b34981 in QEventLoop::processEvents (this=this@entry=0x7fff224b8740, flags=...)
    at /usr/src/debug/dev-qt/qtcore-4.8.7-r2/qt-everywhere-opensource-src-4.8.7/src/corelib/kernel/qeventloop.cpp:149
#23 0x00007f2d29b34d25 in QEventLoop::exec (this=this@entry=0x7fff224b8740, flags=...) at /usr/src/debug/dev-qt/qtcore-4.8.7-r2/qt-everywhere-opensource-src-4.8.7/src/corelib/kernel/qeventloop.cpp:204
#24 0x00007f2d29b3a519 in QCoreApplication::exec () at /usr/src/debug/dev-qt/qtcore-4.8.7-r2/qt-everywhere-opensource-src-4.8.7/src/corelib/kernel/qcoreapplication.cpp:1227
#25 0x00007f2d2a066bdc in QApplication::exec () at /usr/src/debug/dev-qt/qtgui-4.8.7/qt-everywhere-opensource-src-4.8.7/src/gui/kernel/qapplication.cpp:3823
#26 0x00000000004105fb in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/dev-util/kdevelop-4.7.3/kdevelop-4.7.3/app/main.cpp:582

I have built this install with USE="cmake cxx qthelp -aqua -debug -gdbui -okteta -test" and CFLAGS/CXXFLAGS="-march=native -g -O2"
Comment 1 Daniel Santos 2016-10-07 19:56:10 UTC
I forgot to mention that I have turned off background parsing and this still happens.
Comment 2 Kevin Funk 2017-06-22 09:27:11 UTC
Please try again with KDevelop 5.x.