From 94ee0a575d08b3afb20fdce92debe96f53aa8444 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 12 Feb 2020 09:59:57 +0100 Subject: [PATCH] Debugger: Avoid crash when settings change after debugging If the debugger engine is not running there is anyway no need to update its data. Change-Id: I8cda9218985db8b88d96046254847e8916ca37eb Reviewed-by: hjk --- src/plugins/debugger/debuggerengine.cpp | 4 ++++ src/plugins/debugger/gdb/gdbengine.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 69573db219a..a1c2aad6aba 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -2138,6 +2138,10 @@ void DebuggerEngine::createSnapshot() void DebuggerEngine::updateLocals() { + // if the engine is not running - do nothing + if (state() == DebuggerState::DebuggerFinished || state() == DebuggerState::DebuggerNotReady) + return; + watchHandler()->resetValueCache(); doUpdateLocals(UpdateParameters()); } diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 8d87cfde054..b57b2b85c69 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -3302,6 +3302,10 @@ void GdbEngine::handlePeripheralRegisterListValues( void GdbEngine::reloadLocals() { + // if the engine is not running - do nothing + if (state() == DebuggerState::DebuggerFinished || state() == DebuggerState::DebuggerNotReady) + return; + setTokenBarrier(); updateLocals(); }