Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-19347

Setting run configuration working directory to %{CurrentRun:Executable:Path} crashes when running

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • P1: Critical
    • None
    • Qt Creator 4.5.0-rc1
    • None
    • macOS

    Description

      • Open dummy project (qmake?)
      • Open run configuration settings in projects mode
      • Set working directory to {{% {CurrentRun:Executable:Path}

        }}

      • Press the run button
      • Observe the crash because of infinite recursion
      Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
      0   libsystem_malloc.dylib        	0x00007fffaee00477 _nano_malloc_check_clear + 154
      1   libsystem_malloc.dylib        	0x00007fffaee003bf nano_malloc + 35
      2   libsystem_malloc.dylib        	0x00007fffaedf9282 malloc_zone_malloc + 107
      3   libsystem_malloc.dylib        	0x00007fffaedf8200 malloc + 24
      4   org.qt-project.QtCore         	0x000000010e414431 QArrayData::allocate(unsigned long, unsigned long, unsigned long, QFlags<QArrayData::AllocationOption>) + 129
      5   org.qt-project.QtCore         	0x000000010e487b34 QString::reallocData(unsigned int, bool) + 100
      6   org.qt-project.QtCore         	0x000000010e488600 QString::append(QString const&) + 96
      7   libQmakeProjectManager.dylib  	0x0000000117a68328 QmakeProjectManager::Internal::DesktopQmakeRunConfiguration::extractWorkingDirAndExecutable(QmakeProjectManager::QmakeProFile const*) const + 792
      8   libQmakeProjectManager.dylib  	0x0000000117a66e40 QmakeProjectManager::Internal::DesktopQmakeRunConfiguration::executable() const + 96
      9   libQmakeProjectManager.dylib  	0x0000000117a66f7a QmakeProjectManager::Internal::DesktopQmakeRunConfiguration::runnable() const + 90
      10  libProjectExplorer.dylib      	0x0000000114f542e5 std::__1::__function::__func<ProjectExplorer::ProjectExplorerPlugin::initialize(QStringList const&, QString*)::$_18, std::__1::allocator<ProjectExplorer::ProjectExplorerPlugin::initialize(QStringList const&, QString*)::$_18>, QString ()>::operator()() + 85
      11  libUtils.4.4.83.dylib         	0x000000010d7d84bf std::__1::__function::__func<Utils::MacroExpander::registerFileVariables(QByteArray const&, QString const&, std::__1::function<QString ()> const&, bool)::$_2, std::__1::allocator<Utils::MacroExpander::registerFileVariables(QByteArray const&, QString const&, std::__1::function<QString ()> const&, bool)::$_2>, QString ()>::operator()() + 31
      12  libUtils.4.4.83.dylib         	0x000000010d7d93f8 Utils::Internal::MacroExpanderPrivate::value(QByteArray const&, bool*) + 104
      13  libUtils.4.4.83.dylib         	0x000000010d7da369 Utils::Internal::MacroExpanderPrivate::resolveMacro(QString const&, QString*, QSet<Utils::AbstractMacroExpander*>&) + 105
      14  libUtils.4.4.83.dylib         	0x000000010d7da562 Utils::Internal::MacroExpanderPrivate::resolveMacro(QString const&, QString*, QSet<Utils::AbstractMacroExpander*>&) + 610
      15  libUtils.4.4.83.dylib         	0x000000010d7daa6d bool Utils::anyOf<QVector<std::__1::function<Utils::MacroExpander* ()> >, Utils::Internal::MacroExpanderPrivate::resolveMacro(QString const&, QString*, QSet<Utils::AbstractMacroExpander*>&)::'lambda'(std::__1::function<Utils::MacroExpander* ()> const&)>(QVector<std::__1::function<Utils::MacroExpander* ()> > const&, Utils::Internal::MacroExpanderPrivate::resolveMacro(QString const&, QString*, QSet<Utils::AbstractMacroExpander*>&)::'lambda'(std::__1::function<Utils::MacroExpander* ()> const&)) + 157
      16  libUtils.4.4.83.dylib         	0x000000010d7da40c Utils::Internal::MacroExpanderPrivate::resolveMacro(QString const&, QString*, QSet<Utils::AbstractMacroExpander*>&) + 268
      17  libUtils.4.4.83.dylib         	0x000000010d7daa6d bool Utils::anyOf<QVector<std::__1::function<Utils::MacroExpander* ()> >, Utils::Internal::MacroExpanderPrivate::resolveMacro(QString const&, QString*, QSet<Utils::AbstractMacroExpander*>&)::'lambda'(std::__1::function<Utils::MacroExpander* ()> const&)>(QVector<std::__1::function<Utils::MacroExpander* ()> > const&, Utils::Internal::MacroExpanderPrivate::resolveMacro(QString const&, QString*, QSet<Utils::AbstractMacroExpander*>&)::'lambda'(std::__1::function<Utils::MacroExpander* ()> const&)) + 157
      18  libUtils.4.4.83.dylib         	0x000000010d7da40c Utils::Internal::MacroExpanderPrivate::resolveMacro(QString const&, QString*, QSet<Utils::AbstractMacroExpander*>&) + 268
      19  libUtils.4.4.83.dylib         	0x000000010d7daa6d bool Utils::anyOf<QVector<std::__1::function<Utils::MacroExpander* ()> >, Utils::Internal::MacroExpanderPrivate::resolveMacro(QString const&, QString*, QSet<Utils::AbstractMacroExpander*>&)::'lambda'(std::__1::function<Utils::MacroExpander* ()> const&)>(QVector<std::__1::function<Utils::MacroExpander* ()> > const&, Utils::Internal::MacroExpanderPrivate::resolveMacro(QString const&, QString*, QSet<Utils::AbstractMacroExpander*>&)::'lambda'(std::__1::function<Utils::MacroExpander* ()> const&)) + 157
      20  libUtils.4.4.83.dylib         	0x000000010d7da40c Utils::Internal::MacroExpanderPrivate::resolveMacro(QString const&, QString*, QSet<Utils::AbstractMacroExpander*>&) + 268
      21  libUtils.4.4.83.dylib         	0x000000010d7daa6d bool Utils::anyOf<QVector<std::__1::function<Utils::MacroExpander* ()> >, Utils::Internal::MacroExpanderPrivate::resolveMacro(QString const&, QString*, QSet<Utils::AbstractMacroExpander*>&)::'lambda'(std::__1::function<Utils::MacroExpander* ()> const&)>(QVector<std::__1::function<Utils::MacroExpander* ()> > const&, Utils::Internal::MacroExpanderPrivate::resolveMacro(QString const&, QString*, QSet<Utils::AbstractMacroExpander*>&)::'lambda'(std::__1::function<Utils::MacroExpander* ()> const&)) + 157
      22  libUtils.4.4.83.dylib         	0x000000010d7da40c Utils::Internal::MacroExpanderPrivate::resolveMacro(QString const&, QString*, QSet<Utils::AbstractMacroExpander*>&) + 268
      23  libUtils.4.4.83.dylib         	0x000000010d7494d2 Utils::AbstractMacroExpander::expandNestedMacros(QString const&, int*, QString*) + 1330
      24  libUtils.4.4.83.dylib         	0x000000010d749b71 Utils::AbstractMacroExpander::findMacro(QString const&, int*, QString*) + 161
      25  libUtils.4.4.83.dylib         	0x000000010d73de1f Utils::QtcProcess::expandMacros(QString*, Utils::AbstractMacroExpander*, Utils::OsType) + 111
      26  libUtils.4.4.83.dylib         	0x000000010d73f589 Utils::QtcProcess::expandMacros(QString const&, Utils::AbstractMacroExpander*, Utils::OsType) + 41
      27  libUtils.4.4.83.dylib         	0x000000010d7d59ac Utils::MacroExpander::expandProcessArgs(QString const&) const + 28
      28  libProjectExplorer.dylib      	0x00000001150b286c ProjectExplorer::WorkingDirectoryAspect::workingDirectory() const + 92
      29  libQmakeProjectManager.dylib  	0x0000000117a67020 QmakeProjectManager::Internal::DesktopQmakeRunConfiguration::runnable() const + 256
      30  libProjectExplorer.dylib      	0x0000000114f542e5 std::__1::__function::__func<ProjectExplorer::ProjectExplorerPlugin::initialize(QStringList const&, QString*)::$_18, std::__1::allocator<ProjectExplorer::ProjectExplorerPlugin::initialize(QStringList const&, QString*)::$_18>, QString ()>::operator()() + 85
      31  libUtils.4.4.83.dylib         	0x000000010d7d84bf std::__1::__function::__func<Utils::MacroExpander::registerFileVariables(QByteArray const&, QString const&, std::__1::function<QString ()> const&, bool)::$_2, std::__1::allocator<Utils::MacroExpander::registerFileVariables(QByteArray const&, QString const&, std::__1::function<QString ()> const&, bool)::$_2>, QString ()>::operator()() + 31
      32  libUtils.4.4.83.dylib         	0x000000010d7d93f8 Utils::Internal::MacroExpanderPrivate::value(QByteArray const&, bool*) + 104
      33  libUtils.4.4.83.dylib         	0x000000010d7da369 Utils::Internal::MacroExpanderPrivate::resolveMacro(QString const&, QString*, QSet<Utils::AbstractMacroExpander*>&) + 105
      34  libUtils.4.4.83.dylib         	0x000000010d7da562 Utils::Internal::MacroExpanderPrivate::resolveMacro(QString const&, QString*, QSet<Utils::AbstractMacroExpander*>&) + 610
      ....
      

      Attachments

        Issue Links

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

          Activity

            People

              hunger Tobias Hunger
              con Eike Ziller
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes