forked from qt-creator/qt-creator
debugger: make stack reload engine-agnostic
This commit is contained in:
@@ -94,6 +94,7 @@ public:
|
|||||||
|
|
||||||
virtual void reloadRegisters();
|
virtual void reloadRegisters();
|
||||||
virtual void reloadSourceFiles();
|
virtual void reloadSourceFiles();
|
||||||
|
virtual void reloadFullStack() {}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void timerEvent(QTimerEvent*);
|
void timerEvent(QTimerEvent*);
|
||||||
|
|||||||
@@ -206,6 +206,10 @@ void DebuggerManager::init()
|
|||||||
stackView->setModel(m_stackHandler->stackModel());
|
stackView->setModel(m_stackHandler->stackModel());
|
||||||
connect(stackView, SIGNAL(frameActivated(int)),
|
connect(stackView, SIGNAL(frameActivated(int)),
|
||||||
this, SLOT(activateFrame(int)));
|
this, SLOT(activateFrame(int)));
|
||||||
|
connect(theDebuggerAction(ExpandStack), SIGNAL(triggered()),
|
||||||
|
this, SLOT(reloadFullStack()));
|
||||||
|
connect(theDebuggerAction(MaximalStackDepth), SIGNAL(triggered()),
|
||||||
|
this, SLOT(reloadFullStack()));
|
||||||
|
|
||||||
// Threads
|
// Threads
|
||||||
m_threadsHandler = new ThreadsHandler;
|
m_threadsHandler = new ThreadsHandler;
|
||||||
@@ -273,9 +277,8 @@ void DebuggerManager::init()
|
|||||||
m_registerHandler = new RegisterHandler;
|
m_registerHandler = new RegisterHandler;
|
||||||
registerView->setModel(m_registerHandler->model());
|
registerView->setModel(m_registerHandler->model());
|
||||||
|
|
||||||
m_watchHandler = new WatchHandler;
|
|
||||||
|
|
||||||
// Locals
|
// Locals
|
||||||
|
m_watchHandler = new WatchHandler;
|
||||||
QTreeView *localsView = qobject_cast<QTreeView *>(m_localsWindow);
|
QTreeView *localsView = qobject_cast<QTreeView *>(m_localsWindow);
|
||||||
localsView->setModel(m_watchHandler->model());
|
localsView->setModel(m_watchHandler->model());
|
||||||
|
|
||||||
@@ -1539,6 +1542,12 @@ DebuggerStartMode DebuggerManager::startMode() const
|
|||||||
return m_runControl->startMode();
|
return m_runControl->startMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DebuggerManager::reloadFullStack()
|
||||||
|
{
|
||||||
|
if (m_engine)
|
||||||
|
m_engine->reloadFullStack();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -279,6 +279,7 @@ private slots:
|
|||||||
void setStatus(int status);
|
void setStatus(int status);
|
||||||
void clearStatusMessage();
|
void clearStatusMessage();
|
||||||
void attemptBreakpointSynchronization();
|
void attemptBreakpointSynchronization();
|
||||||
|
void reloadFullStack();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -158,17 +158,13 @@ void GdbEngine::initializeConnections()
|
|||||||
q, SLOT(showApplicationOutput(QString)),
|
q, SLOT(showApplicationOutput(QString)),
|
||||||
Qt::QueuedConnection);
|
Qt::QueuedConnection);
|
||||||
|
|
||||||
|
// FIXME: These trigger even if the engine is not active
|
||||||
connect(theDebuggerAction(UseDebuggingHelpers), SIGNAL(valueChanged(QVariant)),
|
connect(theDebuggerAction(UseDebuggingHelpers), SIGNAL(valueChanged(QVariant)),
|
||||||
this, SLOT(setUseDebuggingHelpers(QVariant)));
|
this, SLOT(setUseDebuggingHelpers(QVariant)));
|
||||||
connect(theDebuggerAction(DebugDebuggingHelpers), SIGNAL(valueChanged(QVariant)),
|
connect(theDebuggerAction(DebugDebuggingHelpers), SIGNAL(valueChanged(QVariant)),
|
||||||
this, SLOT(setDebugDebuggingHelpers(QVariant)));
|
this, SLOT(setDebugDebuggingHelpers(QVariant)));
|
||||||
connect(theDebuggerAction(RecheckDebuggingHelpers), SIGNAL(triggered()),
|
connect(theDebuggerAction(RecheckDebuggingHelpers), SIGNAL(triggered()),
|
||||||
this, SLOT(recheckDebuggingHelperAvailability()));
|
this, SLOT(recheckDebuggingHelperAvailability()));
|
||||||
|
|
||||||
connect(theDebuggerAction(ExpandStack), SIGNAL(triggered()),
|
|
||||||
this, SLOT(reloadFullStack()));
|
|
||||||
connect(theDebuggerAction(MaximalStackDepth), SIGNAL(triggered()),
|
|
||||||
this, SLOT(reloadFullStack()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GdbEngine::initializeVariables()
|
void GdbEngine::initializeVariables()
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ public:
|
|||||||
virtual void reloadRegisters() = 0;
|
virtual void reloadRegisters() = 0;
|
||||||
|
|
||||||
virtual void reloadSourceFiles() = 0;
|
virtual void reloadSourceFiles() = 0;
|
||||||
|
virtual void reloadFullStack() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -104,6 +104,7 @@ private:
|
|||||||
void reloadModules();
|
void reloadModules();
|
||||||
void reloadRegisters() {}
|
void reloadRegisters() {}
|
||||||
void reloadSourceFiles() {}
|
void reloadSourceFiles() {}
|
||||||
|
void reloadFullStack() {}
|
||||||
|
|
||||||
bool supportsThreads() const { return true; }
|
bool supportsThreads() const { return true; }
|
||||||
void maybeBreakNow(bool byFunction);
|
void maybeBreakNow(bool byFunction);
|
||||||
|
|||||||
Reference in New Issue
Block a user