From b00112290040c22e5adb549af10a6f9bbd464729 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 7 Jun 2016 15:51:38 +0200 Subject: [PATCH] Debugger: Do not abort LldbEngine too eagerly Not all untimely requests to run a command are harmful, e.g. reloadModules() can be triggered by visibility changes of the modules view at any time. Change-Id: Ie803135ff7b954eef5800b3becdc6104a61b8cb2 Task-number: QTCREATORBUG-16393 Reviewed-by: Christian Stenger --- src/plugins/debugger/lldb/lldbengine.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index 3d337901bac..995879601c2 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -114,7 +114,13 @@ void LldbEngine::executeDebuggerCommand(const QString &command, DebuggerLanguage void LldbEngine::runCommand(const DebuggerCommand &cmd) { - QTC_ASSERT(m_lldbProc.state() == QProcess::Running, notifyEngineIll()); + if (m_lldbProc.state() != QProcess::Running) { + // This can legally happen e.g. through a reloadModule() + // triggered by changes in view visibility. + showMessage(_("NO LLDB PROCESS RUNNING, CMD IGNORED: %1 %2") + .arg(_(cmd.function)).arg(state())); + return; + } const int tok = ++currentToken(); DebuggerCommand command = cmd; command.arg("token", tok);