From 90e879bbd130f94cadfb5ab1241a7fafe9a2a1f9 Mon Sep 17 00:00:00 2001 From: Aaron Barany Date: Tue, 19 Apr 2022 01:24:43 -0700 Subject: [PATCH] ProcessLauncher: avoid reading stderr for merged channels This will assert on Qt 6.3.0 and print a warning for Qt 6.3.1 and later. Change-Id: I837fbde3358a5a0e5cc29b8486ed7b4e9837a976 Fixes: QTCREATORBUG-27385 Reviewed-by: Jarek Kobus --- src/tools/processlauncher/launchersockethandler.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/tools/processlauncher/launchersockethandler.cpp b/src/tools/processlauncher/launchersockethandler.cpp index 21e7e7624e0..52db9b4523f 100644 --- a/src/tools/processlauncher/launchersockethandler.cpp +++ b/src/tools/processlauncher/launchersockethandler.cpp @@ -182,7 +182,8 @@ void LauncherSocketHandler::handleProcessFinished() packet.errorString = proc->errorString(); packet.exitCode = proc->exitCode(); packet.exitStatus = proc->exitStatus(); - packet.stdErr = proc->readAllStandardError(); + if (proc->processChannelMode() != QProcess::MergedChannels) + packet.stdErr = proc->readAllStandardError(); packet.stdOut = proc->readAllStandardOutput(); sendPacket(packet); removeProcess(proc->token()); @@ -257,7 +258,8 @@ void LauncherSocketHandler::handleStopPacket() packet.error = QProcess::Crashed; packet.exitCode = -1; packet.exitStatus = QProcess::CrashExit; - packet.stdErr = process->readAllStandardError(); + if (process->processChannelMode() != QProcess::MergedChannels) + packet.stdErr = process->readAllStandardError(); packet.stdOut = process->readAllStandardOutput(); sendPacket(packet); }