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

ASSERT failure in QList<T>::at: "index out of range" on qmake process.

    XMLWordPrintable

Details

    Description

      The content of fooapp.pro listed as below.

      QMAKE_LFLAGS_X86_64 += FOO -Xarch_x86_64
      
      greaterThan(QT_MAJOR_VERSION, 4) {
         QT += widgets
      }
      
      SOURCES = FooApp.cpp main.cpp
      HEADERS = FooApp.h
      

      Running qmake against it will show the below assert message.

      qts-MacBook-Pro:fooapp qt$ ../qt-everywhere-commercial-src-4.8.4-build/bin/qmake -v
      QMake version 2.01a
      Using Qt version 4.8.4 in /Users/qt/Downloads/qt-everywhere-commercial-src-4.8.4-build//lib
      qts-MacBook-Pro:fooapp qt$ ../qt-everywhere-commercial-src-4.8.4-build/bin/qmakeWARNING: Failure to find: FooApp.cpp
      WARNING: Failure to find: main.cpp
      WARNING: Failure to find: FooApp.h
      ASSERT failure in QList<T>::at: "index out of range", file /Users/qt/Downloads/qt-everywhere-commercial-src-4.8.4-build/include/QtCore/../../../qt-everywhere-commercial-src-4.8.4/src/corelib/tools/qlist.h, line 447
      Abort trap: 6
      qts-MacBook-Pro:fooapp qt$
      

      Running GDB against qmake shows the below logs.

      qts-MacBook-Pro:fooapp qt$ gdb ../qt-everywhere-commercial-src-4.8.4-build/bin/qmake
      GNU gdb 6.3.50-20050815 (Apple version gdb-1822) (Sun Aug  5 03:00:42 UTC 2012)
      Copyright 2004 Free Software Foundation, Inc.
      GDB is free software, covered by the GNU General Public License, and you are
      welcome to change it and/or distribute copies of it under certain conditions.
      Type "show copying" to see the conditions.
      There is absolutely no warranty for GDB.  Type "show warranty" for details.
      This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ...... done
      
      (gdb) run
      Starting program: /Users/qt/Downloads/qt-everywhere-commercial-src-4.8.4-build/bin/qmake
      Reading symbols for shared libraries +++++................................................................................................. done
      WARNING: Failure to find: FooApp.cpp
      WARNING: Failure to find: main.cpp
      WARNING: Failure to find: FooApp.h
      ASSERT failure in QList<T>::at: "index out of range", file /Users/qt/Downloads/qt-everywhere-commercial-src-4.8.4-build/include/QtCore/../../../qt-everywhere-commercial-src-4.8.4/src/corelib/tools/qlist.h, line 447
      
      Program received signal SIGABRT, Aborted.
      0x00007fff89268212 in __pthread_kill ()
      (gdb) bt
      #0  0x00007fff89268212 in __pthread_kill ()
      #1  0x00007fff8af72af4 in pthread_kill ()
      #2  0x00007fff8afb6dce in abort ()
      #3  0x00000001003ec6f9 in qt_message_output (msgType=QtFatalMsg, buf=0x1028467f8 "ASSERT failure in QList<T>::at: \"index out of range\", file /Users/qt/Downloads/qt-everywhere-commercial-src-4.8.4-build/include/QtCore/../../../qt-everywhere-commercial-src-4.8.4/src/corelib/tools/qli"...) at qglobal.cpp:2301
      #4  0x00000001003ec856 in qt_message (msgType=QtFatalMsg, msg=0x1005e92d0 "ASSERT failure in %s: \"%s\", file %s, line %d", ap=0x7fff5fbfe190) at qglobal.cpp:2347
      #5  0x00000001003eca94 in qFatal (msg=0x1005e92d0 "ASSERT failure in %s: \"%s\", file %s, line %d") at qglobal.cpp:2530
      #6  0x00000001003ecaf2 in qt_assert_x (where=0x1005dc158 "QList<T>::at", what=0x1005eb880 "index out of range", file=0x1005de5e0 "/Users/qt/Downloads/qt-everywhere-commercial-src-4.8.4-build/include/QtCore/../../../qt-everywhere-commercial-src-4.8.4/src/corelib/tools/qlist.h", line=447) at qglobal.cpp:2004
      #7  0x00000001001885f7 in QList<QString>::at (this=0x10280ed48, i=7) at qlist.h:447
      #8  0x0000000100157074 in UnixMakefileGenerator::processPrlFiles (this=0x102809050) at unixmake.cpp:644
      #9  0x00000001000722e8 in MakefileGenerator::setProjectFile (this=0x102809050, p=0x7fff5fbff768) at makefile.cpp:291
      #10 0x00000001001dc1c9 in MetaMakefileGenerator::createMakefileGenerator (proj=0x7fff5fbff768, noIO=false) at metamakefile.cpp:480
      #11 0x00000001001d90f1 in BuildsMetaMakefileGenerator::init (this=0x102813870) at metamakefile.cpp:118
      #12 0x00000001001dae68 in MetaMakefileGenerator::createMetaGenerator (proj=0x7fff5fbff768, name=@0x7fff5fbff8e8, op=false, success=0x7fff5fbff71f) at metamakefile.cpp:496
      #13 0x0000000100052829 in runQMake (argc=1, argv=0x7fff5fbffaf0) at main.cpp:152
      #14 0x0000000100053300 in main (argc=1, argv=0x7fff5fbffaf0) at main.cpp:174
      (gdb) quit
      The program is running.  Exit anyway? (y or n) y
      qts-MacBook-Pro:fooapp qt$
      

      This issue is not reproducible with Qt 5.0.0 version. See the logs below.

      qts-MacBook-Pro:fooapp qt$ ../../QtCommercial5.0.0/5.0.0/clang_64/bin/qmake -v
      QMake version 3.0
      Using Qt version 5.0.0 in /Users/qt/QtCommercial5.0.0/5.0.0/clang_64/lib
      qts-MacBook-Pro:fooapp qt$
      qts-MacBook-Pro:fooapp qt$ ../../QtCommercial5.0.0/5.0.0/clang_64/bin/qmake -v
      QMake version 3.0
      Using Qt version 5.0.0 in /Users/qt/QtCommercial5.0.0/5.0.0/clang_64/lib
      qts-MacBook-Pro:fooapp qt$ ../../QtCommercial5.0.0/5.0.0/clang_64/bin/qmake
      WARNING: Failure to find: FooApp.cpp
      WARNING: Failure to find: main.cpp
      WARNING: Failure to find: FooApp.h
      qts-MacBook-Pro:fooapp qt$
      

      Attachments

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

        Activity

          People

            buddenha Oswald Buddenhagen
            leonlee Leonard Lee
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes