Details
-
Bug
-
Resolution: Fixed
-
P1: Critical
-
6.5.2, 6.5.6
-
Windows 10
-
fa26df82d (dev), 097712ae7 (dev), 7a8150c62 (6.8), 126b931c4 (6.8), f6727318c (tqtc/lts-6.5), aeb8c3b7c (tqtc/lts-6.5), bb92ec3be (tqtc/lts-6.2), b3b071f9f (tqtc/lts-6.2)
Description
The pre-built libraries from our online installer don't crash. But when the customer built Qt with -ltcg, it crashes the attached project (only in Release mode, not Debug mode):
Exception thrown at 0x00007FFE0D1F7F3D (Qt6QmlRTIL.dll) in appuntitled.exe: 0xC0000005: Access violation reading location 0x0000000000000030. Callstack: > Qt6QmlRTIL.dll!QQmlPrivate::AOTCompiledContext::loadAttachedLookup(unsigned int index, QObject * object, void * target) Line 1631 C++ qtquickcontrols2fusionstylertilplugin.dll!QmlCacheGeneratedCode::_qt_0x2d_project_0x2e_org_imports_QtQuick_Controls_Fusion_Drawer_qml::<lambda_1>::()::__l2::<lambda_1>::operator()(const QQmlPrivate::AOTCompiledContext * aotContext, void * *) Line 964 C++ [Inline Frame] qtquickcontrols2fusionstylertilplugin.dll!QmlCacheGeneratedCode::_qt_0x2d_project_0x2e_org_imports_QtQuick_Controls_Fusion_Drawer_qml::wrapCall(const QQmlPrivate::AOTCompiledContext *) Line 948 C++ [Inline Frame] qtquickcontrols2fusionstylertilplugin.dll!QmlCacheGeneratedCode::_qt_0x2d_project_0x2e_org_imports_QtQuick_Controls_Fusion_Drawer_qml::<lambda_1>::operator()(const QQmlPrivate::AOTCompiledContext *) Line 958 C++ qtquickcontrols2fusionstylertilplugin.dll!QmlCacheGeneratedCode::_qt_0x2d_project_0x2e_org_imports_QtQuick_Controls_Fusion_Drawer_qml::<lambda_1>::<lambda_invoker_cdecl>(const QQmlPrivate::AOTCompiledContext * aotContext, void * dataPtr, void * * argumentsPtr) Line 979 C++ [Inline Frame] Qt6QmlRTIL.dll!QV4::MetaTypesStackFrame::returnValue() Line 138 C++ Qt6QmlRTIL.dll!QV4::Moth::VME::exec(QV4::MetaTypesStackFrame * frame, QV4::ExecutionEngine * engine) Line 507 C++ Qt6QmlRTIL.dll!QV4::Function::call(QObject * thisObject, void * * a, const QMetaType * types, int argc, QV4::ExecutionContext * context) Line 39 C++ Qt6QmlRTIL.dll!QQmlJavaScriptExpression::evaluate(void * * a, const QMetaType * types, int argc) Line 274 C++ [Inline Frame] Qt6QmlRTIL.dll!QQmlBinding::evaluate(void * result, QMetaType type) Line 84 C++ Qt6QmlRTIL.dll!QQmlBinding::doUpdate(const QQmlJavaScriptExpression::DeleteWatcher & watcher, QFlags<enum QQmlPropertyData::WriteFlag> flags, QV4::Scope & scope) Line 688 C++ Qt6QmlRTIL.dll!QQmlBinding::update(QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 166 C++ Qt6QmlRTIL.dll!QQmlBinding::setEnabled(bool e, QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 620 C++ Qt6QmlRTIL.dll!QV4::QObjectWrapper::getProperty(QV4::ExecutionEngine * engine, QV4::Heap::Object * wrapper, QObject * object, const QQmlPropertyData * property, QFlags<enum QV4::QObjectWrapper::Flag> flags) Line 255 C++ Qt6QmlRTIL.dll!QV4::QObjectWrapper::getQmlProperty(QV4::ExecutionEngine * engine, const QQmlRefPointer<QQmlContextData> & qmlContext, QV4::Heap::Object * wrapper, QObject * object, QV4::String * name, QFlags<enum QV4::QObjectWrapper::Flag> flags, bool * hasProperty, const QQmlPropertyData * * property) Line 416 C++ Qt6QmlRTIL.dll!QV4::QQmlContextWrapper::getPropertyAndBase(const QV4::QQmlContextWrapper * resource, QV4::PropertyKey id, const QV4::Value * receiver, bool * hasProperty, QV4::Value * base, QV4::Lookup * lookup) Line 324 C++ Qt6QmlRTIL.dll!QV4::QQmlContextWrapper::resolveQmlContextPropertyLookupGetter(QV4::Lookup * l, QV4::ExecutionEngine * engine, QV4::Value * base) Line 517 C++ Qt6QmlRTIL.dll!QV4::Moth::VME::interpret(QV4::JSTypesStackFrame * frame, QV4::ExecutionEngine * engine, const char * code) Line 678 C++ Qt6QmlRTIL.dll!QV4::Moth::VME::exec(QV4::JSTypesStackFrame * frame, QV4::ExecutionEngine * engine) Line 555 C++ Qt6QmlRTIL.dll!QV4::doCall(QV4::Function * self, const QV4::Value * thisObject, const QV4::Value * argv, int argc, QV4::ExecutionContext * context) Line 55 C++ Qt6QmlRTIL.dll!QQmlJavaScriptExpression::evaluate(QV4::CallData * callData, bool * isUndefined) Line 238 C++ Qt6QmlRTIL.dll!QQmlBinding::evaluate(bool * isUndefined) Line 189 C++ Qt6QmlRTIL.dll!QQmlBinding::doUpdate(const QQmlJavaScriptExpression::DeleteWatcher & watcher, QFlags<enum QQmlPropertyData::WriteFlag> flags, QV4::Scope & scope) Line 698 C++ Qt6QmlRTIL.dll!QQmlBinding::update(QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 166 C++ Qt6QmlRTIL.dll!QQmlBinding::setEnabled(bool e, QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 620 C++ Qt6QmlRTIL.dll!QV4::QObjectWrapper::getProperty(QV4::ExecutionEngine * engine, QV4::Heap::Object * wrapper, QObject * object, const QQmlPropertyData * property, QFlags<enum QV4::QObjectWrapper::Flag> flags) Line 255 C++ Qt6QmlRTIL.dll!QV4::QObjectWrapper::lookupPropertyGetterImpl<`QV4::Lookup::getterQObject'::`2'::<lambda_1>>(QV4::Lookup * lookup, QV4::ExecutionEngine * engine, const QV4::Value & object, QFlags<enum QV4::QObjectWrapper::Flag> flags, QV4::Lookup::getterQObject::__l2::<lambda_1> revertLookup) Line 298 C++ Qt6QmlRTIL.dll!QV4::Lookup::getterQObject(QV4::Lookup * lookup, QV4::ExecutionEngine * engine, const QV4::Value & object) Line 402 C++ Qt6QmlRTIL.dll!QV4::QObjectWrapper::virtualResolveLookupGetter(const QV4::Object * object, QV4::ExecutionEngine * engine, QV4::Lookup * lookup) Line 1026 C++ Qt6QmlRTIL.dll!QV4::Moth::VME::interpret(QV4::JSTypesStackFrame * frame, QV4::ExecutionEngine * engine, const char * code) Line 743 C++ Qt6QmlRTIL.dll!QV4::Moth::VME::exec(QV4::JSTypesStackFrame * frame, QV4::ExecutionEngine * engine) Line 555 C++ Qt6QmlRTIL.dll!QV4::doCall(QV4::Function * self, const QV4::Value * thisObject, const QV4::Value * argv, int argc, QV4::ExecutionContext * context) Line 55 C++ Qt6QmlRTIL.dll!QQmlJavaScriptExpression::evaluate(QV4::CallData * callData, bool * isUndefined) Line 238 C++ Qt6QmlRTIL.dll!QQmlBinding::evaluate(bool * isUndefined) Line 189 C++ Qt6QmlRTIL.dll!QQmlBinding::doUpdate(const QQmlJavaScriptExpression::DeleteWatcher & watcher, QFlags<enum QQmlPropertyData::WriteFlag> flags, QV4::Scope & scope) Line 698 C++ Qt6QmlRTIL.dll!QQmlBinding::update(QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 166 C++ Qt6QmlRTIL.dll!QQmlBinding::setEnabled(bool e, QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 620 C++ Qt6QmlRTIL.dll!QQmlObjectCreator::finalize(QQmlInstantiationInterrupt & interrupt) Line 1437 C++ Qt6QmlRTIL.dll!QQmlComponentPrivate::complete(QQmlEnginePrivate * enginePriv, QQmlComponentPrivate::ConstructionState * state) Line 1140 C++ Qt6QmlRTIL.dll!QQmlComponentPrivate::completeCreate() Line 1242 C++ Qt6QmlRTIL.dll!QQmlComponentPrivate::createWithProperties(QObject * parent, const QMap<QString,QVariant> & properties, QQmlContext * context, QQmlComponentPrivate::CreateBehavior behavior) Line 959 C++ Qt6QmlRTIL.dll!QQmlComponent::create(QQmlContext * context) Line 909 C++ Qt6QmlRTIL.dll!QQmlApplicationEnginePrivate::finishLoad(QQmlComponent * c) Line 137 C++
It seems to occur because l->qmlTypeLookup.qmlTypeWrapper is null in the -ltcg libraries, but non-null in the pre-built libraries.
Versions that triggered the crash
- Visual Studio 17.2, 17.6 17.8 and 17.11
- Qt 6.5.2 and 6.5.6