只是一个代码低于“Hello world' QML导致cygwin的分段错误

时间:2016-04-16 13:07:27

标签: qt cygwin qml

我正在尝试将QML与cygwin一起使用。

我准备了这个非常简单的代码simple.qml

import QtQuick 2.0
Rectangle { }

然后,qmlscene-qt5 simple.qml导致分段错误。我怎样才能避免segfaluts?

软件版本如下所示:

  • Windows:8.1 64位和10 64位导致段错误
  • cygwin:2.5.0-1 x86
  • xorg-server:1.18.2-1
  • LibQt5Core5,qt5-declarative-tools等:5.5.1-1

顺便说一句,此代码不会导致段错误。

import QtQuick 2.0
import QtQuick.Window 2.0
import QtQuick.Controls 1.0

Window{
    title: 'window'
    Label{
        // text: 'hello, world!'
        // If I uncomment the above line, a segfault emerges.
    }
}

感谢您阅读此问题。

仅供参考,gdb日志如下所示。我执行gdb /usr/bin/qmlscene-qt5并在segfaulted后检查where

#0  0xfd6411db in ?? ()
#1  0x444f41b6 in gallium_dri!__driDriverGetExtensions_swrast ()
   from C:/cygwin/lib/dri/swrast_dri.so
#2  0x444f465a in gallium_dri!__driDriverGetExtensions_swrast ()
   from C:/cygwin/lib/dri/swrast_dri.so
#3  0x4441426d in gallium_dri!__driDriverGetExtensions_swrast ()
   from C:/cygwin/lib/dri/swrast_dri.so
#4  0x44414ac0 in gallium_dri!__driDriverGetExtensions_swrast ()
   from C:/cygwin/lib/dri/swrast_dri.so
#5  0x4440bd7d in gallium_dri!__driDriverGetExtensions_swrast ()
   from C:/cygwin/lib/dri/swrast_dri.so
#6  0x4440c247 in gallium_dri!__driDriverGetExtensions_swrast ()
   from C:/cygwin/lib/dri/swrast_dri.so
#7  0x44527ca5 in gallium_dri!__driDriverGetExtensions_swrast ()
   from C:/cygwin/lib/dri/swrast_dri.so
#8  0x442578c6 in gallium_dri!__driDriverGetExtensions_swrast ()
   from C:/cygwin/lib/dri/swrast_dri.so
#9  0x44228415 in gallium_dri!__driDriverGetExtensions_swrast ()
   from C:/cygwin/lib/dri/swrast_dri.so
#10 0x44228941 in gallium_dri!__driDriverGetExtensions_swrast ()
   from C:/cygwin/lib/dri/swrast_dri.so
#11 0x6727f40f in QOpenGLFunctions::glDrawElements (indices=<optimized out>,
    type=5123, count=<optimized out>, mode=<optimized out>,
    this=<optimized out>) at /usr/include/qt5/QtGui/qopenglfunctions.h:727
#12 QSGBatchRenderer::Renderer::renderMergedBatch (this=this@entry=0x8041e638,
    batch=<optimized out>)
    at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:2299
#13 0x672811a7 in QSGBatchRenderer::Renderer::renderMergedBatch (
    batch=<optimized out>, this=0x8041e638)
    at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:2512
#14 QSGBatchRenderer::Renderer::renderBatches (this=this@entry=0x8041e638)
    at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:2493
#15 0x67286f3f in QSGBatchRenderer::Renderer::render (this=0x8041e638)
    at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:2681
#16 0x6728fc33 in QSGRenderer::renderScene (this=this@entry=0x8041e638,
    bindable=...)
    at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/coreapi/qsgrenderer.cpp:208
#17 0x67290657 in QSGRenderer::renderScene (this=0x8041e638, fboId=0)
    at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/coreapi/qsgrenderer.cpp:168
#18 0x6729fc84 in QSGRenderContext::renderNextFrame (this=0x802763f0,
    renderer=0x8041e638, fboId=0)
    at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/qsgcontext.cpp:558
#19 0x672e6d30 in QQuickWindowPrivate::renderSceneGraph (
    this=this@entry=0x80275ff0, size=...)
    at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/items/qquickwindow.cpp:383
#20 0x672b80a5 in QSGGuiThreadRenderLoop::renderWindow (
    this=this@entry=0x8027e1e8, window=0x80275fd8)
    at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/qsgrenderloop.cpp:378
