diff --git a/src/libs/utils/terminalinterface.cpp b/src/libs/utils/terminalinterface.cpp index 9fb226ece54..3cd1e5bb21d 100644 --- a/src/libs/utils/terminalinterface.cpp +++ b/src/libs/utils/terminalinterface.cpp @@ -92,6 +92,7 @@ public: StubCreator *stubCreator{nullptr}; const bool waitOnExit; + bool didInferiorRun{false}; }; TerminalInterface::TerminalInterface(bool waitOnExit) @@ -156,6 +157,11 @@ void TerminalInterface::onStubExited() if (d->inferiorProcessId) emitFinished(-1, QProcess::CrashExit); + else if (!d->didInferiorRun) { + emitError(QProcess::FailedToStart, + Tr::tr("Failed to start terminal process. The stub exited before the inferior " + "was started.")); + } } void TerminalInterface::onStubReadyRead() @@ -176,6 +182,7 @@ void TerminalInterface::onStubReadyRead() d->envListFile = nullptr; } else if (out.startsWith("pid ")) { d->inferiorProcessId = out.mid(4).toInt(); + d->didInferiorRun = true; emit started(d->inferiorProcessId, d->inferiorThreadId); } else if (out.startsWith("thread ")) { // Windows only d->inferiorThreadId = out.mid(7).toLongLong();