I have a complex mixed QML and C++ desktop application where I get crashes
when closing the program.
I use Qt-5.5.1/msvc2013 (32 bit) on Windows 7.
I did not yet report a bug because I could not produce a small sample
program to reproduce the bug.

The problem seems to be a double free of the OpenGL context a program end.
A pre-condition of the crash seems to be that the program opens a second QML
ApplicationWindow or a QML Dialog.
Before the crash I always see the message "External WM_DESTROY received for
..." in the debug output.
(qtbase\src\plugins\platforms\windows\qwindowscontext.cpp line 933).

Does anybody have an idea how to prevent or fix this crash?

Best regards,

Helmut

The call stack at the crash is:

        Qt5Cored.dll!qt_message_fatal(QtMsgType __formal, const
QMessageLogContext & context, const QString & message) Line 1571        C++
        Qt5Cored.dll!QMessageLogger::fatal(const char * msg, ...) Line 781
C++
        Qt5Cored.dll!qt_assert(const char * assertion, const char * file,
int line) Line 2966     C++
>       Qt5Guid.dll!qt_gl_functions(QOpenGLContext * context) Line 214  C++
        Qt5Guid.dll!`anonymous
namespace'::Resolver<QOpenGLFunctionsPrivate,void (__stdcall*)(int,unsigned
int const *),3,void>::operator()<int,unsigned int const *>(int p1, const
unsigned int * p2) Line 2355    C++
        Qt5Guid.dll!qopenglfResolveDeleteRenderbuffers(int n, const unsigned
int * renderbuffers) Line 2813  C++
        Qt5Guid.dll!QOpenGLFunctions::glDeleteRenderbuffers(int n, const
unsigned int * renderbuffers) Line 1323 C++
        Qt5Quickd.dll!QSGDefaultDepthStencilBuffer::free() Line 146     C++
 
Qt5Quickd.dll!QSGDefaultDepthStencilBuffer::~QSGDefaultDepthStencilBuffer()
Line 140        C++
        [External Code] 
 
Qt5Quickd.dll!QtSharedPointer::CustomDeleter<QSGDepthStencilBuffer,QtSharedP
ointer::NormalDeleter>::execute() Line 189      C++
 
Qt5Quickd.dll!QtSharedPointer::ExternalRefCountWithCustomDeleter<QSGDepthSte
ncilBuffer,QtSharedPointer::NormalDeleter>::deleter(QtSharedPointer::Externa
lRefCountData * self) Line 211  C++
        Qt5Quickd.dll!QtSharedPointer::ExternalRefCountData::destroy() Line
151     C++
 
Qt5Quickd.dll!QSharedPointer<QSGDepthStencilBuffer>::deref(QtSharedPointer::
ExternalRefCountData * d) Line 474      C++
        Qt5Quickd.dll!QSharedPointer<QSGDepthStencilBuffer>::deref() Line
467     C++
 
Qt5Quickd.dll!QSharedPointer<QSGDepthStencilBuffer>::~QSharedPointer<QSGDept
hStencilBuffer>() Line 306      C++
        Qt5Quickd.dll!QSGDefaultLayer::~QSGDefaultLayer() Line 106      C++
        [External Code] 
        Qt5Quickd.dll!QQuickShaderEffectSource::invalidateSceneGraph() Line
698     C++
        Qt5Quickd.dll!QQuickShaderEffectSource::qt_static_metacall(QObject *
_o, QMetaObject::Call _c, int _id, void * * _a) Line 191        C++
        Qt5Cored.dll!QMetaMethod::invoke(QObject * object,
Qt::ConnectionType connectionType, QGenericReturnArgument returnValue,
QGenericArgument val0, QGenericArgument val1, QGenericArgument val2,
QGenericArgument val3, QGenericArgument val4, QGenericArgument val5,
QGenericArgument val6, QGenericArgument val7, QGenericArgument val8,
QGenericArgument val9) Line 2212        C++
        Qt5Cored.dll!QMetaMethod::invoke(QObject * object,
Qt::ConnectionType connectionType, QGenericArgument val0, QGenericArgument
val1, QGenericArgument val2, QGenericArgument val3, QGenericArgument val4,
QGenericArgument val5, QGenericArgument val6, QGenericArgument val7,
QGenericArgument val8, QGenericArgument val9) Line 118  C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2690       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2691       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2691       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2691       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2691       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2691       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2691       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2691       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2691       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2691       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2691       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2691       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2691       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2691       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2691       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2691       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2691       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem
* item) Line 2691       C++
        Qt5Quickd.dll!QQuickWindowPrivate::cleanupNodesOnShutdown() Line
2699    C++
        Qt5Quickd.dll!QSGRenderThread::invalidateOpenGL(QQuickWindow *
window, bool inDestructor, QOffscreenSurface * fallback) Line 461       C++
        Qt5Quickd.dll!QSGRenderThread::event(QEvent * e) Line 383       C++
        Qt5Quickd.dll!QSGRenderThread::processEventsAndWaitForMore() Line
659     C++
        Qt5Quickd.dll!QSGRenderThread::run() Line 687   C++
        Qt5Cored.dll!QThreadPrivate::start(void * arg) Line 369 C++
        [External Code] 

_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to