forked from qt-creator/qt-creator
Debugger: Use new shared result reporting infrastructure
Unify the watchPoint() interfaces, move the combined implementation to the DebuggerEngine base. Change-Id: Ic93aa760e7258197aed5eb7bfea257a40012cccf Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -1513,8 +1513,20 @@ void DebuggerEngine::selectWatchData(const QString &)
|
||||
{
|
||||
}
|
||||
|
||||
void DebuggerEngine::watchPoint(const QPoint &)
|
||||
void DebuggerEngine::watchPoint(const QPoint &pnt)
|
||||
{
|
||||
DebuggerCommand cmd("watchPoint", NeedsFullStop);
|
||||
cmd.arg("x", pnt.x());
|
||||
cmd.arg("y", pnt.y());
|
||||
cmd.callback = [this](const DebuggerResponse &response) {
|
||||
qulonglong addr = response.data["selected"].toAddress();
|
||||
if (addr == 0)
|
||||
showStatusMessage(tr("Could not find a widget."));
|
||||
// Add the watcher entry nevertheless, as that's the place where
|
||||
// the user expects visual feedback.
|
||||
watchHandler()->watchExpression(response.data["expr"].data(), QString(), true);
|
||||
};
|
||||
runCommand(cmd);
|
||||
}
|
||||
|
||||
void DebuggerEngine::runCommand(const DebuggerCommand &)
|
||||
|
@@ -220,7 +220,7 @@ public:
|
||||
virtual void startDebugger(DebuggerRunControl *runControl);
|
||||
virtual void prepareForRestart() {}
|
||||
|
||||
virtual void watchPoint(const QPoint &);
|
||||
virtual void watchPoint(const QPoint &pnt);
|
||||
virtual void runCommand(const DebuggerCommand &cmd);
|
||||
virtual void openMemoryView(const MemoryViewSetupData &data);
|
||||
virtual void fetchMemory(MemoryAgent *, quint64 addr, quint64 length);
|
||||
|
@@ -3615,29 +3615,6 @@ void GdbEngine::assignValueInDebugger(WatchItem *item,
|
||||
runCommand(cmd);
|
||||
}
|
||||
|
||||
void GdbEngine::watchPoint(const QPoint &pnt)
|
||||
{
|
||||
DebuggerCommand cmd("watchPoint", NeedsFullStop);
|
||||
cmd.arg("x", pnt.x());
|
||||
cmd.arg("y", pnt.y());
|
||||
cmd.callback = CB(handleWatchPoint);
|
||||
runCommand(cmd);
|
||||
}
|
||||
|
||||
void GdbEngine::handleWatchPoint(const DebuggerResponse &response)
|
||||
{
|
||||
if (response.resultClass == ResultDone) {
|
||||
GdbMi res;
|
||||
res.fromString(response.consoleStreamOutput);
|
||||
qulonglong addr = res["selected"].toAddress();
|
||||
if (addr == 0)
|
||||
showStatusMessage(tr("Could not find a widget."));
|
||||
// Add the watcher entry nevertheless, as that's the place where
|
||||
// the user expects visual feedback.
|
||||
watchHandler()->watchExpression(res["expr"].data(), QString(), true);
|
||||
}
|
||||
}
|
||||
|
||||
class MemoryAgentCookie
|
||||
{
|
||||
public:
|
||||
|
@@ -355,9 +355,6 @@ protected:
|
||||
void changeMemory(MemoryAgent *agent, quint64 addr, const QByteArray &data) override;
|
||||
void handleFetchMemory(const DebuggerResponse &response, MemoryAgentCookie ac);
|
||||
|
||||
void watchPoint(const QPoint &) override;
|
||||
void handleWatchPoint(const DebuggerResponse &response);
|
||||
|
||||
void showToolTip();
|
||||
|
||||
void handleVarAssign(const DebuggerResponse &response);
|
||||
|
@@ -148,22 +148,6 @@ void LldbEngine::debugLastCommand()
|
||||
runCommand(m_lastDebuggableCommand);
|
||||
}
|
||||
|
||||
void LldbEngine::watchPoint(const QPoint &pnt)
|
||||
{
|
||||
DebuggerCommand cmd("watchPoint", NeedsFullStop);
|
||||
cmd.arg("x", pnt.x());
|
||||
cmd.arg("y", pnt.y());
|
||||
cmd.callback = [this](const DebuggerResponse &response) {
|
||||
qulonglong addr = response.data["selected"].toAddress();
|
||||
if (addr == 0)
|
||||
showStatusMessage(tr("Could not find a widget."));
|
||||
// Add the watcher entry nevertheless, as that's the place where
|
||||
// the user expects visual feedback.
|
||||
watchHandler()->watchExpression(response.data["expr"].data(), QString(), true);
|
||||
};
|
||||
runCommand(cmd);
|
||||
}
|
||||
|
||||
void LldbEngine::shutdownInferior()
|
||||
{
|
||||
QTC_ASSERT(state() == InferiorShutdownRequested, qDebug() << state());
|
||||
|
@@ -144,9 +144,6 @@ private:
|
||||
void runCommand(const DebuggerCommand &cmd) override;
|
||||
void debugLastCommand() override;
|
||||
|
||||
void watchPoint(const QPoint &) override;
|
||||
void handleWatchPoint(const DebuggerResponse &response);
|
||||
|
||||
private:
|
||||
DebuggerCommand m_lastDebuggableCommand;
|
||||
|
||||
|
Reference in New Issue
Block a user