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

'qdoc.exe has stopped working' error for builds using ICC on Windows

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • None
    • 5.9.1
    • Build tools: qdoc
    • * Windows 10 x64,
       * IPSXE 2017 Update 4,
       * MSVC 2015 Update 3,
       * Windows SDK 10.0.14393.33.

    Description

      Hello everyone,

      Got qdoc.exe runtime error during Qt Documentation build:

              c:\libQT-5.9.1\ICC64DH\bin\qtattributionsscanner.exe C:/libQT-5.9.1/build/qtbase --filter QDocModule=qtcore -o C:/libQT-5.9.1/build/qtbase/src/corelib/codeattributions.qdoc
              call c:\libQT-5.9.1\build\qtbase\src\corelib\qdoc_wrapper.bat -outputdir C:/libQT-5.9.1/build/qtbase/doc/qtcore -installdir C:/libQT-5.9.1/ICC64DH/doc C:/libQT-5.9.1/build/qtbase/src/corelib/doc/qtcore.qdocconf -prepare -no-link-errors
      NMAKE : fatal error U1077: 'call' : return code '0xc00000fd'
      Stop.
      NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\nmake.exe"' : return code '0x2'
      Stop.
      NMAKE : fatal error U1077: 'cd' : return code '0x2'
      Stop.
      NMAKE : fatal error U1077: 'cd' : return code '0x2'
      Stop.
      NMAKE : fatal error U1077: 'cd' : return code '0x2'
      Stop.
      NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\nmake.exe"' : return code '0x2'
      Stop.
      NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\nmake.exe"' : return code '0x2'
      Stop.

       

      Call Stack:

           ntdll.dll!00007ffae7758670()    Unknown
           ntdll.dll!00007ffae77574a8()    Unknown
           ucrtbased.dll!00007ffac1abd116()    Unknown
           ucrtbased.dll!00007ffac1abcebd()    Unknown
           ucrtbased.dll!00007ffac1abff7f()    Unknown
           ucrtbased.dll!00007ffac1ac09fe()    Unknown
      >    Qt5Cored.dll!operator new(unsigned __int64 size) Line 19    C++
           Qt5Cored.dll!QRegExp::QRegExp(const QRegExp & rx) Line 3969    C++
           Qt5Cored.dll!QString::replace(const QRegExp & rx, const QString & after) Line 3419    C++
           Qt5Cored.dll!QString::remove(const QRegExp & rx) Line 472    C++
           qdoc.exe!Tokenizer::getTokenAfterPreprocessor() Line 621    C++
           qdoc.exe!Tokenizer::getToken() Line 226    C++
      
      <snip>
      
          qdoc.exe!Tokenizer::getTokenAfterPreprocessor() Line 682    C++
           qdoc.exe!Tokenizer::getToken() Line 226    C++
           qdoc.exe!CppCodeParser::readToken() Line 1071    C++
           qdoc.exe!CppCodeParser::parseHeaderFile(const Location & location, const QString & filePath) Line 175    C++
           qdoc.exe!processQdocconfFile(const QString & fileName) Line 439    C++
           qdoc.exe!main(int argc, char * * argv) Line 748    C++
           [External Code]    

      Disassembly:

      Address: operator new(unsigned __int64)
      
      Viewing Options:
      --- f:\dd\vctools\crt\vcstartup\src\heap\new_scalar.cpp ------------------------
      //
      // new_scalar.cpp
      //
      //      Copyright (c) Microsoft Corporation. All rights reserved.
      //
      // Defines the scalar operator new.
      //
      #include <stdlib.h>
      #include <vcruntime_new.h>
      #include <vcstartup_internal.h>
      
      // Enable the compiler to elide null checks during LTCG
      #pragma comment(linker, "/ThrowingNew")
      
      void* __CRTDECL operator new(size_t const size)
      {
      0000000073E2E5A0  mov         qword ptr [rsp+8],rcx  
      0000000073E2E5A5  sub         rsp,38h  
          for (;;)
          {
              if (void* const block = malloc(size))
      0000000073E2E5A9  mov         rcx,qword ptr [size]  
      0000000073E2E5AE  call        malloc (073E31394h)  
      0000000073E2E5B3  mov         qword ptr [rsp+20h],rax  <==========
      0000000073E2E5B8  cmp         qword ptr [rsp+20h],0  
      0000000073E2E5BE  je          operator new+27h (073E2E5C7h)  
              {
                  return block;
      0000000073E2E5C0  mov         rax,qword ptr [rsp+20h]  
      0000000073E2E5C5  jmp         operator new+4Bh (073E2E5EBh)  
              }
      
              if (_callnewh(size) == 0)
      0000000073E2E5C7  mov         rcx,qword ptr [size]  
      0000000073E2E5CC  call        _callnewh (073E314D8h)  
      0000000073E2E5D1  test        eax,eax  
      0000000073E2E5D3  jne         operator new+49h (073E2E5E9h) 

      Locals:

      Name    Value               Type
      block    0x0000018526110ef0    void * const
      size    216                    const unsigned __int64

       

      Reproduced for:

      • builds using ICC with Debug Shared Configuration.

      Not reproduced for:

      • builds using ICC with Release Shared Configuration,
      • builds using <mingw-w64|MSVC> with Debug Shared Configuration.

       

       

      Alexander

       

      Attachments

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

        Activity

          People

            gbk Martin Smith (Qt)
            sav sav
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes