Subsurface-mobile crashes

Dirk Hohndel dirk at hohndel.org
Thu Apr 13 07:43:12 PDT 2017


It seems that these crashes started with the move to Kirigami 2 and
Quick.Controls.2 - but since they are somewhat hard to reproduce, I'm not
100% sure.

I have been able to create one scenario where I can trigger the crash
reliably under a debugger, and the stack trace doesn't really tell me
much.

We appear to be loading all of our code and based on the debug output we
are just about to show the UI when things crash.

frame #0: 0x009354be Subsurface-mobile`QQuickItem::~QQuickItem(this=0x19f07e40) + 198 at qquickitem.cpp:2314
frame #1: 0x0097482e Subsurface-mobile`QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement(this=0x19f07e40) + 46 at qqmlprivate.h:104
frame #2: 0x003b5ee4 Subsurface-mobile`QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement(this=0x19f07e40) + 16 at qqmlprivate.h:102
frame #3: 0x009747c8 Subsurface-mobile`QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement(this=0x19f07e40) + 16 at qqmlprivate.h:102
frame #4: 0x012386b4 Subsurface-mobile`QObjectPrivate::deleteChildren(this=0x19f0c950) + 164 at qobject.cpp:1970
frame #5: 0x01238494 Subsurface-mobile`QObject::~QObject(this=0x19f0c8f0) + 1372 at qobject.cpp:1041
frame #6: 0x009356a4 Subsurface-mobile`QQuickItem::~QQuickItem(this=0x19f0c8f0) + 684 at qquickitem.cpp:2356
frame #7: 0x003fccdc Subsurface-mobile`QQuickControl::~QQuickControl(this=0x19f0c8f0) + 20 at qquickcontrol_p.h:59
frame #8: 0x003b9bd0 Subsurface-mobile`QQuickAbstractButton::~QQuickAbstractButton(this=0x19f0c8f0) + 72 at qquickabstractbutton.cpp:231
frame #9: 0x003a3304 Subsurface-mobile`QQuickItemDelegate::~QQuickItemDelegate(this=0x19f0c8f0) + 20 at qquickitemdelegate_p.h:57
frame #10: 0x003a6906 Subsurface-mobile`QQmlPrivate::QQmlElement<QQuickItemDelegate>::~QQmlElement(this=0x19f0c8f0) + 46 at qqmlprivate.h:104
frame #11: 0x003a686c Subsurface-mobile`QQmlPrivate::QQmlElement<QQuickItemDelegate>::~QQmlElement(this=0x19f0c8f0) + 16 at qqmlprivate.h:102
frame #12: 0x003a6888 Subsurface-mobile`QQmlPrivate::QQmlElement<QQuickItemDelegate>::~QQmlElement(this=0x19f0c8f0) + 16 at qqmlprivate.h:102
frame #13: 0x012390d6 Subsurface-mobile`qDeleteInEventHandler(o=0x19f0c8f0) + 26 at qobject.cpp:4552
frame #14: 0x01238d82 Subsurface-mobile`QObject::event(this=0x19f0c8f0, e=0x19f03c90) + 226 at qobject.cpp:1254
frame #15: 0x0093f2d2 Subsurface-mobile`QQuickItem::event(this=0x19f0c8f0, ev=0x19f03c90) + 706 at qquickitem.cpp:7698
frame #16: 0x0054010c Subsurface-mobile`QApplicationPrivate::notify_helper(this=0x17e92110, receiver=0x19f0c8f0, e=0x19f03c90) + 280 at qapplication.cpp:3745
frame #17: 0x005414bc Subsurface-mobile`QApplication::notify(this=0x17d2a210, receiver=0x19f0c8f0, e=0x19f03c90) + 1196 at qapplication.cpp:3105
frame #18: 0x01209ca2 Subsurface-mobile`QCoreApplication::notifyInternal2(receiver=0x19f0c8f0, event=0x19f03c90) + 374 at qcoreapplication.cpp:988
frame #19: 0x009573e4 Subsurface-mobile`QCoreApplication::sendEvent(receiver=0x19f0c8f0, event=0x19f03c90) + 36 at qcoreapplication.h:231
frame #20: 0x0120ac78 Subsurface-mobile`QCoreApplicationPrivate::sendPostedEvents(receiver=0x00000000, event_type=0, data=0x17d297d0) + 952 at qcoreapplication.cpp:1648
frame #21: 0x0120a424 Subsurface-mobile`QCoreApplication::sendPostedEvents(receiver=0x00000000, event_type=0) + 32 at qcoreapplication.cpp:1502
frame #22: 0x012b53f0 Subsurface-mobile`QEventDispatcherCoreFoundation::processPostedEvents(this=0x17e7ed90) + 184 at qeventdispatcher_cf.mm:405
frame #23: 0x00436be4 Subsurface-mobile`QIOSEventDispatcher::processPostedEvents(this=0x17e7ed90) + 20 at qioseventdispatcher.mm:481
frame #24: 0x012b6be0 Subsurface-mobile`RunLoopSource<QEventDispatcherCoreFoundation>::process(info=0x17e7eda4) + 72 at qeventdispatcher_cf_p.h:145
frame #25: 0x23b1b9e6 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14
frame #26: 0x23b1b568 CoreFoundation`__CFRunLoopDoSources0 + 344
frame #27: 0x23b1993e CoreFoundation`__CFRunLoopRun + 806
frame #28: 0x23a681c8 CoreFoundation`CFRunLoopRunSpecific + 516
frame #29: 0x23a67fbc CoreFoundation`CFRunLoopRunInMode + 108
frame #30: 0x25084af8 GraphicsServices`GSEventRunModal + 160
frame #31: 0x2819b434 UIKit`UIApplicationMain + 144
frame #32: 0x00435c54 Subsurface-mobile`::qt_main_wrapper(argc=1, argv=0x0362fa90) + 468 at qioseventdispatcher.mm:232
frame #33: 0x23714872 libdyld.dylib`start + 2

We seem to be crashing deep inside the destructor of a Delegate which
appears to be a QQuickAbstractButton.

Marco - does this tell you anything more useful?

I'll be happy to try some things now that I can reproduce the crash.

Thanks

/D


More information about the subsurface mailing list