Am 03.07.2015 um 09:32 schrieb Sebastian Ramacher: > Thanks. I think this is a Qt 5 issue. I am able to produce a similar backtrace > with the following example program [1]:
[example program] > Can you confirm that this example also crashes for you? Yes, this minimal program crashes as well when my system is undocked. For completeness sake, backtrace is attached. So this looks like a Qt5 issue indeed. I don't remember seeing those crashes with Qt4, so this looks like a regression. Thanks, Michael -- Why is it that all of the instruments seeking intelligent life in the universe are pointed away from Earth?
Starting program: /home/michael/bug/helloworld [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [New Thread 0x7fffece58700 (LWP 3741)] Program received signal SIGSEGV, Segmentation fault. QWidgetPrivate::drawWidget (this=this@entry=0x694320, pdev=pdev@entry=0x6d3eb0, rgn=..., offset=..., flags=flags@entry=4, sharedPainter=sharedPainter@entry=0x0, backingStore=0x6d8740) at kernel/qwidget.cpp:5552 5552 kernel/qwidget.cpp: Datei oder Verzeichnis nicht gefunden. #0 QWidgetPrivate::drawWidget (this=this@entry=0x694320, pdev=pdev@entry=0x6d3eb0, rgn=..., offset=..., flags=flags@entry=4, sharedPainter=sharedPainter@entry=0x0, backingStore=0x6d8740) at kernel/qwidget.cpp:5552 paintEngine = 0x69e4b0 grabbed = <optimized out> asRoot = false alsoOnScreen = false toBePainted = {d = 0x6b0f30, static shared_empty = {ref = {atomic = {_q_value = -1}}, qt_rgn = 0x7ffff7734a00 <qrp>}} onScreen = false recursive = true alsoInvisible = false #1 0x00007ffff78cecc1 in QWidgetPrivate::paintSiblingsRecursive (this=this@entry=0x6cf870, pdev=pdev@entry=0x6d3eb0, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x6d8740) at kernel/qwidget.cpp:5743 wRegion = {d = 0x6b0f30, static shared_empty = {ref = {atomic = {_q_value = -1}}, qt_rgn = 0x7ffff7734a00 <qrp>}} w = <optimized out> boundingRect = {x1 = <optimized out>, y1 = 0, x2 = <optimized out>, y2 = 201} dirtyBoundingRect = false exludeOpaqueChildren = false excludeNativeChildren = false widgetPos = {xp = 1, yp = 1} hasMask = false #2 0x00007ffff78cdb07 in QWidgetPrivate::drawWidget (this=0x6cf870, pdev=0x6d3eb0, rgn=..., offset=..., flags=flags@entry=5, sharedPainter=sharedPainter@entry=0x0, backingStore=0x6d8740) at kernel/qwidget.cpp:5600 asRoot = true alsoOnScreen = false toBePainted = {d = 0x787250, static shared_empty = {ref = {atomic = {_q_value = -1}}, qt_rgn = 0x7ffff7734a00 <qrp>}} onScreen = <optimized out> recursive = true alsoInvisible = false #3 0x00007ffff789e0bb in QWidgetBackingStore::doSync (this=this@entry=0x6d8740) at kernel/qwidgetbackingstore.cpp:1230 flags = 5 repaintAllWidgets = false inTopLevelResize = <optimized out> tlwRect = <optimized out> surfaceGeometry = <optimized out> dirtyCopy = {d = 0x698e90, static shared_empty = {ref = {atomic = {_q_value = -1}}, qt_rgn = 0x7ffff7734a00 <qrp>}} updatesDisabled = <optimized out> toClean = {d = 0x698e90, static shared_empty = {ref = {atomic = {_q_value = -1}}, qt_rgn = 0x7ffff7734a00 <qrp>}} opaqueNonOverlappedWidgets = {a = 32, s = 0, ptr = 0x7fffffffcb10, { array = "\000\000\000\000\000\000\000\000\020px\000\000\000\000\000\020px\000\000\000\000\000\020px\000\000\000\000\000\000\000\000\000\001\000\000\000\000\063P\244>\247\232\260`\337\377\377\377\177\000\000`\337\377\377\377\177\000\000\220\315\377\377\377\177\000\000\240\367a\000\000\000\000\000\001\004\000\000\000\000\000\000\240\337\377\377\377\177\000\000\005\000 \002\000\000\000\000\334\n\211\367\377\177\000\000`\337\377\377\377\177\000\000\220\315\377\377\377\177\000\000`\337\377\377\377\177\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\000\000\000\260_\211\367\377\177\000\000\000\000\000\000\000\000\000\000\067\311Q\367\377\177\000\000\240\367a\000\000\000\000\000\002\000\000\000\000\000\000\000 \322\377\377\377\177\000\000"..., q_for_alignment_1 = 0, q_for_alignment_2 = 0}} beginPaintInfo = {wasFlushed = 0, nothingToPaint = 0, backingStoreRecreated = 0} #4 0x00007ffff789e459 in QWidgetBackingStore::sync (this=0x6d8740) at kernel/qwidgetbackingstore.cpp:1036 No locals. #5 0x00007ffff78bf21f in QWidgetPrivate::syncBackingStore (this=0x6cf870) at kernel/qwidget.cpp:1894 No locals. #6 0x00007ffff78d4218 in QWidget::event (this=this@entry=0x7fffffffdf60, event=event@entry=0x7fffffffd060) at kernel/qwidget.cpp:8962 No locals. #7 0x00007ffff79d273e in QFrame::event (this=this@entry=0x7fffffffdf60, e=e@entry=0x7fffffffd060) at widgets/qframe.cpp:526 result = <optimized out> #8 0x00007ffff7a5c333 in QAbstractScrollArea::event (this=0x7fffffffdf60, e=0x7fffffffd060) at widgets/qabstractscrollarea.cpp:1142 No locals. #9 0x00007ffff7890adc in QApplicationPrivate::notify_helper (this=this@entry=0x61f7a0, receiver=receiver@entry=0x7fffffffdf60, e=e@entry=0x7fffffffd060) at kernel/qapplication.cpp:3720 consumed = <optimized out> #10 0x00007ffff7895fb0 in QApplication::notify (this=0x7fffffffdfa0, receiver=0x7fffffffdf60, e=0x7fffffffd060) at kernel/qapplication.cpp:3503 w = 0x7fffffffdf60 extra = <optimized out> isProxyWidget = <optimized out> res = <optimized out> #11 0x00007ffff6fa33ab in QCoreApplication::notifyInternal (this=0x7fffffffdfa0, receiver=receiver@entry=0x7fffffffdf60, event=event@entry=0x7fffffffd060) at kernel/qcoreapplication.cpp:935 threadData = 0x61f910 loopLevelCounter = {threadData = 0x61f910} result = false cbdata = {0x7fffffffdf60, 0x7fffffffd060, 0x7fffffffd00f} d = <optimized out> #12 0x00007ffff789f51f in sendEvent (event=0x7fffffffd060, receiver=0x7fffffffdf60) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228 No locals. #13 QWidgetBackingStore::sendUpdateRequest (this=<optimized out>, widget=0x7fffffffdf60, updateTime=<optimized out>) at kernel/qwidgetbackingstore.cpp:456 event = {_vptr.QEvent = 0x7ffff71ddc70 <vtable for QEvent+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff716a140 <qt_meta_stringdata_QEvent>, data = 0x7ffff7169b80 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 77, posted = 0, spont = 0, m_accept = 1, reserved = 13} #14 0x00007ffff78a010d in QWidgetBackingStore::markDirty (this=0x6d8740, rect=..., widget=<optimized out>, updateTime=updateTime@entry=QWidgetBackingStore::UpdateNow, bufferState=bufferState@entry=QWidgetBackingStore::BufferInvalid) at kernel/qwidgetbackingstore.cpp:639 widgetRect = {x1 = 0, y1 = 0, x2 = 201, y2 = 201} translatedRect = {x1 = 0, y1 = 0, x2 = 201, y2 = 201} #15 0x00007ffff78ebde4 in QWidgetWindow::repaintWindow (this=0x69e030) at kernel/qwidgetwindow.cpp:648 this = 0x69e030 #16 0x00007ffff6fd412e in QMetaObject::activate (sender=sender@entry=0x69e030, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffd2d0) at kernel/qobject.cpp:3717 receiverInSameThread = <optimized out> sw = {receiver = 0x69e030, previousSender = 0x7fffffffd4b0, currentSender = {sender = 0x69e030, signal = 3, ref = 1}, switched = true} callFunction = 0x7ffff7c3df70 <QWidgetWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)> receiver = 0x69e030 method_relative = 1 c = 0x695c50 last = 0x695c50 locker = {val = 140737339357136} connectionLists = {connectionLists = 0x69a180} list = <optimized out> signal_index = 3 empty_argv = {0x0} currentThreadId = 0x7ffff7fb7780 #17 0x00007ffff6fd47a7 in QMetaObject::activate (sender=sender@entry=0x69e030, m=m@entry=0x7ffff771fbc0 <QWindow::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffd2d0) at kernel/qobject.cpp:3582 No locals. #18 0x00007ffff72d7c2f in QWindow::screenChanged (this=this@entry=0x69e030, _t1=_t1@entry=0x0) at .moc/moc_qwindow.cpp:626 _a = {0x0, 0x7fffffffd2c8} #19 0x00007ffff72d8485 in QWindowPrivate::emitScreenChangedRecursion (this=this@entry=0x6b6a90, newScreen=newScreen@entry=0x0) at kernel/qwindow.cpp:366 No locals. #20 0x00007ffff72dbbb3 in QWindowPrivate::setTopLevelScreen (this=0x6b6a90, newScreen=0x0, recreate=<optimized out>) at kernel/qwindow.cpp:387 shouldRecreate = <optimized out> #21 0x00007ffff72dbd55 in QWindow::screenDestroyed (this=0x69e030, object=<optimized out>) at kernel/qwindow.cpp:1720 wasVisible = true #22 0x00007ffff6fd3aba in call (a=0x7fffffffd520, r=0x69e030, this=0x6952d0) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:124 No locals. #23 QMetaObject::activate (sender=sender@entry=0x639ee0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffd520) at kernel/qobject.cpp:3702 obj = {d = 0x6952d0} receiverInSameThread = <optimized out> sw = {receiver = 0x69e030, previousSender = 0x0, currentSender = {sender = 0x639ee0, signal = 0, ref = 1}, switched = true} callFunction = <optimized out> receiver = 0x69e030 method_relative = 0 c = 0x693ba0 last = 0x698840 locker = {val = 140737339356968} connectionLists = {connectionLists = 0x69a150} list = <optimized out> signal_index = 0 empty_argv = {0x0} currentThreadId = 0x7ffff7fb7780 #24 0x00007ffff6fd47a7 in QMetaObject::activate (sender=sender@entry=0x639ee0, m=m@entry=0x7ffff71d9980 <QObject::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffd520) at kernel/qobject.cpp:3582 No locals. #25 0x00007ffff6fd484f in QObject::destroyed (this=this@entry=0x639ee0, _t1=_t1@entry=0x639ee0) at .moc/moc_qobject.cpp:206 _a = {0x0, 0x7fffffffd518} #26 0x00007ffff6fdd1bb in QObject::~QObject (this=0x639ee0, __in_chrg=<optimized out>) at kernel/qobject.cpp:903 d = 0x639f00 #27 0x00007ffff72fa589 in QScreen::~QScreen (this=0x639ee0, __in_chrg=<optimized out>) at kernel/qscreen.cpp:77 No locals. #28 0x00007ffff72c0e2a in QPlatformScreen::~QPlatformScreen (this=0x63a4c0, __in_chrg=<optimized out>) at kernel/qplatformscreen.cpp:57 No locals. #29 0x00007ffff7f32179 in QXcbScreen::~QXcbScreen (this=0x63a4c0, __in_chrg=<optimized out>) at qxcbscreen.cpp:222 No locals. #30 0x00007ffff7f24fbb in QXcbConnection::updateScreens (this=this@entry=0x62c100) at qxcbconnection.cpp:286 i = 0 activeScreens = {q_hash = {{d = 0x6d78e0, e = 0x6d78e0}}} it = {data = 0x62db84, rem = 0, index = 864} screenNumber = <optimized out> xcbScreenNumber = <optimized out> newScreens = {<QListSpecialMethods<QXcbScreen*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = -1}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x6d7820}, d = 0x6d7820}} primaryScreen = <optimized out> #31 0x00007ffff7f25c8d in QXcbConnection::handleXcbEvent (this=this@entry=0x62c100, event=event@entry=0x7fffe8003e60) at qxcbconnection.cpp:961 change_event = <optimized out> result = 0 dispatcher = 0x64e2a0 handled = false response_type = 89 #32 0x00007ffff7f26ecb in QXcbConnection::processXcbEvents (this=0x62c100) at qxcbconnection.cpp:1303 accepted = false it = 0x7ffff707a430 <qt_array+48> event = 0x7fffe8003e60 eventGuard = {d = 0x7fffe8003e60} response_type = <optimized out> i = 0 connection_error = <optimized out> eventqueue = 0x637d98 #33 0x00007ffff6fd4e8a in QObject::event (this=0x62c100, e=<optimized out>) at kernel/qobject.cpp:1245 mce = <optimized out> sw = {receiver = 0x62c100, previousSender = 0x0, currentSender = {sender = 0x637d80, signal = 5, ref = 1}, switched = true} #34 0x00007ffff7890adc in QApplicationPrivate::notify_helper (this=this@entry=0x61f7a0, receiver=receiver@entry=0x62c100, e=e@entry=0x7fffe8003fb0) at kernel/qapplication.cpp:3720 consumed = <optimized out> #35 0x00007ffff7895fb0 in QApplication::notify (this=0x7fffffffdfa0, receiver=0x62c100, e=0x7fffe8003fb0) at kernel/qapplication.cpp:3503 w = 0x62c100 extra = <optimized out> isProxyWidget = <optimized out> res = <optimized out> #36 0x00007ffff6fa33ab in QCoreApplication::notifyInternal (this=0x7fffffffdfa0, receiver=0x62c100, event=event@entry=0x7fffe8003fb0) at kernel/qcoreapplication.cpp:935 threadData = 0x61f910 loopLevelCounter = {threadData = 0x61f910} result = false cbdata = {0x62c100, 0x7fffe8003fb0, 0x7fffffffdbff} d = <optimized out> #37 0x00007ffff6fa541b in sendEvent (event=0x7fffe8003fb0, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228 No locals. #38 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x61f910) at kernel/qcoreapplication.cpp:1552 e = 0x7fffe8003fb0 pe = <optimized out> r = <optimized out> unlocker = {m = <synthetic pointer>} event_deleter = {d = 0x7fffe8003fb0} locker = {val = 6420792} startOffset = 0 i = @0x61f92c: 1 cleanup = {receiver = 0x0, event_type = 0, data = 0x61f910, exceptionCaught = true} #39 0x00007ffff6fa5a18 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1410 data = <optimized out> #40 0x00007ffff6ffbf33 in postEventSourceDispatch (s=0x64e300) at kernel/qeventdispatcher_glib.cpp:271 source = 0x64e300 #41 0x00007ffff5a0fc3d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available. #42 0x00007ffff5a0ff20 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available. #43 0x00007ffff5a0ffcc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available. #44 0x00007ffff6ffc347 in QEventDispatcherGlib::processEvents (this=0x64e2a0, flags=...) at kernel/qeventdispatcher_glib.cpp:418 d = 0x64abe0 canWait = true savedFlags = {i = 0} result = <optimized out> #45 0x00007ffff6fa0b62 in QEventLoop::exec (this=this@entry=0x7fffffffdee0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204 locker = {val = 6420992} ref = {d = 0x69bf30, locker = @0x7fffffffde60, exceptionCaught = true} d = 0x69bf30 #46 0x00007ffff6fa87ac in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1188 threadData = 0x61f910 eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff71e1150 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff710dc80 <qt_meta_stringdata_QObject>, data = 0x7ffff710db40 <qt_meta_data_QObject>, static_metacall = 0x7ffff6fdd430 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x69bf30}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff7155780 <qt_meta_stringdata_Qt>, data = 0x7ffff7152f00 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff71d9980 <QObject::staticMetaObject>, stringdata = 0x7ffff7169740 <qt_meta_stringdata_QEventLoop>, data = 0x7ffff71696c0 <qt_meta_data_QEventLoop>, static_metacall = 0x7ffff7053550 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}} returnCode = <optimized out> #47 0x0000000000401361 in main () No symbol table info available. A debugging session is active. Inferior 1 [process 3731] will be killed. Quit anyway? (y or n)
signature.asc
Description: OpenPGP digital signature