Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.7.0 Beta
-
- Windows 10 x64,
- Intel Parallel Studio XE 2016 Update 1,
- Visual Studio 2015 Update 1,
- Windows SDK 10.0.10586.15,
- Qt 5.7-dev (http://code.qt.io/cgit/qt/qt5.git/log/?h=5.7 ).
-
b084739b89fbd32047d454075daf147073926f18
Description
Hi, Everyone,
Got runtime error in uic.exe for Qt builds using ICC on Windows. Visual Studio Debugger output:
Output: 'uic.exe' (Win32): Loaded 'c:\libQT-5.7-dev\src\qtbase\bin\uic.exe'. Symbols loaded. 'uic.exe' (Win32): Loaded 'C:\Windows\System32\ntdll.dll'. Cannot find or open the PDB file. [snip] 'uic.exe' (Win32): Loaded 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.1.146\windows\redist\intel64_win\compiler\libmmd.dll'. Module was built without symbols. 'uic.exe' (Win32): Loaded 'c:\libICU-57.1\ICC64d\bin\icudt57.dll'. Cannot find or open the PDB file. 'uic.exe' (Win32): Loaded 'C:\Windows\System32\imm32.dll'. Cannot find or open the PDB file. 'uic.exe' (Win32): Loaded 'C:\Windows\System32\uxtheme.dll'. Cannot find or open the PDB file. 'uic.exe' (Win32): Loaded 'C:\Windows\System32\msctf.dll'. Cannot find or open the PDB file. 'uic.exe' (Win32): Loaded 'C:\Windows\System32\dwmapi.dll'. Cannot find or open the PDB file. The thread 0xc64 has exited with code 0 (0x0). uic.exe has triggered a breakpoint. Call stack: > Qt5Cored.dll!qt_message_fatal(QtMsgType, const QMessageLogContext & context, const QString & message) Line 1643 C++ Locals: + context {version=2 line=3071 file=0x00000000527f8d20 "global\\qglobal.cpp" ...} const QMessageLogContext & + contextFileL 0x00000076c431e4e0 {103, 108, 111, 98, 97, 108, 92, 113, 103, 108, 111, 98, 97, 108, 46, 99, 112, 112, ...} unsigned short[256] + message ASSERT failure in QMutexLocker: "QMutex pointer is misaligned", file c:\libQT-5.7-dev\src\qtbase\include\QtCore\../../src/corelib/thread/qmutex.h, line 133 const QString & reportMode 4 int ret 1 int Qt5Cored.dll!QMessageLogger::fatal(const char * const msg) Line 792 C++ Locals: + this 0x00000076c431e810 {context={version=2 line=3071 file=0x00000000527f8d20 "global\\qglobal.cpp" ...} } const QMessageLogger * + ap 0x0000000000000000 <NULL> char * + message ASSERT failure in QMutexLocker: "QMutex pointer is misaligned", file c:\libQT-5.7-dev\src\qtbase\include\QtCore\../../src/corelib/thread/qmutex.h, line 133 QString + msg 0x00000000527f8d3b "ASSERT failure in %s: \"%s\", file %s, line %d" const char * const Qt5Cored.dll!qt_assert_x(const char * where, const char * what, const char * file, int line) Line 3072 C++ Locals: + file 0x00000000527a8100 "c:\\libQT-5.7-dev\\src\\qtbase\\include\\QtCore\\../../src/corelib/thread/qmutex.h" const char * const line 133 int + what 0x00000000527a815a "QMutex pointer is misaligned" const char * const + where 0x00000000527a814d "QMutexLocker" const char * const Qt5Cored.dll!QMutexLocker::QMutexLocker(QBasicMutex * m) Line 134 C++ Locals: - this 0x00000076c431e8d0 {val=2512579497768 } QMutexLocker * val 2512579497768 unsigned __int64 - m 0xcdcdcdcdcdcdcdcd {d_ptr={_q_value=??? } } QBasicMutex * - d_ptr {_q_value=??? } QBasicAtomicPointer<QMutexData> - _q_value ??? std::atomic<QBasicAtomicPointer<QMutexData>::Type> [value] <Unable to read memory> - [Raw View] {...} std::atomic<QBasicAtomicPointer<QMutexData>::Type> - std::_Atomic_address {_My_val=??? } std::_Atomic_address _My_val <Unable to read memory> Qt5Cored.dll!resolveTimerAPI() Line 301 C++ Locals: + locker {val=2512579497768 } QMutexLocker triedResolve false bool Qt5Cored.dll!QEventDispatcherWin32Private::QEventDispatcherWin32Private() Line 324 C++ Locals: 0x0000024901688ec0 {threadId=4164 interrupt=false closingDown=false ...} Qt5Cored.dll!QEventDispatcherWin32::QEventDispatcherWin32(QObject * parent) Line 727 C++ Locals: + this 0x000002490169e210 {...} QEventDispatcherWin32 * + parent 0x00000076c431efa8 {...} QObject * const {QCoreApplication} Qt5Cored.dll!QCoreApplicationPrivate::createEventDispatcher() Line 504 C++ Locals: + this 0x00000249016847c0 {quitLockRef={...} argc=3 argv=0x000002490167a5b0 {0x000002490167a5d0 "C:\\libQT-5.7-dev\\src\\qtbase\\bin\\uic.exe"} ...} QCoreApplicationPrivate * + q 0x00000076c431efa8 {...} QCoreApplication * Qt5Cored.dll!QCoreApplicationPrivate::init() Line 788 C++ Locals: + this 0x00000249016847c0 {quitLockRef={...} argc=3 argv=0x000002490167a5b0 {0x000002490167a5d0 "C:\\libQT-5.7-dev\\src\\qtbase\\bin\\uic.exe"} ...} QCoreApplicationPrivate * + appPaths 0x0000000000000000 <NULL> QStringList * + manualPaths 0x0000000000000000 <NULL> QStringList * + newPaths { size = -23716663 } QStringList + q 0x00000076c431efa8 {...} QCoreApplication * Qt5Cored.dll!QCoreApplication::QCoreApplication(int & argc, char * * argv, int _internal) Line 729 C++ Locals: + this 0x00000076c431efa8 {...} QCoreApplication * _internal 329472 int argc 3 int & + argv 0x000002490167a5b0 {0x000002490167a5d0 "C:\\libQT-5.7-dev\\src\\qtbase\\bin\\uic.exe"} char * * const uic.exe!runUic(int argc, char * * argv) Line 48 C++ uic.exe!main(int argc, char * * argv) Line 156 C++ uic.exe!invoke_main() Line 75 C++ uic.exe!__scrt_common_main_seh() Line 264 C++ uic.exe!__scrt_common_main() Line 309 C++ uic.exe!mainCRTStartup() Line 17 C++ kernel32.dll!00007ffe4beb8102() Unknown ntdll.dll!00007ffe4c01c264() Unknown
Used build commands:
configure -prefix "%CD%\..\ICC64d\dll" -debug -opensource -c++std c++11 -shared -plugin-sql-sqlite -opengl dynamic -openvg -platform win32-icc -iconv -no-pch -qt-zlib -qt-pcre -icu -I "%CD%\..\..\libICU-57.1\ICC64d\include" -L "%CD%\..\..\libICU-57.1\ICC64d\lib" -qt-libpng -qt-libjpeg -avx -openssl -I "%CD%\..\..\libOPENSSL-1.1.0-dev\ICC64d\dll\include" -L "%CD%\..\..\libOPENSSL-1.1.0-dev\ICC64d\dll\lib" -dbus-runtime -confirm-license >_configure.log && jom configure -prefix "%CD%\..\ICC64r\lib" -release -opensource -c++std c++11 -static -plugin-sql-sqlite -opengl desktop -openvg -I "%CD%\..\..\libMESA-11.2-dev\ICC64r\include" -platform win32-icc -iconv -no-pch -qt-zlib -qt-pcre -icu -I "%CD%\..\..\libICU-57.1\ICC64r\include" -L "%CD%\..\..\libICU-57.1\ICC64r\lib" -qt-libpng -qt-libjpeg -avx -openssl -I "%CD%\..\..\libOPENSSL-1.1.0-dev\ICC64r\lib\include" -L "%CD%\..\..\libOPENSSL-1.1.0-dev\ICC64r\lib\lib" -dbus-runtime -confirm-license >_configure.log && jom
Error reproduced for Debug+shared and Release+static configurations, but, probably, inherent to all other. It reproduces for ICC builds only, but not for Mingw-w64 or MSVC builds.
It appeared after recent update in Qt-5.7-dev branch, and didn't reproduce with previous update.
Since it breaks all Qt builds using ICC on Windows, is it possible to fix it in hot pursuit?
Regards,
Alexander
Attachments
For Gerrit Dashboard: QTBUG-53360 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
159225,3 | Revert "QMutexPool: avoid QVarLengthArray of QAtomicPointers" | 5.7.0 | qt/qtbase | Status: MERGED | +2 | 0 |