Version: unspecified (using KDE 4.5.2) OS: Linux Some non KDE but Qt apps crashes due to some bug in oxygen or Qt-4.7.0 1.Using qt-4.6.3 - everything is ok (KDE-4.4.XX (Fedora 13 @home)) , but qt-4.7.0 (from koji.fedoraproject.org) - oxygen crashes while painting QScrollBar 2.Reported same thing with KDE-4.5.2 and Qt-4.7.0. 3.App works fine with all other qt styles - crashes only with oxygen. GDB trace (taken on FC13 KDE-4.4.XX and Qt-4.7.0) is pasted into additional information. Another weird thing is that with -graphicssystem raster crashes are rare (but can occur only with oxygen). I see that code qdrawhelper_sse2_p.h qdrawhelper_sse2.cpp is changed between 4.6.3 and 4.7.0 (1) but don't know if this is qt bug since it works ok with all other styles. Reproducible: Always Steps to Reproduce: http://www.lazarus.freepascal.org Install daily snapshot of lazarus IDE and rebuild for qt dailysnapshots: http://www.hu.freepascal.org/lazarus/ Program received signal SIGSEGV, Segmentation fault. comp_func_SourceOver_sse2 (destPixels=0x932c8a0, srcPixels=<value optimized out>, length=92, const_alpha=254) at painting/qdrawhelper_sse2.cpp:317 317 BLEND_SOURCE_OVER_ARGB32_WITH_CONST_ALPHA_SSE2(dst, src, length, nullVector, half, one, colorMask, constAlphaVector); (gdb) bt #0 comp_func_SourceOver_sse2 (destPixels=0x932c8a0, srcPixels=<value optimized out>, length=92, const_alpha=254) at painting/qdrawhelper_sse2.cpp:317 #1 0x0230c8b2 in process (count=2, spans=0xbfff9da0, data=0x9328378, handler=...) at painting/qdrawhelper.cpp:3327 #2 handleSpans<BlendSrcGeneric<(SpanMethod)0> > (count=2, spans=0xbfff9da0, data=0x9328378, handler=...) at painting/qdrawhelper.cpp:3273 #3 0x02303f79 in blend_src_generic<(SpanMethod)0> (count=2, spans=0xbfff9da0, userData=0x9328378) at painting/qdrawhelper.cpp:3345 #4 0x0230426d in qt_gradient_quint32 (count=2, spans=0xbfff9da0, userData=0x9328378) at painting/qdrawhelper.cpp:6932 #5 0x022d5568 in qt_span_fill_clipRect (count=<value optimized out>, spans=0xbfff9da0, userData=0x9328378) at painting/qpaintengine_raster.cpp:4835 #6 0x022a19d1 in flushSpans (this=0x90c5488, a=..., b=..., width=<value optimized out>, squareCap=2) at painting/qrasterizer.cpp:105 #7 ~QSpanBuffer (this=0x90c5488, a=..., b=..., width=<value optimized out>, squareCap=2) at painting/qrasterizer.cpp:80 #8 QRasterizer::rasterizeLine (this=0x90c5488, a=..., b=..., width=<value optimized out>, squareCap=2) at painting/qrasterizer.cpp:1137 #9 0x022e8a79 in QRasterPaintEngine::stroke (this=0x93b42c8, path=..., pen=...) at painting/qpaintengine_raster.cpp:1743 #10 0x0224d4fe in QPaintEngineEx::draw (this=0x93b42c8, path=...) at painting/qpaintengineex.cpp:601 #11 0x0224d836 in QPaintEngineEx::drawPath (this=0x93b42c8, path=...) at painting/qpaintengineex.cpp:846 #12 0x02265240 in QPainter::drawPath (this=0xbfffabb0, path=...) at painting/qpainter.cpp:3381 #13 0x0225f2be in QPainterPrivate::draw_helper (this=0x93abbf8, originalPath=..., op=QPainterPrivate::StrokeDraw) at painting/qpainter.cpp:471 #14 0x02260581 in QPainter::drawLines (this=0xbfffc6c0, lines=0xbfffadcc, lineCount=1) at painting/qpainter.cpp:4657 #15 0x0346cb3b in drawLine (this=0x8fa4670, p=0xbfffc6c0, r=..., pal=..., orientation=Qt::Horizontal, hover=false, opacity=-1) at /usr/include/QtGui/qpainter.h:534 #16 drawLine (this=0x8fa4670, p=0xbfffc6c0, r=..., pal=..., orientation=Qt::Horizontal, hover=false, opacity=-1) at /usr/include/QtGui/qpainter.h:556 #17 OxygenStyle::renderScrollBarHandle (this=0x8fa4670, p=0xbfffc6c0, r=..., pal=..., orientation=Qt::Horizontal, hover=false, opacity=-1) at /usr/src/debug/kdebase-runtime-4.4.5/kstyles/oxygen/oxygen.cpp:4400 ---Type <return> to continue, or q <return> to quit--- #18 0x0346d702 in renderScrollBarHandle (this=0x8fa4670, primitive=9, opt=0xbfffbc48, r=..., pal=..., flags=..., p=0xbfffc6c0, widget= 0x9171120, kOpt=0x0) at /usr/src/debug/kdebase-runtime-4.4.5/kstyles/oxygen/oxygen.h:293 #19 OxygenStyle::drawScrollBarPrimitive (this=0x8fa4670, primitive=9, opt=0xbfffbc48, r=..., pal=..., flags=..., p=0xbfffc6c0, widget= 0x9171120, kOpt=0x0) at /usr/src/debug/kdebase-runtime-4.4.5/kstyles/oxygen/oxygen.cpp:1597 #20 0x0345b7aa in OxygenStyle::drawKStylePrimitive (this=0x8fa4670, widgetType=KStyle::WT_ScrollBar, primitive=9, opt=0xbfffbc48, r=..., palette=..., flags=..., p=0xbfffc6c0, widget=0x9171120, kOpt=0x0) at /usr/src/debug/kdebase-runtime-4.4.5/kstyles/oxygen/oxygen.cpp:762 #21 0x06716486 in KStyle::drawControl (this=0x8fa4670, element=QStyle::CE_ScrollBarSlider, option=0xbfffbc48, p=0xbfffc6c0, widget=0x9171120) at /usr/src/debug/kdelibs-4.4.5/kdeui/kernel/kstyle.cpp:2266 #22 0x03464916 in OxygenStyle::drawControl (this=0x8fa4670, element=QStyle::CE_ScrollBarSlider, option=0xbfffbc48, p=0xbfffc6c0, widget= 0x9171120) at /usr/src/debug/kdebase-runtime-4.4.5/kstyles/oxygen/oxygen.cpp:641 #23 0x02446cbd in QCommonStyle::drawComplexControl (this=0x8fa4670, cc=QStyle::CC_ScrollBar, opt=0xbfffc658, p=0xbfffc6c0, widget=0x9171120) at styles/qcommonstyle.cpp:3237 #24 0x067124fd in KStyle::drawComplexControl (this=0x8fa4670, cc=QStyle::CC_ScrollBar, opt=0xbfffc658, p=0xbfffc6c0, w=0x9171120) at /usr/src/debug/kdelibs-4.4.5/kdeui/kernel/kstyle.cpp:3591 #25 0x0345c1f9 in OxygenStyle::drawComplexControl (this=0x8fa4670, control=QStyle::CC_ScrollBar, option=0xbfffc658, painter=0xbfffc6c0, widget= 0x9171120) at /usr/src/debug/kdebase-runtime-4.4.5/kstyles/oxygen/oxygen.cpp:303 #26 0x0259c619 in QScrollBar::paintEvent (this=0x9171120) at widgets/qscrollbar.cpp:566 #27 0x0215206b in QWidget::event (this=0x9171120, event=0xbfffcc58) at kernel/qwidget.cpp:8333 #28 0x024fb7a5 in QAbstractSlider::event (this=0x9171120, e=0xbfffcc58) at widgets/qabstractslider.cpp:942 #29 0x0259d078 in QScrollBar::event (this=0x9171120, event=0xbfffcc58) at widgets/qscrollbar.cpp:546 #30 0x020ff3bc in QApplicationPrivate::notify_helper (this=0x8f67a08, receiver=0x9171120, e=0xbfffcc58) at kernel/qapplication.cpp:4396 #31 0x02105a01 in QApplication::notify (this=0x8f679f8, receiver=0x9171120, e=0xbfffcc58) at kernel/qapplication.cpp:4361 #32 0x0039eba3 in QCoreApplication::notifyInternal (this=0x8f679f8, receiver=0x9171120, event=0xbfffcc58) at kernel/qcoreapplication.cpp:732 ---Type <return> to continue, or q <return> to quit--- #33 0x02158807 in sendSpontaneousEvent (this=0x9218840, pdev=0x91e9e5c, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore= 0x91f33f8) at ../../src/corelib/kernel/qcoreapplication.h:218 #34 QWidgetPrivate::drawWidget (this=0x9218840, pdev=0x91e9e5c, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91f33f8) at kernel/qwidget.cpp:5420 #35 0x02159612 in QWidgetPrivate::paintSiblingsRecursive (this=0x92186e0, pdev=0x91e9e5c, siblings=..., index=<value optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91f33f8) at kernel/qwidget.cpp:5627 #36 0x02158551 in QWidgetPrivate::drawWidget (this=0x92186e0, pdev=0x91e9e5c, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore= 0x91f33f8) at kernel/qwidget.cpp:5473 #37 0x02159612 in QWidgetPrivate::paintSiblingsRecursive (this=0x92181e0, pdev=0x91e9e5c, siblings=..., index=<value optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91f33f8) at kernel/qwidget.cpp:5627 #38 0x02159449 in QWidgetPrivate::paintSiblingsRecursive (this=0x92181e0, pdev=0x91e9e5c, siblings=..., index=1, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91f33f8) at kernel/qwidget.cpp:5614 #39 0x02158551 in QWidgetPrivate::drawWidget (this=0x92181e0, pdev=0x91e9e5c, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore= 0x91f33f8) at kernel/qwidget.cpp:5473 #40 0x02159612 in QWidgetPrivate::paintSiblingsRecursive (this=0x9214260, pdev=0x91e9e5c, siblings=..., index=<value optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91f33f8) at kernel/qwidget.cpp:5627 #41 0x02158551 in QWidgetPrivate::drawWidget (this=0x9214260, pdev=0x91e9e5c, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore= 0x91f33f8) at kernel/qwidget.cpp:5473 #42 0x02159612 in QWidgetPrivate::paintSiblingsRecursive (this=0x91fb328, pdev=0x91e9e5c, siblings=..., index=<value optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91f33f8) at kernel/qwidget.cpp:5627 #43 0x02158551 in QWidgetPrivate::drawWidget (this=0x91fb328, pdev=0x91e9e5c, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore= 0x91f33f8) at kernel/qwidget.cpp:5473 #44 0x02159612 in QWidgetPrivate::paintSiblingsRecursive (this=0x91fb180, pdev=0x91e9e5c, siblings=..., index=<value optimized out>, rgn=..., ---Type <return> to continue, or q <return> to quit--- offset=..., flags=4, sharedPainter=0x0, backingStore=0x91f33f8) at kernel/qwidget.cpp:5627 #45 0x02159449 in QWidgetPrivate::paintSiblingsRecursive (this=0x91fb180, pdev=0x91e9e5c, siblings=..., index=0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91f33f8) at kernel/qwidget.cpp:5614 #46 0x02158551 in QWidgetPrivate::drawWidget (this=0x91fb180, pdev=0x91e9e5c, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore= 0x91f33f8) at kernel/qwidget.cpp:5473 #47 0x02159612 in QWidgetPrivate::paintSiblingsRecursive (this=0x91f3000, pdev=0x91e9e5c, siblings=..., index=<value optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91f33f8) at kernel/qwidget.cpp:5627 #48 0x02158551 in QWidgetPrivate::drawWidget (this=0x91f3000, pdev=0x91e9e5c, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore= 0x91f33f8) at kernel/qwidget.cpp:5473 #49 0x02159612 in QWidgetPrivate::paintSiblingsRecursive (this=0x91f4230, pdev=0x91e9e5c, siblings=..., index=<value optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91f33f8) at kernel/qwidget.cpp:5627 #50 0x02158551 in QWidgetPrivate::drawWidget (this=0x91f4230, pdev=0x91e9e5c, rgn=..., offset=..., flags=5, sharedPainter=0x0, backingStore= 0x91f33f8) at kernel/qwidget.cpp:5473 #51 0x02332f25 in QWidgetBackingStore::sync (this=0x91f33f8) at painting/qbackingstore.cpp:1328 #52 0x0214b513 in QWidgetPrivate::syncBackingStore (this=0x91f4230) at kernel/qwidget.cpp:1805 #53 0x0217775e in QETWidget::translateConfigEvent (this=0x91ea750, event=0xbfffed20) at kernel/qapplication_x11.cpp:5291 #54 0x02183c06 in QApplication::x11ProcessEvent (this=0x8f679f8, event=0xbfffed20) at kernel/qapplication_x11.cpp:3441 #55 0x021afc92 in x11EventSourceDispatch (s=0x8f6af40, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146 #56 0x00b57525 in g_main_dispatch (context=0x8f6a090) at gmain.c:1960 #57 IA__g_main_context_dispatch (context=0x8f6a090) at gmain.c:2513 #58 0x00b5b268 in g_main_context_iterate (context=0xa08bf0, block=0, dispatch=1, self=0x8f67f00) at gmain.c:2591 #59 0x00b5b449 in IA__g_main_context_iteration (context=0x8f6a090, may_block=0) at gmain.c:2654 #60 0x003c95b6 in QEventDispatcherGlib::processEvents (this=0x8f57588, flags=...) at kernel/qeventdispatcher_glib.cpp:415 ---Type <return> to continue, or q <return> to quit--- #61 0x021af706 in QGuiEventDispatcherGlib::processEvents (this=0x8f57588, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 #62 0x003a2bb2 in QCoreApplication::processEvents (flags=...) at kernel/qcoreapplication.cpp:924 #63 0x063e6043 in QCoreApplication_processEvents (flags=Could not find the frame base for "QCoreApplication_processEvents(unsigned int)". ) at src/qcoreapplication_c.cpp:105 #64 0x081f38a3 in TQTWIDGETSET__APPPROCESSMESSAGES (this=<error reading variable>) at qtobject.inc:264 #65 0x0808b299 in TAPPLICATION__HANDLEMESSAGE (this=<error reading variable>) at ./include/application.inc:1229 #66 0x0808b6ff in TAPPLICATION__RUNLOOP (this=<error reading variable>) at ./include/application.inc:1362 #67 0x081f3863 in TQTWIDGETSET__APPRUN (ALOOP=0x808b6c0 <TAPPLICATION__RUNLOOP>, this=<error reading variable>) at qtobject.inc:233 #68 0x0808b6ba in TAPPLICATION__RUN (this=<error reading variable>) at ./include/application.inc:1350 #69 0x0805e782 in main () at lazarus.pp:112
I do suspect a Qt bug. The fact that it does not crash with other style is likely because they just don't call the same methods. So far I have not been able to reproduce here. will keep open for the meanwhile and investigate further
Thanks. If I can help somehow , just drop me an email.
Note (if it helps anyhow): Configure oxygen -> Scrollbars -> Colorful hovered scrollbars enabled. KDE 4.5.2 , qt-4.7.0-5.fc13.i686 on Fedora 13. Now it does not crash anymore.
You can close this issue. We are using C bindings for our apps, so rebuilding with -mstackrealign fixes problem.
Thanks for the info. Closing, then :)