diff options
author | Erik Verbruggen <erik.verbruggen@me.com> | 2013-09-10 12:24:37 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-10 15:49:24 +0200 |
commit | ac50d350a30c754eda7b70f4aef0badb11bfb7ef (patch) | |
tree | 22d523942a178c5307ff47dd38df261e0c3c19ac /src/qml | |
parent | 59ed8c355b99df0b949003a438ab850274261aa0 (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.cpp | 18 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4debugging_p.h | 7 |
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; |