diff options
author | Ulf Hermann <ulf.hermann@theqtcompany.com> | 2015-11-30 12:04:59 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@theqtcompany.com> | 2016-01-07 16:25:12 +0000 |
commit | eae5a20b099450985442c70186fd7a7be442f133 (patch) | |
tree | e7be003e4ed86ef69ad334eebfd8689cdb1e25b3 /src/plugins/qmltooling/qmldbg_debugger/qv4debugger.h | |
parent | 881bb537c92684d25fae4fec9ac2dd61e1f9723c (diff) |
V4 Debugger: Allow expression evaluation without pausing
We can schedule jobs into the GUI thread just fine, even if the
debugger is running. They will run in global scope then. The only
restriction is that we need exactly one engine to be running in order
to do that, as otherwise we cannot decide which engine to use.
To avoid interaction with the engine from the debugger thread we
move the value lookup functionality into the data collector, and
drop the RefHolder.
Change-Id: Ifae124d70f42e488ed9a1b6794baef638992ddb1
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Diffstat (limited to 'src/plugins/qmltooling/qmldbg_debugger/qv4debugger.h')
-rw-r--r-- | src/plugins/qmltooling/qmldbg_debugger/qv4debugger.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4debugger.h b/src/plugins/qmltooling/qmldbg_debugger/qv4debugger.h index 8662259264..abb43f82f3 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4debugger.h +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4debugger.h @@ -55,6 +55,7 @@ QT_BEGIN_NAMESPACE +class QV4DataCollector; class QV4Debugger : public QV4::Debugging::Debugger { Q_OBJECT @@ -110,8 +111,10 @@ public: }; QV4Debugger(QV4::ExecutionEngine *engine); + ~QV4Debugger(); QV4::ExecutionEngine *engine() const; + QV4DataCollector *collector() const; void pause(); void resume(Speed speed); @@ -153,6 +156,9 @@ public: signals: void debuggerPaused(QV4Debugger *self, QV4Debugger::PauseReason reason); +private slots: + void runJobUnpaused(); + private: // requires lock to be held void pauseAndWait(PauseReason reason); @@ -174,6 +180,7 @@ private: Job *m_gatherSources; Job *m_runningJob; + QV4DataCollector *m_collector; QWaitCondition m_jobIsRunning; }; |