From f873ad1cf05a0c14c233c787b32f597e2267bcef Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Thu, 16 Jun 2022 10:12:23 +0200 Subject: [PATCH] Debugger: Ensure termination of lldb.exe LLDB 12.0.8, which is included in NDK 23.1, hesitates to termiate when being told to. Calling QtcProcess::stop() and using CtrlCStub on Windows helps with that. Amends: 17ff9317cdc3de1773b62e46c1ec9b6958fa1035 Fixes: QTCREATORBUG-27723 Change-Id: Ie9d4ed23a833019f445c1517983c90ae899fbf39 Reviewed-by: Jarek Kobus Reviewed-by: Cristian Adam --- src/plugins/debugger/lldb/lldbengine.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index f870ba78f40..8bcd5112305 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -189,16 +189,13 @@ void LldbEngine::shutdownInferior() void LldbEngine::shutdownEngine() { QTC_ASSERT(state() == EngineShutdownRequested, qDebug() << state()); - if (m_lldbProc.isRunning()) - m_lldbProc.terminate(); - else - notifyEngineShutdownFinished(); + abortDebuggerProcess(); } void LldbEngine::abortDebuggerProcess() { if (m_lldbProc.isRunning()) - m_lldbProc.kill(); + m_lldbProc.stop(); else notifyEngineShutdownFinished(); } @@ -799,7 +796,7 @@ void LldbEngine::handleLldbError(QProcess::ProcessError error) case QProcess::Timedout: default: //setState(EngineShutdownRequested, true); - m_lldbProc.kill(); + m_lldbProc.stop(); AsynchronousMessageBox::critical(tr("LLDB I/O Error"), errorMessage(error)); break; }