From 67d327c7cc0b88ad3c16fa932e8809fbea14d48b Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Wed, 6 May 2009 10:21:50 +0200 Subject: [PATCH] debugger: make stack reload engine-agnostic --- src/plugins/debugger/cdb/cdbdebugengine.h | 1 + src/plugins/debugger/debuggermanager.cpp | 13 +++++++++++-- src/plugins/debugger/debuggermanager.h | 1 + src/plugins/debugger/gdbengine.cpp | 6 +----- src/plugins/debugger/idebuggerengine.h | 1 + src/plugins/debugger/scriptengine.h | 1 + 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/plugins/debugger/cdb/cdbdebugengine.h b/src/plugins/debugger/cdb/cdbdebugengine.h index 04185c05bb4..74547ab33ad 100644 --- a/src/plugins/debugger/cdb/cdbdebugengine.h +++ b/src/plugins/debugger/cdb/cdbdebugengine.h @@ -94,6 +94,7 @@ public: virtual void reloadRegisters(); virtual void reloadSourceFiles(); + virtual void reloadFullStack() {} protected: void timerEvent(QTimerEvent*); diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp index b9879aaacac..23cc84059d2 100644 --- a/src/plugins/debugger/debuggermanager.cpp +++ b/src/plugins/debugger/debuggermanager.cpp @@ -206,6 +206,10 @@ void DebuggerManager::init() stackView->setModel(m_stackHandler->stackModel()); connect(stackView, SIGNAL(frameActivated(int)), this, SLOT(activateFrame(int))); + connect(theDebuggerAction(ExpandStack), SIGNAL(triggered()), + this, SLOT(reloadFullStack())); + connect(theDebuggerAction(MaximalStackDepth), SIGNAL(triggered()), + this, SLOT(reloadFullStack())); // Threads m_threadsHandler = new ThreadsHandler; @@ -273,9 +277,8 @@ void DebuggerManager::init() m_registerHandler = new RegisterHandler; registerView->setModel(m_registerHandler->model()); - m_watchHandler = new WatchHandler; - // Locals + m_watchHandler = new WatchHandler; QTreeView *localsView = qobject_cast<QTreeView *>(m_localsWindow); localsView->setModel(m_watchHandler->model()); @@ -1539,6 +1542,12 @@ DebuggerStartMode DebuggerManager::startMode() const return m_runControl->startMode(); } +void DebuggerManager::reloadFullStack() +{ + if (m_engine) + m_engine->reloadFullStack(); +} + ////////////////////////////////////////////////////////////////////// // diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h index 1d9e97d0368..38a0c5d7b74 100644 --- a/src/plugins/debugger/debuggermanager.h +++ b/src/plugins/debugger/debuggermanager.h @@ -279,6 +279,7 @@ private slots: void setStatus(int status); void clearStatusMessage(); void attemptBreakpointSynchronization(); + void reloadFullStack(); private: // diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp index 272a9e076a6..f7d6071c7ee 100644 --- a/src/plugins/debugger/gdbengine.cpp +++ b/src/plugins/debugger/gdbengine.cpp @@ -158,17 +158,13 @@ void GdbEngine::initializeConnections() q, SLOT(showApplicationOutput(QString)), Qt::QueuedConnection); + // FIXME: These trigger even if the engine is not active connect(theDebuggerAction(UseDebuggingHelpers), SIGNAL(valueChanged(QVariant)), this, SLOT(setUseDebuggingHelpers(QVariant))); connect(theDebuggerAction(DebugDebuggingHelpers), SIGNAL(valueChanged(QVariant)), this, SLOT(setDebugDebuggingHelpers(QVariant))); connect(theDebuggerAction(RecheckDebuggingHelpers), SIGNAL(triggered()), this, SLOT(recheckDebuggingHelperAvailability())); - - connect(theDebuggerAction(ExpandStack), SIGNAL(triggered()), - this, SLOT(reloadFullStack())); - connect(theDebuggerAction(MaximalStackDepth), SIGNAL(triggered()), - this, SLOT(reloadFullStack())); } void GdbEngine::initializeVariables() diff --git a/src/plugins/debugger/idebuggerengine.h b/src/plugins/debugger/idebuggerengine.h index cf700c20877..ececbe9aa7a 100644 --- a/src/plugins/debugger/idebuggerengine.h +++ b/src/plugins/debugger/idebuggerengine.h @@ -84,6 +84,7 @@ public: virtual void reloadRegisters() = 0; virtual void reloadSourceFiles() = 0; + virtual void reloadFullStack() = 0; }; } // namespace Internal diff --git a/src/plugins/debugger/scriptengine.h b/src/plugins/debugger/scriptengine.h index 79568aca88f..1e116b39015 100644 --- a/src/plugins/debugger/scriptengine.h +++ b/src/plugins/debugger/scriptengine.h @@ -104,6 +104,7 @@ private: void reloadModules(); void reloadRegisters() {} void reloadSourceFiles() {} + void reloadFullStack() {} bool supportsThreads() const { return true; } void maybeBreakNow(bool byFunction); -- GitLab