#21 0x672b9c9f in QSGGuiThreadRenderLoop::exposureChanged (this=0x8027e1e8,
    window=0x80275fd8)
    at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/qsgrenderloop.cpp:422
#22 0x67cba4f9 in QWindow::event (this=0x80275fd8, ev=0x28c834)
    at /usr/src/debug/qt5-base-5.5.1-1/src/gui/kernel/qwindow.cpp:2053
#23 0x672f40ce in QQuickWindow::event (this=0x80275fd8, e=0x28c834)
    at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/items/qquickwindow.cpp:1413
#24 0x6471b4a1 in QApplicationPrivate::notify_helper (
    this=this@entry=0x80060500, receiver=receiver@entry=0x80275fd8,
    e=e@entry=0x28c834)
    at /usr/src/debug/qt5-base-5.5.1-1/src/widgets/kernel/qapplication.cpp:3716
#25 0x647207dc in QApplication::notify (this=0x28cba4, receiver=0x80275fd8,
    e=0x28c834)
    at /usr/src/debug/qt5-base-5.5.1-1/src/widgets/kernel/qapplication.cpp:3499
#26 0x68d90d62 in QCoreApplication::notifyInternal (this=0x28cba4,
    receiver=0x80275fd8, event=0x28c834)
    at /usr/src/debug/qt5-base-5.5.1-1/src/corelib/kernel/qcoreapplication.cpp:965
#27 0x67cb3377 in QCoreApplication::sendSpontaneousEvent (event=0x28c834,
    receiver=0x80275fd8)
    at /usr/src/debug/qt5-base-5.5.1-1/include/QtCore/../../src/corelib/kernel/qcoreapplication.h:227
#28 QGuiApplicationPrivate::processExposeEvent (e=e@entry=0x802fdef0)
    at /usr/src/debug/qt5-base-5.5.1-1/src/gui/kernel/qguiapplication.cpp:2648
#29 0x67cb41b8 in QGuiApplicationPrivate::processWindowSystemEvent (
    e=e@entry=0x802fdef0)
    at /usr/src/debug/qt5-base-5.5.1-1/src/gui/kernel/qguiapplication.cpp:1643
#30 0x67c9b020 in QWindowSystemInterface::sendWindowSystemEvents (flags=...)
    at /usr/src/debug/qt5-base-5.5.1-1/src/gui/kernel/qwindowsysteminterface.cpp:625
#31 0x64654546 in userEventSourceDispatch (source=0x800a4ea0)
    at /usr/src/debug/qt5-base-5.5.1-1/src/platformsupport/eventdispatchers/qeventdispatcher_glib.cpp:70
#32 0x55ff0173 in g_main_context_dispatch () from /usr/bin/cygglib-2.0-0.dll
#33 0x55ff03da in g_main_context_dispatch () from /usr/bin/cygglib-2.0-0.dll
#34 0x55ff047a in g_main_context_iteration () from /usr/bin/cygglib-2.0-0.dll
#35 0x68dd3b12 in QEventDispatcherGlib::processEvents (this=0x80060710,
    flags=...)
    at /usr/src/debug/qt5-base-5.5.1-1/src/corelib/kernel/qeventdispatcher_glib.cpp:418
#36 0x68d8fd3f in QEventLoop::processEvents (flags=..., this=0x28caac)
    at /usr/src/debug/qt5-base-5.5.1-1/src/corelib/kernel/qeventloop.cpp:128
#37 QEventLoop::exec (this=this@entry=0x28caac, flags=flags@entry=...)
    at /usr/src/debug/qt5-base-5.5.1-1/src/corelib/kernel/qeventloop.cpp:204
#38 0x68d96a43 in QCoreApplication::exec ()
    at /usr/src/debug/qt5-base-5.5.1-1/src/corelib/kernel/qcoreapplication.cpp:1229
#39 0x00404157 in main (argc=2, argv=0x28cc5c)
    at /usr/src/debug/qt5-declarative-5.5.1-1/tools/qmlscene/main.cpp:598

1 个答案:

答案 0 :(得分:1)

尝试将驱动程序还原为版本11.0.9-1

32位也有类似的问题。 https://cygwin.com/ml/cygwin/2016-04/msg00254.html