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

"idc.exe foo_release.dll /idl foo_release.idl" crashes if qt.conf present with paths/prefix

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P4: Low
    • Resolution: Done
    • Affects Version/s: 4.8.5
    • Fix Version/s: 4.8.6, 5.3.0
    • Component/s: ActiveX Support
    • Labels:
      None
    • Environment:
      Windows 7 Ultimate 64 bit
    • Commits:
      Qt 5: ab3e8e80fbd81a38039c713189b0422972e0963e (dev), Qt 4: 636210a4ff3f3589fa062ea75869cfad9652cb7c

      Description

      In order to be able to relocate the Qt installation I have<qtdir>/bin/qt.conf with the content

      [paths]
      prefix = ..

      This causes "idc.exe foo_release.dll /idl foo_release.idl -version 1.0" to crash on exit with the following runtime exception: "Unhandled exception at 0x72d09036 (QtCore4.dll) in idc.exe.4324.dmp: 0xC0000005: Access violation reading location 0x7117ae14." with the following stack:

      > QtCore4.dll!QVariant::~QVariant() Line 1412 + 0x6 bytes C++
      QtCore4.dll!QMap<QSettingsKey,QVariant>::freeData(QMapData * x=0x00659070) Line 652 + 0x8 bytes C++
      QtCore4.dll!QConfFile::~QConfFile() Line 233 + 0x76 bytes C++
      QtCore4.dll!QCache<QString,QConfFile>::clear() Line 139 + 0x20 bytes C++
      QtCore4.dll!QGlobalStaticDeleter<QCache<QString,QConfFile> >::~QGlobalStaticDeleter<QCache<QString,QConfFile> >() Line 1950 + 0x1b bytes C++
      QtCore4.dll!_CRT_INIT(void * hDllHandle=0x0065b94c, unsigned long dwReason=6666424, void * lpreserved=0x0065b8b8) Line 415 C
      QtCore4.dll!__DllMainCRTStartup(void * hDllHandle=0x72bc0000, unsigned long dwReason=929984518, void * lpreserved=0x00659080) Line 526 + 0x8 bytes C
      QtCore4.dll!_DllMainCRTStartup(void * hDllHandle=0x72bc0000, unsigned long dwReason=0, void * lpreserved=0x00000001) Line 476 + 0xe bytes C
      ntdll.dll!_LdrpCallInitRoutine@16() + 0x14 bytes
      ntdll.dll!_LdrShutdownProcess@0() + 0x141 bytes
      ntdll.dll!_RtlExitUserProcess@4() + 0x74 bytes
      kernel32.dll!75ad79c5()
      msvcr100.dll!___crtExitProcess() + 0x17 bytes
      msvcr100.dll!__cinit() + 0xb689 bytes
      msvcr100.dll!_exit() + 0x11 bytes
      idc.exe!__tmainCRTStartup() Line 572 C

      This only happens if foo_release.dll is a release build - not if it is a debug build.

      The problem is reproducible with e.g qt\examples\activeqt\multiple. Simply drop in the qt.conf file from above in the bin folder where idc.exe lives and build the example as release.

        Attachments

          Issue Links

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

            Activity

              People

              Assignee:
              kleint Friedemann Kleint
              Reporter:
              ts Thomas Sondergaard
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Gerrit Reviews

                  There are no open Gerrit changes