diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp index b0b2b60e04c0ee727267ad82064d25ec3257041f..782343b7bafde7b0389cec72581bb65e786ea3ab 100644 --- a/src/plugins/debugger/debuggerrunner.cpp +++ b/src/plugins/debugger/debuggerrunner.cpp @@ -237,6 +237,15 @@ void DebuggerRunControl::setCustomEnvironment(Utils::Environment env) void DebuggerRunControl::start() { QTC_ASSERT(d->m_engine, return); + // User canceled input dialog asking for executable when working on library project. + if (d->m_engine->startParameters().startMode == StartInternal + && d->m_engine->startParameters().executable.isEmpty()) { + appendMessage(tr("No executable specified.\n"), ErrorMessageFormat); + emit started(); + emit finished(); + return; + } + debuggerCore()->runControlStarted(d->m_engine); // We might get a synchronous startFailed() notification on Windows, diff --git a/src/plugins/projectexplorer/localapplicationruncontrol.cpp b/src/plugins/projectexplorer/localapplicationruncontrol.cpp index 637070269cf5c6e3bf5d00f947a42be729c2fd8e..95010da2e6ef555d749ef61a385ea3f37c4e33c8 100644 --- a/src/plugins/projectexplorer/localapplicationruncontrol.cpp +++ b/src/plugins/projectexplorer/localapplicationruncontrol.cpp @@ -103,11 +103,15 @@ LocalApplicationRunControl::~LocalApplicationRunControl() void LocalApplicationRunControl::start() { - m_applicationLauncher.start(m_runMode, m_executable, m_commandLineArguments); emit started(); - - QString msg = tr("Starting %1...\n").arg(QDir::toNativeSeparators(m_executable)); - appendMessage(msg, NormalMessageFormat); + if (m_executable.isEmpty()) { + appendMessage(tr("No executable specified.\n"), ErrorMessageFormat); + emit finished(); + } else { + m_applicationLauncher.start(m_runMode, m_executable, m_commandLineArguments); + QString msg = tr("Starting %1...\n").arg(QDir::toNativeSeparators(m_executable)); + appendMessage(msg, NormalMessageFormat); + } } LocalApplicationRunControl::StopResult LocalApplicationRunControl::stop()