From e79808a8f7b3a38bdd0b9709cd6796e941ee3003 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 4 Mar 2015 17:43:59 +0100 Subject: [PATCH] Debugger: Don't show a location marker in the mixed master engine Task-number: QTCREATORBUG-14087 Change-Id: I7e8f116c97cdea0bd8234d060d068435229e6fc2 Reviewed-by: Christian Stenger --- src/plugins/debugger/cdb/cdbengine.h | 3 +++ src/plugins/debugger/debuggerengine.h | 1 + src/plugins/debugger/debuggerplugin.cpp | 10 ++++++---- src/plugins/debugger/gdb/gdbengine.h | 1 + src/plugins/debugger/lldb/lldbengine.h | 2 ++ src/plugins/debugger/qml/qmlcppengine.cpp | 5 ----- src/plugins/debugger/qml/qmlcppengine.h | 2 +- 7 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/plugins/debugger/cdb/cdbengine.h b/src/plugins/debugger/cdb/cdbengine.h index 70055f29749..1b6845552a2 100644 --- a/src/plugins/debugger/cdb/cdbengine.h +++ b/src/plugins/debugger/cdb/cdbengine.h @@ -79,6 +79,9 @@ public: virtual bool setToolTipExpression(TextEditor::TextEditorWidget *editorWidget, const DebuggerToolTipContext &context); + + virtual DebuggerEngine *cppEngine() { return this; } + virtual void setupEngine(); virtual void setupInferior(); virtual void runEngine(); diff --git a/src/plugins/debugger/debuggerengine.h b/src/plugins/debugger/debuggerengine.h index 2ebe99c70ed..80075c9e023 100644 --- a/src/plugins/debugger/debuggerengine.h +++ b/src/plugins/debugger/debuggerengine.h @@ -256,6 +256,7 @@ public: bool isSlaveEngine() const; bool isMasterEngine() const; DebuggerEngine *masterEngine() const; + virtual DebuggerEngine *cppEngine() { return 0; } virtual bool canDisplayTooltip() const { return state() == InferiorStopOk; } diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index d63ce13af00..a684881c456 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -943,10 +943,12 @@ public slots: void handleOperateByInstructionTriggered(bool operateByInstructionTriggered) { // Go to source only if we have the file. - if (currentEngine()->stackHandler()->currentIndex() >= 0) { - const StackFrame frame = currentEngine()->stackHandler()->currentFrame(); - if (operateByInstructionTriggered || frame.isUsable()) - currentEngine()->gotoLocation(Location(frame, true)); + if (DebuggerEngine *cppEngine = currentEngine()->cppEngine()) { + if (cppEngine->stackHandler()->currentIndex() >= 0) { + const StackFrame frame = cppEngine->stackHandler()->currentFrame(); + if (operateByInstructionTriggered || frame.isUsable()) + cppEngine->gotoLocation(Location(frame, true)); + } } } diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h index b76bac82a1e..51819122fba 100644 --- a/src/plugins/debugger/gdb/gdbengine.h +++ b/src/plugins/debugger/gdb/gdbengine.h @@ -72,6 +72,7 @@ public: ~GdbEngine(); private: ////////// General Interface ////////// + virtual DebuggerEngine *cppEngine() { return this; } virtual void setupEngine() = 0; virtual void handleGdbStartFailed(); diff --git a/src/plugins/debugger/lldb/lldbengine.h b/src/plugins/debugger/lldb/lldbengine.h index fa766fee453..46e8a780ea7 100644 --- a/src/plugins/debugger/lldb/lldbengine.h +++ b/src/plugins/debugger/lldb/lldbengine.h @@ -68,6 +68,8 @@ public: private: // DebuggerEngine implementation + DebuggerEngine *cppEngine() { return this; } + void executeStep(); void executeStepOut(); void executeNext(); diff --git a/src/plugins/debugger/qml/qmlcppengine.cpp b/src/plugins/debugger/qml/qmlcppengine.cpp index 08bfb8cf0da..f2a5b82ab93 100644 --- a/src/plugins/debugger/qml/qmlcppengine.cpp +++ b/src/plugins/debugger/qml/qmlcppengine.cpp @@ -773,11 +773,6 @@ void QmlCppEngine::debugLastCommand() m_cppEngine->debugLastCommand(); } -DebuggerEngine *QmlCppEngine::cppEngine() const -{ - return m_cppEngine; -} - DebuggerEngine *QmlCppEngine::qmlEngine() const { return m_qmlEngine; diff --git a/src/plugins/debugger/qml/qmlcppengine.h b/src/plugins/debugger/qml/qmlcppengine.h index 898803ee69a..4546f177ee7 100644 --- a/src/plugins/debugger/qml/qmlcppengine.h +++ b/src/plugins/debugger/qml/qmlcppengine.h @@ -84,7 +84,7 @@ public: void assignValueInDebugger(const WatchData *data, const QString &expr, const QVariant &value); - DebuggerEngine *cppEngine() const; + DebuggerEngine *cppEngine() { return m_cppEngine; } DebuggerEngine *qmlEngine() const; void notifyEngineRemoteSetupFinished(const RemoteSetupResult &result);