summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilipe Azevedo <filipe.azevedo@kdab.com>2017-01-13 13:18:39 +0100
committerFilipe Azevedo <filipe.azevedo@kdab.com>2017-01-26 14:00:12 +0000
commit28fd07e95aa5ecef450908a17a1d4fe2400c5f6e (patch)
tree14902841d9bb74e3ae73c5258da46485c8ffa4aa
parent6bcc657adb23ff44b322976b94b1e4548996cd98 (diff)
downloadqt-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.cpp25
-rw-r--r--src/plugins/debugger/debuggerplugin.h3
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;
};