Hello, I tried to debug this issue and spent "some" time to it. ------- The class ShellCorona contains a QMap m_desktopViewforId storing pairs of idx and desktopViews pointers.
When a display gets deactivated the method ShellCorona::removeDesktop [1] is called with parameter desktopView. void ShellCorona::removeDesktop(DesktopView *desktopView) { const int idx = m_screenPool->id(desktopView->screenToFollow()->name()); "desktopView->screenToFollow()->name()" returns in my case always "DVI-I-1" even as I disabled in the dialog the "VGA-1" display. Therefore idx is set to 0. Some lines later the desktopView gets deleted and removed from the map. But unfortunately in this map the desktopView pointer, that gets deleted, is stored with idx=1. delete desktopView; m_desktopViewforId.remove(idx); That way desktopView contains now a pointer to already deleted memory. ------- Second: When we start without an already existing directory ~/.local/share/kscreen/ then the crash happens also when upower _is_ installed. But there is gets less visible because kscreen saves this configuration and uses it next time at login, make the configuration at least activated there. Without upower both displays are activated by default at login. ------- Attached is a valgrind run and some gdb sessions trying to debug to the issue. ------- Setting idx to the key that matches the element in the map for the to be deleted desktopView leads to no crash. Kind regards, Bernhard [1] plasma-workspace-5.8.4/shell/shellcorona.cpp
Environment: - Minimal Stretch i386 install - apt-get --no-install-recommends --no-install-suggests install sddm plasma-desktop kwin-x11 strace mesa-utils htop systemsettings kde-config-sddm kscreen systemd-coredump gdb libc-dbg plasma-workspace-dbgsym libkf5plasma5-dbgsym libqt5core5a-dbgsym libqt5gui5-dbgsym libqt5widgets5-dbgsym libglib2.0-0-dbg libkf5windowsystem5-dbgsym libkf5plasmaquick5-dbgsym plasma-framework-dbgsym libqt5qml5-dbgsym libqt5quick5-dbgsym libtaskmanager6-dbgsym libkf5itemmodels5-dbgsym libkf5activities5-dbgsym devscripts qtbase5-dev gdbserver git git-gui valgrind kdesdk-scripts - NVIDIA Corporation NV40 [GeForce 6800] (with Nouveau driver) 15.03.2017 22:04:13.175 ; kded ; : KScreen::Output( 145 "VGA-1" connected enabled QPoint(0,0) QSize(1024, 768) "149" ) 15.03.2017 22:04:13.185 ; kded ; : KScreen::Output( 146 "DVI-I-1" connected enabled QPoint(1024,0) QSize(1024, 768) "149" ) ------------ mv /usr/bin/plasmashell /usr/bin/plasmashell.orig cat /usr/bin/plasmashell #!/bin/sh #/usr/bin/gdbserver localhost:4567 /usr/bin/plasmashell.orig $@ #/usr/bin/plasmashell.orig $@ > $(tempfile --prefix=plasmashell) 2>&1 /usr/bin/valgrind --log-file=/tmp/valgrind.log /usr/bin/plasmashell.orig $@ ==1042== Invalid read of size 4 ==1042== at 0x487B034: PlasmaQuick::ContainmentView::containment() const (containmentview.cpp:263) ==1042== by 0x13E219: ShellCorona::screenForContainment(Plasma::Containment const*) const (shellcorona.cpp:1826) ==1042== by 0x13E165: ShellCorona::screenForContainment(Plasma::Containment const*) const (shellcorona.cpp:1818) ==1042== by 0x4EF3FAA: Plasma::Containment::screen() const (containment.cpp:489) ==1042== by 0x19677BC6: NotificationsApplet::onScreenChanges() (notificationsapplet.cpp:65) ==1042== by 0x6DBFAAD: call (qobject_impl.h:101) ==1042== by 0x6DBFAAD: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3723) ==1042== by 0x6DBFF8C: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3602) ==1042== by 0x59F3EE1: KWindowSystem::workAreaChanged() (moc_kwindowsystem_WAINN7OXDV4STE.cpp:337) ==1042== by 0xD6B0E8B: NETEventFilter::nativeEventFilter(xcb_generic_event_t*) (kwindowsystem.cpp:258) ==1042== by 0x6D8E66F: QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) (qabstracteventdispatcher.cpp:466) ==1042== by 0xAC35121: QXcbConnection::handleXcbEvent(xcb_generic_event_t*) (qxcbconnection.cpp:1106) ==1042== by 0xAC35EF6: QXcbConnection::processXcbEvents() (qxcbconnection.cpp:1741) ==1042== Address 0xd3d6d08 is 24 bytes inside a block of size 60 free'd ==1042== at 0x482E938: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==1042== by 0x12B6C1: DesktopView::~DesktopView() (desktopview.cpp:74) ==1042== by 0x13F9D0: ShellCorona::removeDesktop(DesktopView*) (shellcorona.cpp:1047) ==1042== by 0x14044E: ShellCorona::screenRemoved(QScreen*) (shellcorona.cpp:1077) ==1042== by 0x6DBFAAD: call (qobject_impl.h:101) ==1042== by 0x6DBFAAD: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3723) ==1042== by 0x6DBFF8C: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3602) ==1042== by 0x6685EC8: QGuiApplication::screenRemoved(QScreen*) (moc_qguiapplication.cpp:366) ==1042== by 0x66BE982: QScreen::~QScreen() (qscreen.cpp:114) ==1042== by 0x66BECF9: QScreen::~QScreen() (qscreen.cpp:139) ==1042== by 0x667759A: QPlatformIntegration::destroyScreen(QPlatformScreen*) (qplatformintegration.cpp:496) ==1042== by 0xAC33D51: QXcbConnection::destroyScreen(QXcbScreen*) (qxcbconnection.cpp:386) ==1042== by 0xAC346D8: QXcbConnection::updateScreens(xcb_randr_notify_event_t const*) (qxcbconnection.cpp:281) ==1042== Block was alloc'd at ==1042== at 0x482D8DC: operator new(unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==1042== by 0x1420B2: ShellCorona::addOutput(QScreen*) (shellcorona.cpp:1151) ==1042== by 0x14AFC4: ShellCorona::load() (shellcorona.cpp:677) ==1042== by 0x6DBFAAD: call (qobject_impl.h:101) ==1042== by 0x6DBFAAD: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3723) ==1042== by 0x6DBFF8C: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3602) ==1042== by 0x4C7D9B0: KActivities::Consumer::serviceStatusChanged(KActivities::Consumer::ServiceStatus) (in /usr/lib/i386-linux-gnu/libKF5Activities.so.5.28.0) ==1042== by 0x4C7EFED: ??? (in /usr/lib/i386-linux-gnu/libKF5Activities.so.5.28.0) ==1042== by 0x6DBF72B: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3740) ==1042== by 0x6DBFF8C: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3602) ==1042== by 0x4C7D831: ??? (in /usr/lib/i386-linux-gnu/libKF5Activities.so.5.28.0) ==1042== by 0x4C765D3: ??? (in /usr/lib/i386-linux-gnu/libKF5Activities.so.5.28.0) ==1042== by 0x4C76852: ??? (in /usr/lib/i386-linux-gnu/libKF5Activities.so.5.28.0) ------------- Please watch the pointer 0x80f05c88 benutzer@debian:~$ gdb -q --pid 1769 Attaching to process 1769 [New LWP 1777] [New LWP 1792] [New LWP 1799] [New LWP 1818] [New LWP 1819] [New LWP 1820] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". 0xb7748cf9 in __kernel_vsyscall () (gdb) directory /home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0 Source directories searched: /home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd (gdb) directory /home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4 Source directories searched: /home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd (gdb) directory /home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib Source directories searched: /home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib:/home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd (gdb) directory /home/benutzer/debian/qtbase-opensource-src/orig/qtdeclarative-opensource-src/orig/qtdeclarative-opensource-src-5.7.1/src/qml Source directories searched: /home/benutzer/debian/qtbase-opensource-src/orig/qtdeclarative-opensource-src/orig/qtdeclarative-opensource-src-5.7.1/src/qml:/home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib:/home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd (gdb) set height 0 (gdb) set width 0 (gdb) b DesktopView::~DesktopView Breakpoint 1 at 0x800845e0: DesktopView::~DesktopView. (2 locations) (gdb) commands Type commands for breakpoint(s) 1, one per line. End with a line saying just "end". >print this >cont >end (gdb) b NotificationsApplet::onScreenChanges Breakpoint 2 at 0xa4fa4b80: file ./applets/notifications/lib/notificationsapplet.cpp, line 64. (gdb) cont Continuing. Thread 1 "plasmashell.ori" hit Breakpoint 2, NotificationsApplet::onScreenChanges (this=0x814f48d0) at ./applets/notifications/lib/notificationsapplet.cpp:64 64 { (gdb) cont Continuing. Thread 1 "plasmashell.ori" hit Breakpoint 1, DesktopView::~DesktopView (this=0x80f05c88, __in_chrg=<optimized out>) at ./shell/desktopview.cpp:72 72 DesktopView::~DesktopView() $1 = (DesktopView * const) 0x80f05c88 Thread 1 "plasmashell.ori" hit Breakpoint 1, DesktopView::~DesktopView (this=0x80f05c88, __in_chrg=<optimized out>) at ./shell/desktopview.cpp:72 72 DesktopView::~DesktopView() $2 = (DesktopView * const) 0x80f05c88 Thread 1 "plasmashell.ori" hit Breakpoint 2, NotificationsApplet::onScreenChanges (this=0x814f48d0) at ./applets/notifications/lib/notificationsapplet.cpp:64 64 { (gdb) next 65 m_availableScreenRect = containment()->corona()->availableScreenRect(containment()->screen()); (gdb) step Plasma::Applet::containment (this=0x814f48d0) at ./src/plasma/applet.cpp:640 640 { (gdb) next 641 Containment *c = qobject_cast<Containment *>(const_cast<Applet *>(this)); (gdb) 642 if (c && c->isContainment()) { (gdb) 648 QObject *parent = this->parent(); (gdb) 650 while (parent) { (gdb) 651 Containment *possibleC = qobject_cast<Containment *>(parent); (gdb) 653 if (possibleC && possibleC->isContainment()) { (gdb) 651 Containment *possibleC = qobject_cast<Containment *>(parent); (gdb) 653 if (possibleC && possibleC->isContainment()) { (gdb) 661 } (gdb) step Plasma::Containment::corona (this=0x80cd91f8) at ./src/plasma/containment.cpp:323 323 { (gdb) next 328 Plasma::Applet *parentApplet = qobject_cast<Plasma::Applet *>(parent()); (gdb) 323 { (gdb) 328 Plasma::Applet *parentApplet = qobject_cast<Plasma::Applet *>(parent()); (gdb) 324 if(Plasma::Corona* corona = qobject_cast<Corona *>(parent())) { (gdb) 328 Plasma::Applet *parentApplet = qobject_cast<Plasma::Applet *>(parent()); (gdb) 329 if (parentApplet && parentApplet->containment()) { (gdb) 328 Plasma::Applet *parentApplet = qobject_cast<Plasma::Applet *>(parent()); (gdb) 329 if (parentApplet && parentApplet->containment()) { (gdb) 330 return parentApplet->containment()->corona(); (gdb) 324 if(Plasma::Corona* corona = qobject_cast<Corona *>(parent())) { (gdb) 335 } (gdb) step Plasma::Applet::containment (this=0x814f48d0) at ./src/plasma/applet.cpp:640 640 { (gdb) next 641 Containment *c = qobject_cast<Containment *>(const_cast<Applet *>(this)); (gdb) 642 if (c && c->isContainment()) { (gdb) 648 QObject *parent = this->parent(); (gdb) 650 while (parent) { (gdb) 651 Containment *possibleC = qobject_cast<Containment *>(parent); (gdb) 653 if (possibleC && possibleC->isContainment()) { (gdb) 651 Containment *possibleC = qobject_cast<Containment *>(parent); (gdb) 653 if (possibleC && possibleC->isContainment()) { (gdb) 661 } (gdb) step Plasma::Containment::screen (this=0x80cd91f8) at ./src/plasma/containment.cpp:486 486 { (gdb) next 488 if (Corona* c = corona()) { (gdb) 489 return c->screenForContainment(this); (gdb) 493 } (gdb) step ShellCorona::availableScreenRect (this=0x80be4bc0, id=0) at ./shell/shellcorona.cpp:988 988 { (gdb) next 989 if (!m_desktopViewforId.contains(id)) { (gdb) 988 { (gdb) 989 if (!m_desktopViewforId.contains(id)) { (gdb) 991 qWarning() << "requesting unexisting screen" << id; (gdb) 992 QScreen *s = qGuiApp->primaryScreen(); (gdb) print id $3 = <optimized out> (gdb) next 993 return s ? s->availableGeometry() : QRect(); (gdb) print s $4 = (QScreen *) 0x80bbd148 (gdb) next 1019 } (gdb) step NotificationsApplet::onScreenChanges (this=0x814f48d0) at ./applets/notifications/lib/notificationsapplet.cpp:66 66 Q_EMIT availableScreenRectChanged(m_availableScreenRect); (gdb) step 65 m_availableScreenRect = containment()->corona()->availableScreenRect(containment()->screen()); (gdb) 66 Q_EMIT availableScreenRectChanged(m_availableScreenRect); (gdb) cont Continuing. Thread 1 "plasmashell.ori" hit Breakpoint 2, NotificationsApplet::onScreenChanges (this=0x814f48d0) at ./applets/notifications/lib/notificationsapplet.cpp:64 64 { (gdb) next 65 m_availableScreenRect = containment()->corona()->availableScreenRect(containment()->screen()); (gdb) step Plasma::Applet::containment (this=0x814f48d0) at ./src/plasma/applet.cpp:640 640 { (gdb) next 641 Containment *c = qobject_cast<Containment *>(const_cast<Applet *>(this)); (gdb) 642 if (c && c->isContainment()) { (gdb) 648 QObject *parent = this->parent(); (gdb) 650 while (parent) { (gdb) 651 Containment *possibleC = qobject_cast<Containment *>(parent); (gdb) 653 if (possibleC && possibleC->isContainment()) { (gdb) 651 Containment *possibleC = qobject_cast<Containment *>(parent); (gdb) 653 if (possibleC && possibleC->isContainment()) { (gdb) 661 } (gdb) step Plasma::Containment::corona (this=0x80cd91f8) at ./src/plasma/containment.cpp:323 323 { (gdb) next 328 Plasma::Applet *parentApplet = qobject_cast<Plasma::Applet *>(parent()); (gdb) 323 { (gdb) 328 Plasma::Applet *parentApplet = qobject_cast<Plasma::Applet *>(parent()); (gdb) 324 if(Plasma::Corona* corona = qobject_cast<Corona *>(parent())) { (gdb) 328 Plasma::Applet *parentApplet = qobject_cast<Plasma::Applet *>(parent()); (gdb) 329 if (parentApplet && parentApplet->containment()) { (gdb) 328 Plasma::Applet *parentApplet = qobject_cast<Plasma::Applet *>(parent()); (gdb) 329 if (parentApplet && parentApplet->containment()) { (gdb) 330 return parentApplet->containment()->corona(); (gdb) 324 if(Plasma::Corona* corona = qobject_cast<Corona *>(parent())) { (gdb) 335 } (gdb) step Plasma::Applet::containment (this=0x814f48d0) at ./src/plasma/applet.cpp:640 640 { (gdb) next 641 Containment *c = qobject_cast<Containment *>(const_cast<Applet *>(this)); (gdb) 642 if (c && c->isContainment()) { (gdb) 648 QObject *parent = this->parent(); (gdb) 650 while (parent) { (gdb) 651 Containment *possibleC = qobject_cast<Containment *>(parent); (gdb) 653 if (possibleC && possibleC->isContainment()) { (gdb) 651 Containment *possibleC = qobject_cast<Containment *>(parent); (gdb) 653 if (possibleC && possibleC->isContainment()) { (gdb) 661 } (gdb) step Plasma::Containment::screen (this=0x80cd91f8) at ./src/plasma/containment.cpp:486 486 { (gdb) next 488 if (Corona* c = corona()) { (gdb) 489 return c->screenForContainment(this); (gdb) Thread 1 "plasmashell.ori" received signal SIGSEGV, Segmentation fault. PlasmaQuick::ContainmentView::containment (this=0x80f05c88) at ./src/plasmaquick/containmentview.cpp:263 263 return d->containment; (gdb) bt #0 PlasmaQuick::ContainmentView::containment (this=0x80f05c88) at ./src/plasmaquick/containmentview.cpp:263 #1 0x8009721a in ShellCorona::screenForContainment (this=0x80be4bc0, containment=<optimized out>) at ./shell/shellcorona.cpp:1826 #2 0x80097166 in ShellCorona::screenForContainment (this=0x80be4bc0, containment=<optimized out>) at ./shell/shellcorona.cpp:1818 #3 0xb7014fab in Plasma::Containment::screen (this=0x80cd91f8) at ./src/plasma/containment.cpp:489 #4 0xa4fa4bc7 in NotificationsApplet::onScreenChanges (this=0x814f48d0) at ./applets/notifications/lib/notificationsapplet.cpp:65 #5 0xb51f7aae in QtPrivate::QSlotObjectBase::call (a=0xbfa1fb98, r=0x814f48d0, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:101 #6 QMetaObject::activate (sender=<optimized out>, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3723 #7 0xb51f7f8d in QMetaObject::activate (sender=0xb65c6900 <(anonymous namespace)::Q_QGS_g_kwmInstanceContainer::innerFunction()::holder>, m=0xb65c5dc0 <KWindowSystem::staticMetaObject>, local_signal_index=6, argv=0x0) at kernel/qobject.cpp:3602 #8 0xb65acee2 in KWindowSystem::workAreaChanged (this=0xb65c6900 <(anonymous namespace)::Q_QGS_g_kwmInstanceContainer::innerFunction()::holder>) at ./obj-i686-linux-gnu/src/KF5WindowSystem_automoc.dir/moc_kwindowsystem_WAINN7OXDV4STE.cpp:337 #9 0xb01d7e8c in NETEventFilter::nativeEventFilter (this=0x80e29dc0, ev=0xb0c22fe0) at ./src/platforms/xcb/kwindowsystem.cpp:258 #10 0xb51c6670 in QAbstractEventDispatcher::filterNativeEvent (this=<optimized out>, eventType=..., message=<optimized out>, result=<optimized out>) at kernel/qabstracteventdispatcher.cpp:466 #11 0xb1682122 in QXcbConnection::handleXcbEvent (this=0x80bae3f0, event=0xb0c22fe0) at qxcbconnection.cpp:1106 #12 0xb1682ef7 in QXcbConnection::processXcbEvents (this=0x80bae3f0) at qxcbconnection.cpp:1741 #13 0xb16b9de1 in QXcbConnection::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at .moc/moc_qxcbconnection.cpp:188 #14 0xb51f48e0 in QMetaCallEvent::placeMetaCall (this=0xb0c067d0, object=0x80bae3f0) at kernel/qobject.cpp:502 #15 0xb51f8563 in QObject::event (this=0x80bae3f0, e=0xb0c067d0) at kernel/qobject.cpp:1263 #16 0xb1685a49 in QXcbConnection::event (this=0x80bae3f0, e=0xb0c067d0) at qxcbconnection.cpp:2357 #17 0xb5b4117a in QApplicationPrivate::notify_helper (this=0x80ba7f50, receiver=0x80bae3f0, e=0xb0c067d0) at kernel/qapplication.cpp:3799 #18 0xb5b4903c in QApplication::notify (this=0xbfa203b8, receiver=0x80bae3f0, e=0xb0c067d0) at kernel/qapplication.cpp:3556 #19 0xb51c9a7d in QCoreApplication::notifyInternal2 (receiver=0x80bae3f0, event=0xb0c067d0) at kernel/qcoreapplication.cpp:988 #20 0xb51cc477 in QCoreApplication::sendEvent (event=0xb0c067d0, receiver=<optimized out>) at kernel/qcoreapplication.h:231 #21 QCoreApplicationPrivate::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>, data=0x80ba2e90) at kernel/qcoreapplication.cpp:1649 #22 0xb51cc8b7 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1503 #23 0xb5222733 in postEventSourceDispatch (s=0x80bd2a88) at kernel/qeventdispatcher_glib.cpp:276 #24 0xb3d354e9 in g_main_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3203 #25 g_main_context_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3856 #26 0xb3d35789 in g_main_context_iterate (context=context@entry=0xb0c02a00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ././glib/gmain.c:3929 #27 0xb3d35854 in g_main_context_iteration (context=0xb0c02a00, may_block=1) at ././glib/gmain.c:3990 #28 0xb5222b23 in QEventDispatcherGlib::processEvents (this=0x80bd5470, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #29 0xb16bad81 in QPAEventDispatcherGlib::processEvents (this=0x80bd5470, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:121 #30 0xb51c765d in QEventLoop::exec (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:212 #31 0xb51d07cf in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1261 #32 0xb5501aa1 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1633 #33 0xb5b410d4 in QApplication::exec () at kernel/qapplication.cpp:2975 #34 0x8007768c in main (argc=<optimized out>, argv=<optimized out>) at ./shell/main.cpp:166 (gdb) up #1 0x8009721a in ShellCorona::screenForContainment (this=0x80be4bc0, containment=<optimized out>) at ./shell/shellcorona.cpp:1826 1826 if (m_desktopViewforId.value(id)->containment() == containment && containment->activity() == m_activityController->currentActivity()) { (gdb) #2 0x80097166 in ShellCorona::screenForContainment (this=0x80be4bc0, containment=<optimized out>) at ./shell/shellcorona.cpp:1818 1818 return screenForContainment(cont); (gdb) #3 0xb7014fab in Plasma::Containment::screen (this=0x80cd91f8) at ./src/plasma/containment.cpp:489 489 return c->screenForContainment(this); (gdb) #4 0xa4fa4bc7 in NotificationsApplet::onScreenChanges (this=0x814f48d0) at ./applets/notifications/lib/notificationsapplet.cpp:65 65 m_availableScreenRect = containment()->corona()->availableScreenRect(containment()->screen()); ---------- Please watch the pointer 0x80674c30 benutzer@debian:~$ gdb -q --pid 6474 Attaching to process 6474 [New LWP 6485] [New LWP 6495] [New LWP 6505] [New LWP 6523] [New LWP 6524] [New LWP 6525] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". 0xb776bcf9 in __kernel_vsyscall () (gdb) directory /home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0 Source directories searched: /home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd (gdb) directory /home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4 Source directories searched: /home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd (gdb) directory /home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib Source directories searched: /home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib:/home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd (gdb) directory /home/benutzer/debian/qtbase-opensource-src/orig/qtdeclarative-opensource-src/orig/qtdeclarative-opensource-src-5.7.1/src/qml Source directories searched: /home/benutzer/debian/qtbase-opensource-src/orig/qtdeclarative-opensource-src/orig/qtdeclarative-opensource-src-5.7.1/src/qml:/home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib:/home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd (gdb) set height 0 (gdb) set width 0 (gdb) source /usr/share/doc/kdesdk-scripts/examples/kde-devel-gdb (gdb) b DesktopView::~DesktopView Breakpoint 1 at 0x801145e0: DesktopView::~DesktopView. (2 locations) (gdb) b ShellCorona::removeDesktop Breakpoint 2 at 0x80128870: file ./shell/shellcorona.cpp, line 1027. (gdb) cont Continuing. Thread 1 "plasmashell.ori" hit Breakpoint 2, ShellCorona::removeDesktop (this=0x80378d28, desktopView=0x80674c30) at ./shell/shellcorona.cpp:1027 1027 { (gdb) cont Continuing. Thread 1 "plasmashell.ori" hit Breakpoint 1, DesktopView::~DesktopView (this=0x80674c30, __in_chrg=<optimized out>) at ./shell/desktopview.cpp:72 72 DesktopView::~DesktopView() (gdb) cont Continuing. Thread 1 "plasmashell.ori" hit Breakpoint 1, DesktopView::~DesktopView (this=0x80674c30, __in_chrg=<optimized out>) at ./shell/desktopview.cpp:72 72 DesktopView::~DesktopView() (gdb) bt #0 DesktopView::~DesktopView (this=0x80674c30, __in_chrg=<optimized out>) at ./shell/desktopview.cpp:72 #1 0x801146ba in DesktopView::~DesktopView (this=0x80674c30, __in_chrg=<optimized out>) at ./shell/desktopview.cpp:74 #2 0x801289d1 in ShellCorona::removeDesktop (this=0x80378d28, desktopView=0x80674c30) at ./shell/shellcorona.cpp:1047 #3 0x8012944f in ShellCorona::screenRemoved (this=0x80378d28, screen=<optimized out>) at ./shell/shellcorona.cpp:1077 #4 0xb5216aae in QtPrivate::QSlotObjectBase::call (a=0xbfa0d2e4, r=0x80378d28, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:101 #5 QMetaObject::activate (sender=<optimized out>, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3723 #6 0xb5216f8d in QMetaObject::activate (sender=0xbfa0dbb8, m=0xb59c7390 <QGuiApplication::staticMetaObject>, local_signal_index=2, argv=0xbfa0d2e4) at kernel/qobject.cpp:3602 #7 0xb551eec9 in QGuiApplication::screenRemoved (this=0xbfa0dbb8, _t1=<optimized out>) at .moc/moc_qguiapplication.cpp:366 #8 0xb5557983 in QScreen::~QScreen (this=0x8031e808, __in_chrg=<optimized out>) at kernel/qscreen.cpp:114 #9 0xb5557cfa in QScreen::~QScreen (this=0x8031e808, __in_chrg=<optimized out>) at kernel/qscreen.cpp:139 #10 0xb551059b in QPlatformIntegration::destroyScreen (this=0x8030cae0, screen=0x80315020) at kernel/qplatformintegration.cpp:496 #11 0xb169bd52 in QXcbConnection::destroyScreen (this=0x803113f0, screen=<optimized out>) at qxcbconnection.cpp:386 #12 0xb169c6d9 in QXcbConnection::updateScreens (this=0x803113f0, event=0xb0c0abe0) at qxcbconnection.cpp:281 #13 0xb169da3a in QXcbConnection::handleXcbEvent (this=0x803113f0, event=0xb0c0abe0) at qxcbconnection.cpp:1250 #14 0xb169def7 in QXcbConnection::processXcbEvents (this=0x803113f0) at qxcbconnection.cpp:1741 #15 0xb16d4de1 in QXcbConnection::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at .moc/moc_qxcbconnection.cpp:188 #16 0xb52138e0 in QMetaCallEvent::placeMetaCall (this=0xb0c02ff0, object=0x803113f0) at kernel/qobject.cpp:502 #17 0xb5217563 in QObject::event (this=0x803113f0, e=0xb0c02ff0) at kernel/qobject.cpp:1263 #18 0xb16a0a49 in QXcbConnection::event (this=0x803113f0, e=0xb0c02ff0) at qxcbconnection.cpp:2357 #19 0xb5b6017a in QApplicationPrivate::notify_helper (this=0x8030af50, receiver=0x803113f0, e=0xb0c02ff0) at kernel/qapplication.cpp:3799 #20 0xb5b6803c in QApplication::notify (this=0xbfa0dbb8, receiver=0x803113f0, e=0xb0c02ff0) at kernel/qapplication.cpp:3556 #21 0xb51e8a7d in QCoreApplication::notifyInternal2 (receiver=0x803113f0, event=0xb0c02ff0) at kernel/qcoreapplication.cpp:988 #22 0xb51eb477 in QCoreApplication::sendEvent (event=0xb0c02ff0, receiver=<optimized out>) at kernel/qcoreapplication.h:231 #23 QCoreApplicationPrivate::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>, data=0x80305e90) at kernel/qcoreapplication.cpp:1649 #24 0xb51eb8b7 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1503 #25 0xb5241733 in postEventSourceDispatch (s=0x80339ef8) at kernel/qeventdispatcher_glib.cpp:276 #26 0xb3d544e9 in g_main_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3203 #27 g_main_context_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3856 #28 0xb3d54789 in g_main_context_iterate (context=context@entry=0xb0c02a00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ././glib/gmain.c:3929 #29 0xb3d54854 in g_main_context_iteration (context=0xb0c02a00, may_block=1) at ././glib/gmain.c:3990 #30 0xb5241b23 in QEventDispatcherGlib::processEvents (this=0x80337f58, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #31 0xb16d5d81 in QPAEventDispatcherGlib::processEvents (this=0x80337f58, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:121 #32 0xb51e665d in QEventLoop::exec (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:212 #33 0xb51ef7cf in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1261 #34 0xb5520aa1 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1633 #35 0xb5b600d4 in QApplication::exec () at kernel/qapplication.cpp:2975 #36 0x8010768c in main (argc=<optimized out>, argv=<optimized out>) at ./shell/main.cpp:166 (gdb) up #1 0x801146ba in DesktopView::~DesktopView (this=0x80674c30, __in_chrg=<optimized out>) at ./shell/desktopview.cpp:74 74 } (gdb) #2 0x801289d1 in ShellCorona::removeDesktop (this=0x80378d28, desktopView=0x80674c30) at ./shell/shellcorona.cpp:1047 1047 delete desktopView; (gdb) b 1048 Breakpoint 3 at 0x801288ea: file ./shell/shellcorona.cpp, line 1048. (gdb) cont Continuing. Thread 1 "plasmashell.ori" hit Breakpoint 3, ShellCorona::removeDesktop (this=0x80378d28, desktopView=0x80674c30) at ./shell/shellcorona.cpp:1049 1049 } (gdb) print idx $1 = 0 (gdb) print m_desktopViewforId.d $2 = (QMapData<int, DesktopView*> *) 0x80517378 (gdb) print *m_desktopViewforId.d $3 = {<QMapDataBase> = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {_M_i = 1}, <No data fields>}}}, size = 1, header = {p = 0, left = 0x80660800, right = 0x0}, mostLeftNode = 0x80660800}, <No data fields>} (gdb) b PlasmaQuick::ContainmentView::containment Breakpoint 4 at 0x80105ab0 (3 locations) (gdb) disa 4.1 (gdb) disa 4.2 (gdb) cont Continuing. Thread 1 "plasmashell.ori" hit Breakpoint 4, PlasmaQuick::ContainmentView::containment (this=0x80674c30) at ./src/plasmaquick/containmentview.cpp:263 263 return d->containment; (gdb) bt #0 PlasmaQuick::ContainmentView::containment (this=0x80674c30) at ./src/plasmaquick/containmentview.cpp:263 #1 0x8012721a in ShellCorona::screenForContainment (this=0x80378d28, containment=<optimized out>) at ./shell/shellcorona.cpp:1826 #2 0x80127166 in ShellCorona::screenForContainment (this=0x80378d28, containment=<optimized out>) at ./shell/shellcorona.cpp:1818 #3 0xb7033fab in Plasma::Containment::screen (this=0x80448088) at ./src/plasma/containment.cpp:489 #4 0xa5cdbbc7 in NotificationsApplet::onScreenChanges (this=0x80c67be0) at ./applets/notifications/lib/notificationsapplet.cpp:65 #5 0xb5216aae in QtPrivate::QSlotObjectBase::call (a=0xbfa0d398, r=0x80c67be0, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:101 #6 QMetaObject::activate (sender=<optimized out>, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3723 #7 0xb5216f8d in QMetaObject::activate (sender=0xb65e5900 <(anonymous namespace)::Q_QGS_g_kwmInstanceContainer::innerFunction()::holder>, m=0xb65e4dc0 <KWindowSystem::staticMetaObject>, local_signal_index=6, argv=0x0) at kernel/qobject.cpp:3602 #8 0xb65cbee2 in KWindowSystem::workAreaChanged (this=0xb65e5900 <(anonymous namespace)::Q_QGS_g_kwmInstanceContainer::innerFunction()::holder>) at ./obj-i686-linux-gnu/src/KF5WindowSystem_automoc.dir/moc_kwindowsystem_WAINN7OXDV4STE.cpp:337 #9 0xaf6e3e8c in NETEventFilter::nativeEventFilter (this=0x80599818, ev=0x80c84db0) at ./src/platforms/xcb/kwindowsystem.cpp:258 #10 0xb51e5670 in QAbstractEventDispatcher::filterNativeEvent (this=<optimized out>, eventType=..., message=<optimized out>, result=<optimized out>) at kernel/qabstracteventdispatcher.cpp:466 #11 0xb169d122 in QXcbConnection::handleXcbEvent (this=0x803113f0, event=0x80c84db0) at qxcbconnection.cpp:1106 #12 0xb169def7 in QXcbConnection::processXcbEvents (this=0x803113f0) at qxcbconnection.cpp:1741 #13 0xb16d4de1 in QXcbConnection::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at .moc/moc_qxcbconnection.cpp:188 #14 0xb52138e0 in QMetaCallEvent::placeMetaCall (this=0xb0c02ff0, object=0x803113f0) at kernel/qobject.cpp:502 #15 0xb5217563 in QObject::event (this=0x803113f0, e=0xb0c02ff0) at kernel/qobject.cpp:1263 #16 0xb16a0a49 in QXcbConnection::event (this=0x803113f0, e=0xb0c02ff0) at qxcbconnection.cpp:2357 #17 0xb5b6017a in QApplicationPrivate::notify_helper (this=0x8030af50, receiver=0x803113f0, e=0xb0c02ff0) at kernel/qapplication.cpp:3799 #18 0xb5b6803c in QApplication::notify (this=0xbfa0dbb8, receiver=0x803113f0, e=0xb0c02ff0) at kernel/qapplication.cpp:3556 #19 0xb51e8a7d in QCoreApplication::notifyInternal2 (receiver=0x803113f0, event=0xb0c02ff0) at kernel/qcoreapplication.cpp:988 #20 0xb51eb477 in QCoreApplication::sendEvent (event=0xb0c02ff0, receiver=<optimized out>) at kernel/qcoreapplication.h:231 #21 QCoreApplicationPrivate::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>, data=0x80305e90) at kernel/qcoreapplication.cpp:1649 #22 0xb51eb8b7 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1503 #23 0xb5241733 in postEventSourceDispatch (s=0x80339ef8) at kernel/qeventdispatcher_glib.cpp:276 #24 0xb3d544e9 in g_main_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3203 #25 g_main_context_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3856 #26 0xb3d54789 in g_main_context_iterate (context=context@entry=0xb0c02a00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ././glib/gmain.c:3929 #27 0xb3d54854 in g_main_context_iteration (context=0xb0c02a00, may_block=1) at ././glib/gmain.c:3990 #28 0xb5241b23 in QEventDispatcherGlib::processEvents (this=0x80337f58, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #29 0xb16d5d81 in QPAEventDispatcherGlib::processEvents (this=0x80337f58, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:121 #30 0xb51e665d in QEventLoop::exec (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:212 #31 0xb51ef7cf in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1261 #32 0xb5520aa1 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1633 #33 0xb5b600d4 in QApplication::exec () at kernel/qapplication.cpp:2975 #34 0x8010768c in main (argc=<optimized out>, argv=<optimized out>) at ./shell/main.cpp:166 (gdb) cont Continuing. Thread 1 "plasmashell.ori" hit Breakpoint 4, PlasmaQuick::ContainmentView::containment (this=0x80674c30) at ./src/plasmaquick/containmentview.cpp:263 263 return d->containment; (gdb) Continuing. Thread 1 "plasmashell.ori" hit Breakpoint 4, PlasmaQuick::ContainmentView::containment (this=0x80674c30) at ./src/plasmaquick/containmentview.cpp:263 263 return d->containment; (gdb) Continuing. Thread 1 "plasmashell.ori" received signal SIGSEGV, Segmentation fault. QWeakPointer<QObject>::data (this=0x80672928) at /usr/include/i386-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:604 warning: Source file is more recent than executable. 604 inline T *data() const { return d == Q_NULLPTR || d->strongref.load() == 0 ? Q_NULLPTR : value; } (gdb) bt #0 QWeakPointer<QObject>::data (this=0x80672928) at /usr/include/i386-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:604 #1 QPointer<Plasma::Containment>::data (this=0x80672928) at /usr/include/i386-linux-gnu/qt5/QtCore/qpointer.h:86 #2 QPointer<Plasma::Containment>::operator Plasma::Containment* (this=0x80672928) at /usr/include/i386-linux-gnu/qt5/QtCore/qpointer.h:92 #3 PlasmaQuick::ContainmentView::containment (this=0x80674c30) at ./src/plasmaquick/containmentview.cpp:263 #4 0x8012721a in ShellCorona::screenForContainment (this=0x80378d28, containment=<optimized out>) at ./shell/shellcorona.cpp:1826 #5 0xb7033fab in Plasma::Containment::screen (this=0x803df5a8) at ./src/plasma/containment.cpp:489 #6 0xae5ae400 in AppletInterface::screen (this=0x803e71b8) at ./src/scriptengines/qml/plasmoid/appletinterface.cpp:557 #7 0xae5b5948 in ContainmentInterface::adjustToAvailableScreenRegion (this=0x803e71b8, x=0, y=0, w=30, h=30) at ./src/scriptengines/qml/plasmoid/containmentinterface.cpp:305 #8 0xae5bede2 in ContainmentInterface::qt_static_metacall (_o=0x803e71b8, _c=QMetaObject::InvokeMetaMethod, _id=21, _a=0xbfa0bf64) at ./obj-i686-linux-gnu/src/scriptengines/qml/moc_containmentinterface.cpp:218 #9 0xae5bf3d3 in ContainmentInterface::qt_metacall (this=0x803e71b8, _c=QMetaObject::InvokeMetaMethod, _id=21, _a=0xbfa0bf64) at ./obj-i686-linux-gnu/src/scriptengines/qml/moc_containmentinterface.cpp:393 #10 0xb684a667 in QQmlObjectOrGadget::metacall (this=0xbfa0c1a4, type=QMetaObject::InvokeMetaMethod, index=<optimized out>, argv=0xbfa0bf64) at qml/qqmlpropertycache.cpp:1547 #11 0xb67d28d0 in CallMethod (object=..., index=<optimized out>, returnType=returnType@entry=26, argCount=<optimized out>, argTypes=<optimized out>, engine=<optimized out>, callArgs=<optimized out>) at jsruntime/qv4qobjectwrapper.cpp:1137 #12 0xb67d3b43 in CallPrecise (object=..., data=..., engine=engine@entry=0x803e84c0, callArgs=0xad5a0498) at jsruntime/qv4qobjectwrapper.cpp:1388 #13 0xb67d451b in QV4::QObjectMethod::callInternal (this=0xad5a04e8, callData=0xad5a0498) at jsruntime/qv4qobjectwrapper.cpp:1871 #14 0xb67d4bbc in QV4::QObjectMethod::call (m=0xad5a04e8, callData=0xad5a0498) at jsruntime/qv4qobjectwrapper.cpp:1810 #15 0xb67eb372 in QV4::Object::call (d=0xad5a0498, this=0xad5a04e8) at jsruntime/qv4object_p.h:332 #16 QV4::Runtime::callProperty (engine=0x803e84c0, nameIndex=112, callData=0xad5a0498) at jsruntime/qv4runtime.cpp:1030 #17 0xb67d83da in QV4::Moth::VME::run (this=0xbfa0c3bf, engine=0x803e84c0, code=<optimized out>, storeJumpTable=0x0) at jsruntime/qv4vme_moth.cpp:585 #18 0xb67da55e in QV4::Moth::VME::exec (engine=0x803e84c0, code=0xb01e5470 "\350\202}\266\032") at jsruntime/qv4vme_moth.cpp:974 #19 0xb678082f in QV4::SimpleScriptFunction::call (that=0xad5a03e8, callData=0xad5a0398) at jsruntime/qv4functionobject.cpp:582 #20 0xb67eae1c in QV4::Object::call (d=0xad5a0398, this=<optimized out>) at jsruntime/qv4object_p.h:332 #21 QV4::Runtime::callActivationProperty (engine=0x803e84c0, nameIndex=86, callData=0xad5a0398) at jsruntime/qv4runtime.cpp:980 #22 0xb67d8550 in QV4::Moth::VME::run (this=0xbfa0c5bf, engine=0x803e84c0, code=0xb01e74fc "\020\205}\266V", storeJumpTable=0x0) at jsruntime/qv4vme_moth.cpp:632 #23 0xb67da55e in QV4::Moth::VME::exec (engine=0x803e84c0, code=0xb01e7498 "\350\202}\266\v") at jsruntime/qv4vme_moth.cpp:974 #24 0xb678082f in QV4::SimpleScriptFunction::call (that=0xae6086f0, callData=0xad5a0318) at jsruntime/qv4functionobject.cpp:582 #25 0xb68773bf in QV4::Object::call (d=0xad5a0318, this=<optimized out>) at ../../include/QtQml/5.7.1/QtQml/private/../../../../../src/qml/jsruntime/qv4object_p.h:332 #26 QQmlJavaScriptExpression::evaluate (this=0x80656350, callData=0xad5a0318, isUndefined=0x0) at qml/qqmljavascriptexpression.cpp:196 #27 0xb6819c2a in QQmlBoundSignalExpression::evaluate (this=<optimized out>, a=<optimized out>) at qml/qqmlboundsignal.cpp:247 #28 0xb681ae75 in QQmlBoundSignal_callback (e=0x80656310, a=0x0) at qml/qqmlboundsignal.cpp:379 #29 0xb68539d0 in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=0x0) at qml/qqmlnotifier.cpp:100 #30 0xb67fac1c in QQmlData::signalEmitted (object=0x80654660, index=3, a=0x0) at qml/qqmlengine.cpp:779 #31 0xb5216df3 in QMetaObject::activate (sender=0x80654660, signalOffset=3, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3618 #32 0xb5216f8d in QMetaObject::activate (sender=0x80654660, m=0xb6a386bc <QQmlTimer::staticMetaObject>, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3602 #33 0xb68e5e92 in QQmlTimer::triggered (this=0x80654660) at .moc/moc_qqmltimer_p.cpp:260 #34 0xb68d421a in QQmlTimer::event (this=0x80654660, e=0x813d8da8) at types/qqmltimer.cpp:340 #35 0xb5b6017a in QApplicationPrivate::notify_helper (this=0x8030af50, receiver=0x80654660, e=0x813d8da8) at kernel/qapplication.cpp:3799 #36 0xb5b6803c in QApplication::notify (this=0xbfa0dbb8, receiver=0x80654660, e=0x813d8da8) at kernel/qapplication.cpp:3556 #37 0xb51e8a7d in QCoreApplication::notifyInternal2 (receiver=0x80654660, event=0x813d8da8) at kernel/qcoreapplication.cpp:988 #38 0xb51eb477 in QCoreApplication::sendEvent (event=0x813d8da8, receiver=<optimized out>) at kernel/qcoreapplication.h:231 #39 QCoreApplicationPrivate::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>, data=0x80305e90) at kernel/qcoreapplication.cpp:1649 #40 0xb51eb8b7 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1503 #41 0xb5241733 in postEventSourceDispatch (s=0x80339ef8) at kernel/qeventdispatcher_glib.cpp:276 #42 0xb3d544e9 in g_main_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3203 #43 g_main_context_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3856 #44 0xb3d54789 in g_main_context_iterate (context=context@entry=0xb0c02a00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ././glib/gmain.c:3929 #45 0xb3d54854 in g_main_context_iteration (context=0xb0c02a00, may_block=1) at ././glib/gmain.c:3990 #46 0xb5241b23 in QEventDispatcherGlib::processEvents (this=0x80337f58, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #47 0xb16d5d81 in QPAEventDispatcherGlib::processEvents (this=0x80337f58, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:121 #48 0xb51e665d in QEventLoop::exec (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:212 #49 0xb51ef7cf in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1261 #50 0xb5520aa1 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1633 #51 0xb5b600d4 in QApplication::exec () at kernel/qapplication.cpp:2975 #52 0x8010768c in main (argc=<optimized out>, argv=<optimized out>) at ./shell/main.cpp:166 ---------- Even with upower installed and ~/.local/share/kscreen/ directory removed the crash happens: Please watch the pointer 0x816d85a0 benutzer@debian:~$ gdb -q --pid 6035 Attaching to process 6035 [New LWP 6045] [New LWP 6054] [New LWP 6063] [New LWP 6082] [New LWP 6083] [New LWP 6084] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". 0xb7724cf9 in __kernel_vsyscall () (gdb) directory /home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0 Source directories searched: /home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd (gdb) directory /home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4 Source directories searched: /home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd (gdb) directory /home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib Source directories searched: /home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib:/home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd (gdb) directory /home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/gui Source directories searched: /home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/gui:/home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib:/home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd (gdb) directory /home/benutzer/debian/qtbase-opensource-src/orig/qtdeclarative-opensource-src/orig/qtdeclarative-opensource-src-5.7.1/src/qml Source directories searched: /home/benutzer/debian/qtbase-opensource-src/orig/qtdeclarative-opensource-src/orig/qtdeclarative-opensource-src-5.7.1/src/qml:/home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/gui:/home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib:/home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd (gdb) set height 0 (gdb) set width 0 (gdb) source /usr/share/doc/kdesdk-scripts/examples/kde-devel-gdb (gdb) b ShellCorona::removeDesktop Breakpoint 1 at 0x800e0870: file ./shell/shellcorona.cpp, line 1027. (gdb) cont Continuing. Thread 1 "plasmashell.ori" hit Breakpoint 1, ShellCorona::removeDesktop (this=0x813d1d90, desktopView=0x816d85a0) at ./shell/shellcorona.cpp:1027 1027 { (gdb) next 1028 const int idx = m_screenPool->id(desktopView->screenToFollow()->name()); (gdb) step DesktopView::screenToFollow (this=0x816d85a0) at ./shell/desktopview.cpp:100 100 { (gdb) next 101 return m_screenToFollow; (gdb) 102 } (gdb) step QScreen::name (this=0x8138b290) at kernel/qscreen.cpp:158 158 { (gdb) next 160 return d->platformScreen->name(); (gdb) 158 { (gdb) 160 return d->platformScreen->name(); (gdb) 161 } (gdb) step ScreenPool::id (this=0x813ad2d8, connector=...) at ./shell/screenpool.cpp:127 127 { (gdb) printq5string connector DVI-I-1 (gdb) next 128 if (!m_idForConnector.contains(connector)) { (gdb) 132 return m_idForConnector.value(connector); (gdb) 133 } (gdb) 132 return m_idForConnector.value(connector); (gdb) 133 } (gdb) ShellCorona::removeDesktop (this=0x813d1d90, desktopView=0x816d85a0) at ./shell/shellcorona.cpp:1030 1030 if (!m_desktopViewforId.contains(idx)) { (gdb) print idx $1 = 0 (gdb) next 1034 QMutableHashIterator<const Plasma::Containment *, PanelView *> it(m_panelViews); (gdb) 1040 m_waitingPanels << panelView->containment(); (gdb) 1041 it.remove(); (gdb) 1035 while (it.hasNext()) { (gdb) 1036 it.next(); (gdb) 1037 PanelView *panelView = it.value(); (gdb) 1036 it.next(); (gdb) 1039 if (panelView->containment()->screen() == idx) { (gdb) 1040 m_waitingPanels << panelView->containment(); (gdb) 1041 it.remove(); (gdb) 1042 delete panelView; (gdb) 1041 it.remove(); (gdb) 1035 while (it.hasNext()) { (gdb) 1047 delete desktopView; (gdb) 1048 m_desktopViewforId.remove(idx); (gdb) print desktopView $2 = (DesktopView *) 0x816d85a0 (gdb) cont Continuing. Thread 1 "plasmashell.ori" received signal SIGSEGV, Segmentation fault. QWeakPointer<QObject>::data (this=0x816d93f0) at /usr/include/i386-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:604 warning: Source file is more recent than executable. 604 inline T *data() const { return d == Q_NULLPTR || d->strongref.load() == 0 ? Q_NULLPTR : value; } (gdb) bt #0 QWeakPointer<QObject>::data (this=0x816d93f0) at /usr/include/i386-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:604 #1 QPointer<Plasma::Containment>::data (this=0x816d93f0) at /usr/include/i386-linux-gnu/qt5/QtCore/qpointer.h:86 #2 QPointer<Plasma::Containment>::operator Plasma::Containment* (this=0x816d93f0) at /usr/include/i386-linux-gnu/qt5/QtCore/qpointer.h:92 #3 PlasmaQuick::ContainmentView::containment (this=0x816d85a0) at ./src/plasmaquick/containmentview.cpp:263 #4 0x800df21a in ShellCorona::screenForContainment (this=0x813d1d90, containment=<optimized out>) at ./shell/shellcorona.cpp:1826 #5 0x800df166 in ShellCorona::screenForContainment (this=0x813d1d90, containment=<optimized out>) at ./shell/shellcorona.cpp:1818 #6 0xb6fecfab in Plasma::Containment::screen (this=0x814d9cd0) at ./src/plasma/containment.cpp:489 #7 0xa5ccbbc7 in NotificationsApplet::onScreenChanges (this=0x81cd2ed0) at ./applets/notifications/lib/notificationsapplet.cpp:65 #8 0xb51cfaae in QtPrivate::QSlotObjectBase::call (a=0xbfd7a5a8, r=0x81cd2ed0, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:101 #9 QMetaObject::activate (sender=<optimized out>, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3723 #10 0xb51cff8d in QMetaObject::activate (sender=0xb659e900 <(anonymous namespace)::Q_QGS_g_kwmInstanceContainer::innerFunction()::holder>, m=0xb659ddc0 <KWindowSystem::staticMetaObject>, local_signal_index=6, argv=0x0) at kernel/qobject.cpp:3602 #11 0xb6584ee2 in KWindowSystem::workAreaChanged (this=0xb659e900 <(anonymous namespace)::Q_QGS_g_kwmInstanceContainer::innerFunction()::holder>) at ./obj-i686-linux-gnu/src/KF5WindowSystem_automoc.dir/moc_kwindowsystem_WAINN7OXDV4STE.cpp:337 #12 0xb01afe8c in NETEventFilter::nativeEventFilter (this=0x81609180, ev=0xb0c0c398) at ./src/platforms/xcb/kwindowsystem.cpp:258 #13 0xb519e670 in QAbstractEventDispatcher::filterNativeEvent (this=<optimized out>, eventType=..., message=<optimized out>, result=<optimized out>) at kernel/qabstracteventdispatcher.cpp:466 #14 0xb1656122 in QXcbConnection::handleXcbEvent (this=0x8137d3f0, event=0xb0c0c398) at qxcbconnection.cpp:1106 #15 0xb1656ef7 in QXcbConnection::processXcbEvents (this=0x8137d3f0) at qxcbconnection.cpp:1741 #16 0xb168dde1 in QXcbConnection::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at .moc/moc_qxcbconnection.cpp:188 #17 0xb51cc8e0 in QMetaCallEvent::placeMetaCall (this=0xb0c0b330, object=0x8137d3f0) at kernel/qobject.cpp:502 #18 0xb51d0563 in QObject::event (this=0x8137d3f0, e=0xb0c0b330) at kernel/qobject.cpp:1263 #19 0xb1659a49 in QXcbConnection::event (this=0x8137d3f0, e=0xb0c0b330) at qxcbconnection.cpp:2357 #20 0xb5b1917a in QApplicationPrivate::notify_helper (this=0x81376f50, receiver=0x8137d3f0, e=0xb0c0b330) at kernel/qapplication.cpp:3799 #21 0xb5b2103c in QApplication::notify (this=0xbfd7adc8, receiver=0x8137d3f0, e=0xb0c0b330) at kernel/qapplication.cpp:3556 #22 0xb51a1a7d in QCoreApplication::notifyInternal2 (receiver=0x8137d3f0, event=0xb0c0b330) at kernel/qcoreapplication.cpp:988 #23 0xb51a4477 in QCoreApplication::sendEvent (event=0xb0c0b330, receiver=<optimized out>) at kernel/qcoreapplication.h:231 #24 QCoreApplicationPrivate::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>, data=0x81371e90) at kernel/qcoreapplication.cpp:1649 #25 0xb51a48b7 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1503 #26 0xb51fa733 in postEventSourceDispatch (s=0x813a6470) at kernel/qeventdispatcher_glib.cpp:276 #27 0xb3d0d4e9 in g_main_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3203 #28 g_main_context_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3856 #29 0xb3d0d789 in g_main_context_iterate (context=context@entry=0xb0c02a00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ././glib/gmain.c:3929 #30 0xb3d0d854 in g_main_context_iteration (context=0xb0c02a00, may_block=1) at ././glib/gmain.c:3990 #31 0xb51fab23 in QEventDispatcherGlib::processEvents (this=0x813a3ec8, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #32 0xb168ed81 in QPAEventDispatcherGlib::processEvents (this=0x813a3ec8, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:121 #33 0xb519f65d in QEventLoop::exec (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:212 #34 0xb51a87cf in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1261 #35 0xb54d9aa1 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1633 #36 0xb5b190d4 in QApplication::exec () at kernel/qapplication.cpp:2975 #37 0x800bf68c in main (argc=<optimized out>, argv=<optimized out>) at ./shell/main.cpp:166