diff --git a/src/plugins/debugger/cdb/cdbdebugengine.h b/src/plugins/debugger/cdb/cdbdebugengine.h index 04185c05bb44894bbe95a57c0afd7997352ef780..74547ab33adb43f5700e6aff18f62d080b3fc3f2 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 b9879aaacac00571ca33d5b7e37e943a1ccb5b75..23cc84059d2cfa2534435c1b3f668bfd02fd0caf 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 1d9e97d03686a1610c124db5464cd04e7dc22a2d..38a0c5d7b748bd4c0af3bd41f56a1a18601afe34 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 272a9e076a6a4794c1e83e5aa7f471f8f1351f7c..f7d6071c7ee1cdcb0e769274d104374bcbf5920c 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 cf700c208776aefb6bb0153c07b9ab3d7e9e79b4..ececbe9aa7a74c65a91481c072677f878998b0e9 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 79568aca88fb46a28a72723e2ddf58cd6454e205..1e116b390150ff2cd180c816333ed65b908676fe 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);