QmlProfiler: Include debug messages in trace

A separate model will show them in the timeline for better orientation.

Change-Id: I537bac82ddef6a8bcc64ae403731512f8edcc9db
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This commit is contained in:
Ulf Hermann
2015-11-13 17:55:58 +01:00
parent 35cedb2aee
commit b89d12c450
6 changed files with 42 additions and 10 deletions

View File

@@ -65,7 +65,8 @@ static const char *MESSAGE_STRINGS[] = {
"Complete",
"PixmapCache",
"SceneGraph",
"MemoryAllocation"
"MemoryAllocation",
"DebugMessage"
};
Q_STATIC_ASSERT(sizeof(MESSAGE_STRINGS) == QmlDebug::MaximumMessage * sizeof(const char *));
@@ -226,6 +227,8 @@ QmlDebug::ProfileFeature featureFromEvent(const QmlProfilerDataModel::QmlEventTy
return ProfileSceneGraph;
case MemoryAllocation:
return ProfileMemory;
case DebugMessage:
return ProfileDebugMessages;
default:
return MaximumProfileFeature;
}
@@ -235,8 +238,6 @@ void QmlProfilerFileReader::loadEventData(QXmlStreamReader &stream)
{
QTC_ASSERT(stream.name() == _("eventData"), return);
QXmlStreamAttributes attributes = stream.attributes();
int eventIndex = -1;
QmlProfilerDataModel::QmlEventTypeData event = {
QString(), // displayname
@@ -327,7 +328,8 @@ void QmlProfilerFileReader::loadEventData(QXmlStreamReader &stream)
elementName == _("sgEventType") ||
elementName == _("memoryEventType") ||
elementName == _("mouseEvent") ||
elementName == _("keyEvent")) {
elementName == _("keyEvent") ||
elementName == _("level")) {
event.detailType = readData.toInt();
break;
}
@@ -417,6 +419,8 @@ void QmlProfilerFileReader::loadProfilerDataModel(QXmlStreamReader &stream)
range.setNumericData(1, attributes.value(_("data1")).toLongLong());
if (attributes.hasAttribute(_("data2")))
range.setNumericData(2, attributes.value(_("data2")).toLongLong());
if (attributes.hasAttribute(_("text")))
range.setStringData(attributes.value(_("text")).toString());
range.setTypeIndex(attributes.value(_("eventIndex")).toInt());
@@ -585,6 +589,8 @@ void QmlProfilerFileWriter::save(QIODevice *device)
stream.writeTextElement(_("sgEventType"), QString::number(event.detailType));
} else if (event.message == MemoryAllocation) {
stream.writeTextElement(_("memoryEventType"), QString::number(event.detailType));
} else if (event.message == DebugMessage) {
stream.writeTextElement(_("level"), QString::number(event.detailType));
}
stream.writeEndElement();
incrementProgress();
@@ -652,6 +658,9 @@ void QmlProfilerFileWriter::save(QIODevice *device)
if (event.message == MemoryAllocation)
stream.writeAttribute(_("amount"), QString::number(range.numericData(0)));
if (event.message == DebugMessage)
stream.writeAttribute(_("text"), range.stringData());
stream.writeEndElement();
incrementProgress();
}