During debug session KDevelop crashed (immediately disappeared). Action that I've done before was try of adding global variable by move cursor over variable and selecting "Watch this". Before I was walking through the code by "Step over" function. Mentioned variable has been set in one of last step. In Variable view "Local" wasn't unfolded. The crash I reproduced twice. Most interesting part please find below: Thread 1 (Thread 0xaf1509c0 (LWP 17976)): #0 0xffffffff in __dynamic_cast () at /usr/lib/libstdc++.so.6 #1 0xffffffff in KDevelop::VariableToolTip::slotLinkActivated(QString const&) (this=0x9961880, link=...) at /home/piotr/kf5/src/kdevplatform/debugger/variable/variabletooltip.cpp:185 #2 0xffffffff in QtPrivate::QSlotObject<void (KDevelop::VariableToolTip::*)(QString const&), QtPrivate::List<QString const&>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (arg=0xbfffdc48, o=0x9961880, f=<optimized out>) at /usr/lib/qt5/include/QtCore/qobjectdefs_impl.h:501 #3 0xffffffff in QtPrivate::QSlotObject<void (KDevelop::VariableToolTip::*)(QString const&), QtPrivate::List<QString const&>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (arg=0xbfffdc48, o=0x9961880, f=<optimized out>) at /usr/lib/qt5/include/QtCore/qobjectdefs_impl.h:520 #4 0xffffffff in QtPrivate::QSlotObject<void (KDevelop::VariableToolTip::*)(QString const&), QtPrivate::List<QString const&>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x99eab08, r=0x9961880, a=0xbfffdc48, ret=0x0) at /usr/lib/qt5/include/QtCore/qobject_impl.h:143 #5 0xffffffff in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/sse2/libQt5Core.so.5 #6 0xffffffff in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () at /usr/lib/sse2/libQt5Core.so.5 #7 0xffffffff in QSignalMapper::mapped(QString const&) () at /usr/lib/sse2/libQt5Core.so.5 #8 0xffffffff in QSignalMapper::map(QObject*) () at /usr/lib/sse2/libQt5Core.so.5 #9 0xffffffff in QSignalMapper::map() () at /usr/lib/sse2/libQt5Core.so.5 #10 0xffffffff in QtPrivate::QSlotObject<void (QSignalMapper::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (arg=<optimized out>, o=0x8ba0070, f=<optimized out>) at /usr/lib/qt5/include/QtCore/qobjectdefs_impl.h:501 #11 0xffffffff in QtPrivate::QSlotObject<void (QSignalMapper::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (arg=<optimized out>, o=0x8ba0070, f=<optimized out>) at /usr/lib/qt5/include/QtCore/qobjectdefs_impl.h:520 #12 0xffffffff in QtPrivate::QSlotObject<void (QSignalMapper::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x9b960e0, r=0x8ba0070, a=0xbfffdde8, ret=0x0) at /usr/lib/qt5/include/QtCore/qobject_impl.h:143 #13 0xffffffff in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/sse2/libQt5Core.so.5 #14 0xffffffff in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () at /usr/lib/sse2/libQt5Core.so.5 #15 0xffffffff in QAbstractButton::clicked(bool) () at /usr/lib/libQt5Widgets.so.5 #16 0xffffffff in QAbstractButtonPrivate::emitClicked() () at /usr/lib/libQt5Widgets.so.5 #17 0xffffffff in QAbstractButtonPrivate::click() () at /usr/lib/libQt5Widgets.so.5 #18 0xffffffff in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () at /usr/lib/libQt5Widgets.so.5 #19 0xffffffff in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5 #20 0xffffffff in QAbstractButton::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5 #21 0xffffffff in QPushButton::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5 #22 0xffffffff in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #23 0xffffffff in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #24 0xffffffff in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /usr/lib/sse2/libQt5Core.so.5 #25 0xffffffff in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib/libQt5Widgets.so.5 #26 0xffffffff in QWidgetWindow::handleMouseEvent(QMouseEvent*) () at /usr/lib/libQt5Widgets.so.5 #27 0xffffffff in QWidgetWindow::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5 #28 0xffffffff in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #29 0xffffffff in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #30 0xffffffff in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /usr/lib/sse2/libQt5Core.so.5 #31 0xffffffff in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/sse2/libQt5Gui.so.5 #32 0xffffffff in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/sse2/libQt5Gui.so.5 #33 0xffffffff in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/sse2/libQt5Gui.so.5 #34 0xffffffff in userEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /usr/lib/libQt5XcbQpa.so.5 #35 0xffffffff in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 #36 0xffffffff in g_main_context_iterate.isra () at /usr/lib/libglib-2.0.so.0 #37 0xffffffff in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #38 0xffffffff in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/sse2/libQt5Core.so.5 #39 0xffffffff in QPAEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5XcbQpa.so.5 #40 0xffffffff in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/sse2/libQt5Core.so.5 #41 0xffffffff in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/sse2/libQt5Core.so.5 #42 0xffffffff in QCoreApplication::exec() () at /usr/lib/sse2/libQt5Core.so.5 #43 0xffffffff in QGuiApplication::exec() () at /usr/lib/sse2/libQt5Gui.so.5 #44 0xffffffff in QApplication::exec() () at /usr/lib/libQt5Widgets.so.5 #45 0x08054df7 in main(int, char**) (argc=1, argv=0xbfffebc4) at /home/piotr/kf5/src/kdevelop/app/main.cpp:646 Reproducible: Always KTextEditor, Kate, KDevplatform and KDevelop cloned at 2015-11-10 $ gdb --version GNU gdb (GDB) 7.10-4.mga6 (Mageia release 6) Full session in dbg attached.
I did couple of tests more and turned out that... Walking through the code by "Step over" function is not required to reproduce this crash. It's enough to set break point in code. And then try to add any variable by "Watch this". I reproduced it 4 times.
Created attachment 95425 [details] gdb full log from kdevelop debug session when crash was happened
Just for reminding... It still happens in fresh KDevelop 5 (kdevelop and kdevplatform cloned at 30.11.2015) This time I reproduced this bug on Kubuntu 15.10 using simple scenario described in "Comment 1". KDevelop still crashed on the same line (184). Check: Thread 1 (Thread 0x7fffdd3c4800 (LWP 6735)): I attached gdb full log. The work around is copying variable name and paste it into Variable view. Could anyone to confirm this issue and at a pinch fix it.
Created attachment 95871 [details] gdb full log for Crash
Recently I discover one thing, maybe will be helpful. Namely, KDevelop beta1 (mentioned on your homesite and packaged in couple of distributions: KaOS, Mageia Cauldron) doesn't have this bug.
Confirmed by multiple users.
@Piotr: Care to have a look at this? And provide a patch?
*** Bug 361407 has been marked as a duplicate of this bug. ***
Git commit 69348b5ae656022bca02f911267d4c0e3d092f29 by Kevin Funk. Committed on 14/04/2016 at 22:37. Pushed by kfunk into branch '5.0'. Use correct index when querying model FIXED-IN: 5.0 M +2 -1 debugger/variable/variabletooltip.cpp http://commits.kde.org/kdevplatform/69348b5ae656022bca02f911267d4c0e3d092f29