diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 04fd03a42c22cb816839de5b506d25b2d52ec9dd..8e286a8ac6215cfa48dca46904e55a956dc719d9 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -359,6 +359,10 @@ void DebuggerEngine::handleCommand(int role, const QVariant &value) reloadModules(); break; + case RequestReloadRegistersRole: + reloadRegisters(); + break; + case RequestExecContinueRole: continueInferior(); break; diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index f5fc8ce96f6188d858a036acbabfffe75b6c718c..b527bbbcd82aa6a11725d97b9931810ee737652c 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -2548,6 +2548,11 @@ DebuggerEngine *DebuggerPlugin::sessionTemplate() return d->m_sessionEngine; } +bool DebuggerPlugin::isRegisterViewVisible() const +{ + return d->m_registerDock->toggleViewAction()->isChecked(); +} + ////////////////////////////////////////////////////////////////////// // // Testing diff --git a/src/plugins/debugger/debuggerplugin.h b/src/plugins/debugger/debuggerplugin.h index 552f5184b0ac8336c0c74a4e3c9e6c4a12810974..d3fadff4c6c0deb9733b5082e299016e7a3354b9 100644 --- a/src/plugins/debugger/debuggerplugin.h +++ b/src/plugins/debugger/debuggerplugin.h @@ -103,6 +103,8 @@ public: Internal::DebuggerEngine *sessionTemplate(); void updateState(Internal::DebuggerEngine *engine); + bool isRegisterViewVisible() const; + public slots: void exitDebugger(); // FIXME: remove void clearCppCodeModelSnapshot(); diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 5605cb8088fd04ba67dbd5c9a861804bac53e1cc..eac740c0d8981b900a987e09db04d279c8756a78 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -3079,6 +3079,9 @@ void GdbEngine::activateSnapshot2() void GdbEngine::reloadRegisters() { + if (!plugin()->isRegisterViewVisible()) + return; + if (state() != InferiorStopped && state() != InferiorUnrunnable) return; if (!m_registerNamesListed) {