我遇到了一个类似于帖子的奇怪的堆栈溢出崩溃:这里
QMutex 试图递归地锁定自身,然后导致崩溃......调用堆栈如下所示:
...(more repeat)
Qt5Cored.dll!QBasicMutex::lockInternal(int timeout) Line 428
Qt5Cored.dll!QBasicMutex::lockInternal() Line 409
Qt5Cored.dll!QMutex::lock() Line 218
Qt5Cored.dll!QMutexLocker::QMutexLocker(QBasicMutex * m) Line 129
Qt5Cored.dll!A0x3737355e::`anonymous namespace'::Q_QGS_freelist::innerFunction() Line 566
Qt5Cored.dll!QGlobalStatic<QFreeList<QMutexPrivate,`anonymous namespace'::FreeListConstants>,&A0x3737355e::`anonymous namespace'::Q_QGS_freelist::innerFunction,A0x3737355e::A0x3737355e::Q_QGS_freelist::guard>::operator()() Line 129
Qt5Cored.dll!QMutexPrivate::allocate() Line 571
Qt5Cored.dll!QBasicMutex::lockInternal(int timeout) Line 428
Qt5Cored.dll!QBasicMutex::lockInternal() Line 409
Qt5Cored.dll!QMutex::lock() Line 218
Qt5Cored.dll!QMutexLocker::QMutexLocker(QBasicMutex * m) Line 129
Qt5Cored.dll!A0x3737355e::`anonymous namespace'::Q_QGS_freelist::innerFunction() Line 566
Qt5Cored.dll!QGlobalStatic<QFreeList<QMutexPrivate,`anonymous namespace'::FreeListConstants>,&A0x3737355e::`anonymous namespace'::Q_QGS_freelist::innerFunction,A0x3737355e::A0x3737355e::Q_QGS_freelist::guard>::operator()() Line 129
Qt5Cored.dll!QMutexPrivate::allocate() Line 571
Qt5Cored.dll!QBasicMutex::lockInternal(int timeout) Line 428
Qt5Cored.dll!QBasicMutex::lockInternal() Line 409
Qt5Cored.dll!QMutex::lock() Line 218
Qt5Cored.dll!QMutexLocker::QMutexLocker(QBasicMutex * m) Line 129
Qt5Cored.dll!A0x3737355e::`anonymous namespace'::Q_QGS_freelist::innerFunction() Line 566
Qt5Cored.dll!QGlobalStatic<QFreeList<QMutexPrivate,`anonymous namespace'::FreeListConstants>,&A0x3737355e::`anonymous namespace'::Q_QGS_freelist::innerFunction,A0x3737355e::A0x3737355e::Q_QGS_freelist::guard>::operator()() Line 129
Qt5Cored.dll!QMutexPrivate::allocate() Line 571
The maximum number of stack frames supported by Visual Studio has been exceeded.
我在Windows 8.1系统上使用qt 5.4.1。
而且由于已超过调用堆栈的最大帧数,我如何检查哪个函数/调用启动了这种无休止的递归?
错误报告可用。我希望他们能尽快修复它。