Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-140738

Crash with cachegen compiled code

XMLWordPrintable

    • Linux/Wayland, Linux/X11
    • 95ed95f54 (dev), bbd52e5d7 (6.10)

      If running the following example I it crashes with a nullpointer exception, running on my target arm64 target and my amd64 PC:

      program
      
      #0  0x00007ffff66a14e4 in QMetaObject::methodOffset() const () from /qt6/lib/libQt6Core.so.6
      #1  0x00007ffff66a1e69 in QMetaObject::method(int) const () from /qt6/lib/libQt6Core.so.6
      #2  0x00007ffff7c30044 in QQmlPrivate::callQObjectMethod(QV4::ExecutionEngine*, QV4::Lookup*, QObject*, void**, int) () from /qt6/lib/libQt6Qml.so.6
      #3  0x00007ffff7c30e25 in QQmlPrivate::AOTCompiledContext::callObjectPropertyLookup(unsigned int, QObject*, void**, int) const () from /qt6/lib/libQt6Qml.so.6
      #4  0x000055555555e72f in QmlCacheGeneratedCode::_qt_qml_app_main_qml::{lambda(QQmlPrivate::AOTCompiledContext const*, void**)#4}::operator()(QQmlPrivate::AOTCompiledContext const*, void**) const::{lambda()#1}::operator()() const ()
      #5  0x000055555555e923 in QmlCacheGeneratedCode::_qt_qml_app_main_qml::{lambda(QQmlPrivate::AOTCompiledContext const*, void**)#4}::operator()(QQmlPrivate::AOTCompiledContext const*, void**) const ()
      #6  0x000055555555eb8d in QmlCacheGeneratedCode::_qt_qml_app_main_qml::{lambda(QQmlPrivate::AOTCompiledContext const*, void**)#4}::_FUN(QQmlPrivate::AOTCompiledContext const*, void**) ()
      #7  0x00007ffff7bfddfd in void QV4::coerceAndCall<AOTCompiledMetaMethod, QV4::Moth::VME::exec(QV4::MetaTypesStackFrame*, QV4::ExecutionEngine*)::{lambda(void**, int)#1}>(QV4::ExecutionEngine*, AOTCompiledMetaMethod const*, void**, QMetaType const*, int, QV4::Moth::VME::exec(QV4::MetaTypesStackFrame*, QV4::ExecutionEngine*)::{lambda(void**, int)#1}) () from /qt6/lib/libQt6Qml.so.6
      #8  0x00007ffff7c0510f in QV4::Moth::VME::exec(QV4::MetaTypesStackFrame*, QV4::ExecutionEngine*) () from /qt6/lib/libQt6Qml.so.6
      #9  0x00007ffff7b282a3 in QV4::Function::call(QObject*, void**, QMetaType const*, int, QV4::ExecutionContext*) () from /qt6/lib/libQt6Qml.so.6
      #10 0x00007ffff7cbe3f8 in QQmlJavaScriptExpression::evaluate(void**, QMetaType const*, int) () from /qt6/lib/libQt6Qml.so.6
      #11 0x00007ffff7c4f513 in QQmlBoundSignalExpression::evaluate(void**) () from /qt6/lib/libQt6Qml.so.6
      #12 0x00007ffff7c4fd20 in QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) () from /qt6/lib/libQt6Qml.so.6
      #13 0x00007ffff7cf2b16 in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () from /qt6/lib/libQt6Qml.so.6
      #14 0x00007ffff7c83d50 in QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) () from /qt6/lib/libQt6Qml.so.6
      #15 0x00007ffff66f3d23 in void doActivate<false>(QObject*, int, void**) () from /qt6/lib/libQt6Core.so.6
      #16 0x00007ffff7cf6620 in QQmlObjectCreator::finalize(QQmlInstantiationInterrupt&) () from /qt6/lib/libQt6Qml.so.6
      #17 0x00007ffff7c61521 in QQmlComponentPrivate::complete(QQmlEnginePrivate*, QQmlComponentPrivate::ConstructionState*) () from /qt6/lib/libQt6Qml.so.6
      #18 0x00007ffff7c669c6 in QQmlComponentPrivate::completeCreate() () from /qt6/lib/libQt6Qml.so.6
      #19 0x00007ffff7c662ec in QQmlComponentPrivate::createWithProperties(QObject*, QMap<QString, QVariant> const&, QQmlContext*, QQmlComponentPrivate::CreateBehavior, bool) () from /qt6/lib/libQt6Qml.so.6
      #20 0x00007ffff7c665cd in QQmlComponent::create(QQmlContext*) () from /qt6/lib/libQt6Qml.so.6
      #21 0x00007ffff7c3fdbb in QQmlApplicationEnginePrivate::finishLoad(QQmlComponent*) () from /qt6/lib/libQt6Qml.so.6
      #22 0x00007ffff7c40383 in QQmlApplicationEnginePrivate::ensureLoadingFinishes(QQmlComponent*) () from /qt6/lib/libQt6Qml.so.6
      #23 0x00007ffff7c40521 in QQmlApplicationEnginePrivate::startLoad(QUrl const&, QByteArray const&, bool) () from /qt6/lib/libQt6Qml.so.6
      #24 0x00007ffff7c40840 in QQmlApplicationEngine::load(QUrl const&) () from /qt6/lib/libQt6Qml.so.6
      #25 0x000055555555ad48 in main () 

       

      If I run with interpretation it works:

      QV4_FORCE_INTERPRETER=1 program
      qml: Function returns: Hej

      If the signal is removed from moduleif.h the crash wont occur either.

       

        1. issue.tar.gz
          20 kB
          Richard Röjfors
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            ulherman Ulf Hermann
            roric-hbl Richard Röjfors
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are 2 open Gerrit changes