diff --git a/src/libs/utils/process.cpp b/src/libs/utils/process.cpp index 0eeeb1721b4..b10ea090dfc 100644 --- a/src/libs/utils/process.cpp +++ b/src/libs/utils/process.cpp @@ -1251,7 +1251,19 @@ void Process::start() } else { processImpl = d->createProcessInterface(); } - QTC_ASSERT(processImpl, return); + + if (!processImpl) { + // This happens if a device does not implement the createProcessInterface() function. + d->m_result = ProcessResult::StartFailed; + d->m_resultData.m_exitCode = 255; + d->m_resultData.m_exitStatus = QProcess::CrashExit; + d->m_resultData.m_errorString = Tr::tr("Failed to create process interface for \"%1\"") + .arg(d->m_setup.m_commandLine.toUserOutput()); + d->m_resultData.m_error = QProcess::FailedToStart; + d->emitGuardedSignal(&Process::done); + return; + } + d->setProcessInterface(processImpl); d->m_state = QProcess::Starting; d->m_process->m_setup = d->m_setup; diff --git a/src/plugins/projectexplorer/devicesupport/idevice.cpp b/src/plugins/projectexplorer/devicesupport/idevice.cpp index 05c013c4bd5..489e6b337e6 100644 --- a/src/plugins/projectexplorer/devicesupport/idevice.cpp +++ b/src/plugins/projectexplorer/devicesupport/idevice.cpp @@ -290,7 +290,6 @@ FilePath IDevice::searchExecutable(const QString &fileName, const FilePaths &dir ProcessInterface *IDevice::createProcessInterface() const { - QTC_CHECK(false); return nullptr; }