diff options
author | Filipe Azevedo <filipe.azevedo@kdab.com> | 2017-01-13 13:18:39 +0100 |
---|---|---|
committer | Filipe Azevedo <filipe.azevedo@kdab.com> | 2017-01-26 14:00:12 +0000 |
commit | 28fd07e95aa5ecef450908a17a1d4fe2400c5f6e (patch) | |
tree | 14902841d9bb74e3ae73c5258da46485c8ffa4aa | |
parent | 6bcc657adb23ff44b322976b94b1e4548996cd98 (diff) | |
download | qt-creator-28fd07e95aa5ecef450908a17a1d4fe2400c5f6e.tar.gz |
Add api to get some debugger state about engines
That’s needed for GammaRay integration.
Change-Id: I67a5dba81fa8d88024395126c45d0a3e9cfdd457
Reviewed-by: hjk <hjk@qt.io>
-rw-r--r-- | src/plugins/debugger/debuggerplugin.cpp | 25 | ||||
-rw-r--r-- | src/plugins/debugger/debuggerplugin.h | 3 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index e1346f9639..7d846abde5 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -149,6 +149,8 @@ #include <QTreeWidget> #include <QVBoxLayout> #include <QVariant> +#include <QJsonDocument> +#include <QJsonObject> #include <QtPlugin> #ifdef WITH_TESTS @@ -2152,6 +2154,29 @@ void DebuggerPlugin::attachExternalApplication(RunControl *rc) createAndScheduleRun(rp, kit); } +void DebuggerPlugin::getEnginesState(QByteArray *json) const +{ + QTC_ASSERT(json, return); + QVariantMap result { + { "version", 1 } + }; + QVariantMap states; + + for (int i = 0; i < dd->m_snapshotHandler->size(); ++i) { + const DebuggerEngine *engine = dd->m_snapshotHandler->at(i); + states[QString::number(i)] = QVariantMap({ + { "current", dd->m_snapshotHandler->currentIndex() == i }, + { "pid", engine->inferiorPid() }, + { "state", engine->state() } + }); + } + + if (!states.isEmpty()) + result["states"] = states; + + *json = QJsonDocument(QJsonObject::fromVariantMap(result)).toJson(); +} + void DebuggerPluginPrivate::attachToQmlPort() { DebuggerRunParameters rp; diff --git a/src/plugins/debugger/debuggerplugin.h b/src/plugins/debugger/debuggerplugin.h index 5090960860..16ed5ff7e5 100644 --- a/src/plugins/debugger/debuggerplugin.h +++ b/src/plugins/debugger/debuggerplugin.h @@ -56,6 +56,9 @@ private: // Called from AppOutputPane::attachToRunControl(). Q_SLOT void attachExternalApplication(ProjectExplorer::RunControl *rc); + // Called from GammaRayIntegration + Q_SLOT void getEnginesState(QByteArray *json) const; + QList<QObject *> createTestObjects() const override; }; |