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

SIGILL when running simple Qt Quick application on an Android emulator

    XMLWordPrintable

Details

    • Android

    Description

      After applying https://codereview.qt-project.org/#/c/259569/ to qtquickcontrols2 and running the test, I get the following crash:

      SIGILL
      Illegal instruction
      
      1  QRgba64::fromRgba64                                                                                                                                                                      qrgba64.h                 74   0xa4b1fdba 
      2  QRgba64::fromRgba64                                                                                                                                                                      qrgba64.h                 79   0xa4b1fe78 
      3  qRgba64                                                                                                                                                                                  qrgba64.h                 194  0xa4c3c5fc 
      4  get_hex_rgb                                                                                                                                                                              qcolor.cpp                114  0xa4ecf6cb 
      5  get_hex_rgb                                                                                                                                                                              qcolor.cpp                135  0xa4ed979c 
      6  QColor::setColorFromString<QStringView>                                                                                                                                                  qcolor.cpp                960  0xa4ed9e6a 
      7  QColor::setNamedColor                                                                                                                                                                    qcolor.cpp                890  0xa4ed0686 
      8  QColor::QColor                                                                                                                                                                           qcolor.h                  297  0xa3a1598a 
      9  QQuickColorProvider::rgbaFromString                                                                                                                                                      qquickglobal.cpp          78   0xa3a3a982 
      10 QQmlStringConverters::rgbaFromString                                                                                                                                                     qqmlstringconverters.cpp  106  0xa453b0e3 
      11 QQmlPropertyValidator::validateLiteralBinding                                                                                                                                            qqmlpropertyvalidator.cpp 414  0xa419503b 
      12 QQmlPropertyValidator::validateObject                                                                                                                                                    qqmlpropertyvalidator.cpp 262  0xa4193339 
      13 QQmlPropertyValidator::validateObject                                                                                                                                                    qqmlpropertyvalidator.cpp 206  0xa4192867 
      14 QQmlPropertyValidator::validateObject                                                                                                                                                    qqmlpropertyvalidator.cpp 206  0xa4192867 
      15 QQmlPropertyValidator::validate                                                                                                                                                          qqmlpropertyvalidator.cpp 61   0xa4190fa7 
      16 QQmlTypeData::done                                                                                                                                                                       qqmltypeloader.cpp        2381 0xa454b31a 
      17 QQmlDataBlob::tryDone                                                                                                                                                                    qqmltypeloader.cpp        675  0xa453e323 
      18 QQmlTypeLoader::setData                                                                                                                                                                  qqmltypeloader.cpp        1312 0xa4541444 
      19 QQmlTypeLoader::setData                                                                                                                                                                  qqmltypeloader.cpp        1292 0xa45410dd 
      20 QQmlTypeLoader::loadThread                                                                                                                                                               qqmltypeloader.cpp        1162 0xa45404be 
      21 PlainLoader::loadThread                                                                                                                                                                  qqmltypeloader.cpp        1007 0xa4564eb1 
      22 QQmlTypeLoader::doLoad<PlainLoader>                                                                                                                                                      qqmltypeloader.cpp        1066 0xa4557aae 
      23 QQmlTypeLoader::load                                                                                                                                                                     qqmltypeloader.cpp        1098 0xa4540b1a 
      24 QQmlTypeLoader::getType                                                                                                                                                                  qqmltypeloader.cpp        1697 0xa45459c9 
      25 QQmlTypeData::resolveTypes                                                                                                                                                               qqmltypeloader.cpp        2745 0xa455003e 
      26 QQmlTypeData::allDependenciesDone                                                                                                                                                        qqmltypeloader.cpp        2621 0xa454f355 
      27 QQmlTypeLoader::setData                                                                                                                                                                  qqmltypeloader.cpp        1305 0xa45413eb 
      28 QQmlTypeLoader::setData                                                                                                                                                                  qqmltypeloader.cpp        1292 0xa45410dd 
      29 QQmlTypeLoader::loadThread                                                                                                                                                               qqmltypeloader.cpp        1162 0xa45404be 
      30 QQmlTypeLoaderThread::loadThread                                                                                                                                                         qqmltypeloader.cpp        905  0xa453f751 
      31 void QQmlThread::callMethodInThread<QQmlDataBlob *, QQmlDataBlob *, QQmlTypeLoaderThread>(void (QQmlTypeLoaderThread:: *)(QQmlDataBlob *), QQmlDataBlob * const&)::I::call(QQmlThread *) qqmlthread_p.h            164  0xa4563ae7 
      32 QQmlThreadPrivate::threadEvent                                                                                                                                                           qqmlthread.cpp            197  0xa46456ca 
      33 QQmlThreadPrivate::event                                                                                                                                                                 qqmlthread.cpp            135  0xa46455b9 
      34 QCoreApplicationPrivate::notify_helper                                                                                                                                                   qcoreapplication.cpp      1220 0xa576978c 
      35 doNotify                                                                                                                                                                                 qcoreapplication.cpp      1150 0xa57690db 
      36 QCoreApplication::notify                                                                                                                                                                 qcoreapplication.cpp      1136 0xa5769220 
      37 QGuiApplication::notify                                                                                                                                                                  qguiapplication.cpp       1791 0xa4b6f952 
      38 QCoreApplication::notifyInternal2                                                                                                                                                        qcoreapplication.cpp      1060 0xa5768f79 
      39 QCoreApplication::sendEvent                                                                                                                                                              qcoreapplication.cpp      1450 0xa576a057 
      40 QCoreApplicationPrivate::sendPostedEvents                                                                                                                                                qcoreapplication.cpp      1799 0xa576adc7 
      41 QEventDispatcherUNIX::processEvents                                                                                                                                                      qeventdispatcher_unix.cpp 466  0xa58493c3 
      42 QEventLoop::processEvents                                                                                                                                                                qeventloop.cpp            138  0xa5761d01 
      43 QEventLoop::exec                                                                                                                                                                         qeventloop.cpp            225  0xa5761fd9 
      44 QThread::exec                                                                                                                                                                            qthread.cpp               531  0xa5407090 
      45 QQmlThreadPrivate::run                                                                                                                                                                   qqmlthread.cpp            148  0xa46457c6 
      46 QThreadPrivate::start                                                                                                                                                                    qthread_unix.cpp          361  0xa540a900 
      47 __pthread_start(void *)                                                                                                                                                                                                 0xb76a7b49 
      48 __start_thread                                                                                                                                                                                                          0xb76a2faa 
      49 __bionic_clone                                                                                                                                                                                                          0xb7699b97 
      

      The issue can be reproduced with a simple Qt Quick application:

      import QtQuick 2.9
      import QtQuick.Window 2.2
      
      Window {
          visible: true
          width: 640
          height: 480
          color: "#353637"
      }
      

      And an even simpler C++ GUI application:

      #include <QGuiApplication>
      #include <QColor>
      #include <QDebug>
      
      int main(int argc, char *argv[])
      {
          QGuiApplication app(argc, argv);
      
          qDebug() << QColor("#353637");
      
          return 0;
      }
      

      The disassembly (the debugger is pointing to 0xa4a9ddba):

              73 [1]	    {
      0xa4a9dda0                  55                 push   %ebp
      0xa4a9dda1  <+    1>        89 e5              mov    %esp,%ebp
      0xa4a9dda3  <+    3>        83 e4 f8           and    $0xfffffff8,%esp
      0xa4a9dda6  <+    6>        83 ec 18           sub    $0x18,%esp
      0xa4a9dda9  <+    9>        8b 45 08           mov    0x8(%ebp),%eax
      0xa4a9ddac  <+   12>        8b 4d 0c           mov    0xc(%ebp),%ecx
      0xa4a9ddaf  <+   15>        8b 55 10           mov    0x10(%ebp),%edx
      0xa4a9ddb2  <+   18>        89 4c 24 08        mov    %ecx,0x8(%esp)
      0xa4a9ddb6  <+   22>        89 54 24 0c        mov    %edx,0xc(%esp)
              74 [1]	        return QRgba64(c);
      0xa4a9ddba  <+   26>        c5 fb 10 44 24 08  vmovsd 0x8(%esp),%xmm0
      0xa4a9ddc0  <+   32>        c5 fb 11 44 24 10  vmovsd %xmm0,0x10(%esp)
      0xa4a9ddc6  <+   38>        8b 4d 08           mov    0x8(%ebp),%ecx
              67 [1]	    explicit Q_ALWAYS_INLINE Q_DECL_CONSTEXPR QRgba64(quint64 c) : rgba(c) { }
      0xa4a9ddc9  <+   41>        c5 fb 10 44 24 10  vmovsd 0x10(%esp),%xmm0
      0xa4a9ddcf  <+   47>        c5 fb 11 01        vmovsd %xmm0,(%ecx)
              74 [1]	        return QRgba64(c);
      0xa4a9ddd3  <+   51>        89 ec              mov    %ebp,%esp
      0xa4a9ddd5  <+   53>        5d                 pop    %ebp
      0xa4a9ddd6  <+   54>        c2 04 00           ret    $0x4
      

      Attachments

        1. qtbug75378.zip
          2 kB
          Tapio Oksa

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              whoistheguilty Tapio Oksa
              mitch_curtis Mitch Curtis
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes