Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
5.1.1, 5.2.0 Beta1
-
None
-
Linux OpenSuse-12.3 (x86_64) with qt compiled from qtbase-opensource-src-5.2.0-beta1.tar.xz (with --debug -developer-build).
Description
Running attached test program leads to Segmentation fault in styles/qdrawutil.cpp:841 qDrawBorderPixmap() (tested with 5.1.1 and 5.2.0-beta1, old 4.8.4 works fine).
$ tar -xvzf test_qt_button-0.1.tgz $ ../qtbase-opensource-src-5.2.0-beta1-install/bin/qmake test_qt_button.pro $ make $ gdb ./test_qt_button GNU gdb (GDB) SUSE (7.5.1-2.1.1) This GDB was configured as "x86_64-suse-linux". (gdb) run QWidget::paintEngine: Should no longer be called QWidget::paintEngine: Should no longer be called QWidget::paintEngine: Should no longer be called QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::setRenderHint: Painter must be active to set rendering hints Program received signal SIGSEGV, Segmentation fault. 0x00007ffff75c7857 in qDrawBorderPixmap (painter=0x7fffffffbe20, targetRect=..., targetMargins=..., pixmap=..., sourceRect=..., sourceMargins=..., rules=..., hints=...) at styles/qdrawutil.cpp:841 841 if (painter->paintEngine()->type() != QPaintEngine::OpenGL (gdb) where #0 0x00007ffff75c7857 in qDrawBorderPixmap (painter=0x7fffffffbe20, targetRect=..., targetMargins=..., pixmap=..., sourceRect=..., sourceMargins=..., rules=..., hints=...) at styles/qdrawutil.cpp:841 #1 0x00007ffff760ca07 in QRenderRule::drawBorderImage (this=0x7fffffff86a0, p=0x7fffffffbe20, rect=...) at styles/qstylesheetstyle.cpp:1134 #2 0x00007ffff760d455 in QRenderRule::drawBorder (this=0x7fffffff86a0, p=0x7fffffffbe20, rect=...) at styles/qstylesheetstyle.cpp:1224 #3 0x00007ffff760e104 in QRenderRule::drawFrame (this=0x7fffffff86a0, p=0x7fffffffbe20, rect=...) at styles/qstylesheetstyle.cpp:1322 #4 0x00007ffff760e1a9 in QRenderRule::drawRule (this=0x7fffffff86a0, p=0x7fffffffbe20, rect=...) at styles/qstylesheetstyle.cpp:1334 #5 0x00007ffff76189c7 in QStyleSheetStyle::drawControl (this=0x7fd3b0, ce=QStyle::CE_PushButtonBevel, opt=0x7fffffffbdc0, p=0x7fffffffbe20, w=0x7ee5e0) at styles/qstylesheetstyle.cpp:3365 #6 0x00007ffff75df6dd in QCommonStyle::drawControl (this=0x7fd3b0, element=QStyle::CE_PushButton, opt=0x7fffffffbdc0, p=0x7fffffffbe20, widget=0x7ee5e0) at styles/qcommonstyle.cpp:1188 #7 0x00007ffff764ab27 in QWindowsStyle::drawControl (this=0x7fd3b0, ce=QStyle::CE_PushButton, opt=0x7fffffffbdc0, p=0x7fffffffbe20, widget=0x7ee5e0) at styles/qwindowsstyle.cpp:1830 #8 0x00007ffff7618782 in QStyleSheetStyle::drawControl (this=0x7fd3b0, ce=QStyle::CE_PushButton, opt=0x7fffffffbdc0, p=0x7fffffffbe20, w=0x7ee5e0) at styles/qstylesheetstyle.cpp:3341 #9 0x00007ffff76b4eb6 in QStylePainter::drawControl (this=0x7fffffffbe20, ce=QStyle::CE_PushButton, opt=...) at ../../include/QtWidgets/../../src/widgets/styles/qstylepainter.h:86 #10 0x00007ffff7751bf2 in QPushButton::paintEvent (this=0x7ee5e0) at widgets/qpushbutton.cpp:457 #11 0x00007ffff7596a0d in QWidget::event (this=0x7ee5e0, event=0x7fffffffc980) at kernel/qwidget.cpp:8090 #12 0x00007ffff769a5af in QAbstractButton::event (this=0x7ee5e0, e=0x7fffffffc980) at widgets/qabstractbutton.cpp:1097 #13 0x00007ffff7752815 in QPushButton::event (this=0x7ee5e0, e=0x7fffffffc980) at widgets/qpushbutton.cpp:681 #14 0x00007ffff754ba36 in QApplicationPrivate::notify_helper (this=0x604010, receiver=0x7ee5e0, e=0x7fffffffc980) at kernel/qapplication.cpp:3470 #15 0x00007ffff754b897 in QApplication::notify (this=0x7fffffffdc30, receiver=0x7ee5e0, e=0x7fffffffc980) at kernel/qapplication.cpp:3435 #16 0x00007ffff6666a98 in QCoreApplication::notifyInternal (this=0x7fffffffdc30, receiver=0x7ee5e0, event=0x7fffffffc980) at kernel/qcoreapplication.cpp:882 #17 0x00007ffff754e09b in QCoreApplication::sendSpontaneousEvent (receiver=0x7ee5e0, event=0x7fffffffc980) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:235 #18 0x00007ffff758e779 in QWidgetPrivate::drawWidget (this=0x7eeb80, pdev=0x7ee5f0, rgn=..., offset=..., flags=3, sharedPainter=0x0, backingStore=0x0) at kernel/qwidget.cpp:5138 #19 0x00007ffff755b9d3 in QWidgetPrivate::repaint_sys (this=0x7eeb80, rgn=...) at kernel/qwidgetbackingstore.cpp:1327 #20 0x00007ffff7585a8c in QWidgetPrivate::syncBackingStore (this=0x7eeb80) at kernel/qwidget.cpp:1679 #21 0x00007ffff7596ffe in QWidget::event (this=0x7ee5e0, event=0x904920) at kernel/qwidget.cpp:8228 #22 0x00007ffff769a5af in QAbstractButton::event (this=0x7ee5e0, e=0x904920) at widgets/qabstractbutton.cpp:1097 #23 0x00007ffff7752815 in QPushButton::event (this=0x7ee5e0, e=0x904920) at widgets/qpushbutton.cpp:681 #24 0x00007ffff754ba36 in QApplicationPrivate::notify_helper (this=0x604010, receiver=0x7ee5e0, e=0x904920) at kernel/qapplication.cpp:3470 #25 0x00007ffff754b897 in QApplication::notify (this=0x7fffffffdc30, receiver=0x7ee5e0, e=0x904920) at kernel/qapplication.cpp:3435 #26 0x00007ffff6666a98 in QCoreApplication::notifyInternal (this=0x7fffffffdc30, receiver=0x7ee5e0, event=0x904920) at kernel/qcoreapplication.cpp:882 #27 0x00007ffff666a779 in QCoreApplication::sendEvent (receiver=0x7ee5e0, event=0x904920) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:232 #28 0x00007ffff6667df4 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x6033b0) at kernel/qcoreapplication.cpp:1486 #29 0x00007ffff6667795 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1344 #30 0x00007ffff66df46b in postEventSourceDispatch (s=0x6dc880) at kernel/qeventdispatcher_glib.cpp:279 #31 0x00007ffff4e457d5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #32 0x00007ffff4e45b08 in ?? () from /usr/lib64/libglib-2.0.so.0 #33 0x00007ffff4e45bc4 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #34 0x00007ffff66dfc41 in QEventDispatcherGlib::processEvents (this=0x6dc770, flags=...) at kernel/qeventdispatcher_glib.cpp:426 #35 0x00007ffff226c1d6 in QPAEventDispatcherGlib::processEvents (this=0x6dc770, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:123 #36 0x00007ffff66635c6 in QEventLoop::processEvents (this=0x7fffffffdb30, flags=...) at kernel/qeventloop.cpp:136 #37 0x00007ffff66638b3 in QEventLoop::exec (this=0x7fffffffdb30, flags=...) at kernel/qeventloop.cpp:212 #38 0x00007ffff6667170 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1135 #39 0x00007ffff6ce7252 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1332 #40 0x00007ffff75487c5 in QApplication::exec () at kernel/qapplication.cpp:2695 #41 0x00000000004010df in main (argc=1, argv=0x7fffffffdd68) at main.cpp:20 (gdb) p painter->paintEngine() $1 = (QPaintEngine *) 0x0 (gdb)