aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@me.com>2013-09-10 12:24:37 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-10 15:49:24 +0200
commitac50d350a30c754eda7b70f4aef0badb11bfb7ef (patch)
tree22d523942a178c5307ff47dd38df261e0c3c19ac /src/qml
parent59ed8c355b99df0b949003a438ab850274261aa0 (diff)
V4 debugger: change agent API to work on all debuggers.
From a client point of view, there is no way to know which engine is executing which script. So, instead of passing in a debugger for a specific engine, have the agent set breakpoints on all debuggers. Change-Id: I53b8cbc1bdc02c7705042f2ac3a99a041992c134 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml')
-rw-r--r--src/qml/jsruntime/qv4debugging.cpp18
-rw-r--r--src/qml/jsruntime/qv4debugging_p.h7
2 files changed, 17 insertions, 8 deletions
diff --git a/src/qml/jsruntime/qv4debugging.cpp b/src/qml/jsruntime/qv4debugging.cpp
index 5534305068..10f22a11b8 100644
--- a/src/qml/jsruntime/qv4debugging.cpp
+++ b/src/qml/jsruntime/qv4debugging.cpp
@@ -298,19 +298,27 @@ void DebuggerAgent::removeDebugger(Debugger *debugger)
debugger->detachFromAgent();
}
-void DebuggerAgent::pause(Debugger *debugger)
+void DebuggerAgent::pause(Debugger *debugger) const
{
debugger->pause();
}
-void DebuggerAgent::addBreakPoint(Debugger *debugger, const QString &fileName, int lineNumber)
+void DebuggerAgent::pauseAll() const
{
- debugger->addBreakPoint(fileName, lineNumber);
+ foreach (Debugger *debugger, m_debuggers)
+ pause(debugger);
}
-void DebuggerAgent::removeBreakPoint(Debugger *debugger, const QString &fileName, int lineNumber)
+void DebuggerAgent::addBreakPoint(const QString &fileName, int lineNumber) const
{
- debugger->removeBreakPoint(fileName, lineNumber);
+ foreach (Debugger *debugger, m_debuggers)
+ debugger->addBreakPoint(fileName, lineNumber);
+}
+
+void DebuggerAgent::removeBreakPoint(const QString &fileName, int lineNumber) const
+{
+ foreach (Debugger *debugger, m_debuggers)
+ debugger->removeBreakPoint(fileName, lineNumber);
}
DebuggerAgent::~DebuggerAgent()
diff --git a/src/qml/jsruntime/qv4debugging_p.h b/src/qml/jsruntime/qv4debugging_p.h
index d71b25f378..908854865d 100644
--- a/src/qml/jsruntime/qv4debugging_p.h
+++ b/src/qml/jsruntime/qv4debugging_p.h
@@ -140,9 +140,10 @@ public:
void addDebugger(Debugger *debugger);
void removeDebugger(Debugger *debugger);
- void pause(Debugger *debugger);
- void addBreakPoint(Debugger *debugger, const QString &fileName, int lineNumber);
- void removeBreakPoint(Debugger *debugger, const QString &fileName, int lineNumber);
+ void pause(Debugger *debugger) const;
+ void pauseAll() const;
+ void addBreakPoint(const QString &fileName, int lineNumber) const;
+ void removeBreakPoint(const QString &fileName, int lineNumber) const;
Q_INVOKABLE virtual void debuggerPaused(QV4::Debugging::Debugger *debugger) = 0;