aboutsummaryrefslogtreecommitdiffstats
path: root/tools/qmlprofiler
Commit message (Collapse)AuthorAgeFilesLines
* Updated license headersJani Heikkinen2016-01-2010-170/+120
| | | | | | | | | | | | From Qt 5.7 -> tools & applications are lisenced under GPL v3 with some exceptions, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one (in those files which will be under GPL 3 with exceptions) Change-Id: I04760a0801837cfc516d1c7c02d4f503f6bb70b6 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Tools: fix expensive iteration over QHash::keys()Anton Kudryavtsev2016-01-151-3/+6
| | | | | Change-Id: I902bafdbc2ddfceeacfc9ef274513a2b0a23aed7 Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
* QtDeclarative: use prefix ++/-- for iterator typesAnton Kudryavtsev2016-01-091-2/+2
| | | | | | | | ... because it's useful for non-primitive types. These were the only two remaining instances in QtDeclarative. Change-Id: I52eba66313e953762d87313ccbd7ee0be9039be1 Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
* Extend QDebugMessageServiceUlf Hermann2015-11-171-1/+5
| | | | | | | | Add category and timestamp, and allow synchronizing the timestamps with QQmlProfilerService. Change-Id: I8dc67e43e1087e231167fc4cfdfb5f659e00c5b2 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QmlDebug: Restructure QPacket and QPacketProtocolUlf Hermann2015-11-171-1/+0
| | | | | | | | | | | | | | | | | | | | | | We cannot use the same data stream version for the client and server versions of QPacket and QPacketProtocol should not deal with QPackets but with simple byte arrays because the underlying QDataStream is hard to copy. The new QQmlDebugPacket picks its data stream version from QQmlDebugConnector now, which adjusts it when connecting. As there can only ever be one QQmlDebugConnector, we can keep the version static. The clients need to query the connection for the correct version. We may connect to several different servers sequentially or we may have a server running while using a client, and we don't want to confuse the versions between those. With this in place, all remaining occurrences of QDataStream are replaced with QPacket or QQmlDebugPacket. Change-Id: I3f6ba73fcbfad5e8df917c5feb9308116738a614 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QmlProfiler: Remove "Source code not available"Ulf Hermann2015-11-051-3/+1
| | | | | | | | | A missing tag is much better to express that piece of information. The original message would have to be parsed in order to figure out that it's actually not source code. Change-Id: I3cc7cad26c4fad84f5d1aa63c59a84523109dd2e Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Move QML profiler client to qmldebugUlf Hermann2015-10-307-326/+168
| | | | | Change-Id: I506909b68be6cbad631d1645673c2d38460aed33 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QmlProfiler: Collect useful input eventsUlf Hermann2015-10-305-16/+62
| | | | | | | | | Just "Key" or "Mouse" as only attributes of input events are not very useful. This change adds some additional information and also collects input events from QQuickWindow. Change-Id: I062bbffeef3fa87776bc8be33f2321edf793faa2 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* qmlprofiler: Use local socket connection by defaultUlf Hermann2015-10-302-14/+31
| | | | | | | This is faster and more reliable. Change-Id: I2eef4c7ffa99daf68d0f7a53a959f4fc788666c5 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Move QQmlDebugClient into separate static libraryUlf Hermann2015-10-306-534/+13
| | | | | Change-Id: Ib3daf9da2cf6798bd022cfcf54d11e565c9cb4ca Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QmlProfiler: Remove binding typesUlf Hermann2015-10-281-14/+2
| | | | | | | | | There is only one type of binding left and as all clients check atEnd() before trying to get the bindingType from the stream we can just remove all of this. Change-Id: I4d50ef4a691630b521292cb622ef539b3494a970 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QmlProfiler: Fix lookup of type stringsUlf Hermann2015-10-281-2/+2
| | | | | | | sizeof(QString) == sizeof(char *), but only incidentally. Change-Id: I1d39825746f5c6a74b540be7f254afbf0fb375d0 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* qmlprofiler: Clear trace client when trace is finishedUlf Hermann2015-10-151-0/+4
| | | | | | | | If the application was killed with -9 or similar there may be some open ranges left. We don't want them to influence the next session. Change-Id: I284086ff96d81a829f02e160ef8b82417fd51466 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* qmlprofiler: Simplify QmlProfilerClientUlf Hermann2015-10-154-84/+32
| | | | | | | We only need one class for it now. Change-Id: Iea2715993c0ce168a3ceeecbb694f1ad3585da68 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Put QPacketProtocol into its own static libraryUlf Hermann2015-10-154-644/+8
| | | | | | | | | | | | We need it in 3 places in qtdeclarative and we could also use it in QtCreator. We don't want to bundle it with the debug client code as it is also necessary for the server. QPacket replaces QQmlDebugStream as it has the same purpose. This also fixes the inconsitent handling of data stream versions. Change-Id: I650fae353f267511c551b427d9169f4d718aa7f2 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.6' into devLiang Qi2015-10-142-3/+3
|\ | | | | | | Change-Id: I11ea57222ba5aa683b7bfd7735fbc1d2cf86e875
| * Tools: Fix single-character string literals.Friedemann Kleint2015-10-132-3/+3
| | | | | | | | | | | | | | Use character literals where applicable. Change-Id: I55679dcc13c4c79567712c0dfaaabc2b84fee010 Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
* | qmlprofiler: Improve output of event location and optional descriptionsUlf Hermann2015-09-151-4/+7
| | | | | | | | | | | | | | | | | | | | | | Line and column information can be useful even without a file name. The file name can sometimes be inferred from the function being run and doesn't have to be stated again. Empty displayName and details tags are pretty useless, though. Change-Id: I0a65696d391e00d56f04acf646e3179dca163883 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | qmlprofiler: Remove V8 profiler clientUlf Hermann2015-08-286-264/+3
|/ | | | | | | It's been a long time since the last Qt version with V8. Change-Id: Iae36dd1c5bb6275254c6a64a8e6b843454139e2b Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.5' into 5.6Ulf Hermann2015-08-182-0/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/debugger/qv4debugservice.cpp src/qml/jsruntime/qv4value_inl_p.h src/qml/jsruntime/qv4value_p.h src/qml/memory/qv4mm.cpp src/qml/memory/qv4mm_p.h src/qml/qml/qqmlnotifier_p.h src/qml/qml/qqmlproperty.cpp src/quick/items/qquickflickable.cpp src/quick/items/qquicktextedit.cpp tests/auto/quick/qquickwindow/BLACKLIST The extra changes in qqmlbinding.cpp are ported from changes to qqmlproperty.cpp that occurred in parallel with writeBinding() being moved to qqmlbinding.cpp. Change-Id: I16d1920abf448c29a01822256f52153651a56356
| * qmlprofiler: Add missing #include <limits>.Friedemann Kleint2015-07-282-0/+4
| | | | | | | | | | | | | | Fixes the build with VS 2008 (Desktop). Change-Id: I8c9682526754586ea6f597f540a4d5b42363f052 Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
* | Allow specification of loadable debug services via command lineUlf Hermann2015-08-131-1/+2
| | | | | | | | | | | | | | | | | | We don't want to load the debugger when profiling and vice versa. This makes it easier to prevent unwanted services from getting loaded. Task-number: QTBUG-47623 Change-Id: I28893b6218110274a6d30b27805d89dbb443add3 Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
* | qmlprofiler: Use QQmlProfilerDefinitions for accessing definitionsUlf Hermann2015-07-235-131/+144
| | | | | | | | | | Change-Id: I6def7dd8a0ce0db22ad4829029d8510f5869c813 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Fix inefficient usages of qDeleteAll()Sérgio Martins2015-06-261-2/+2
| | | | | | | | | | | | | | | | | | | | No reason to iterate through all items to create a temporary QList we don't need. Change-Id: I3c5388f026ded0290afb9dd35fc7934011c4998d Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | qmlprofiler: Remove some dead codeUlf Hermann2015-06-152-7/+1
| | | | | | | | | | Change-Id: If1f542bc73d5af259ea3c0a5da40786f8d6f3dbf Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | qmlprofiler: Allow specification of features to recordUlf Hermann2015-06-094-2/+120
| | | | | | | | | | | | Task-number: QTBUG-43066 Change-Id: I963a5a483f961dd150f00de3d96c723c8b62edb8 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | qmlprofiler: Record input eventsUlf Hermann2015-06-095-6/+43
| | | | | | | | | | Change-Id: Ib6413d97638b192377d7dbeb19ed0c2f733a06a1 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | qmlprofiler: Output data after application quits in non-interactive modeUlf Hermann2015-06-073-1/+12
| | | | | | | | | | Change-Id: I38abed0d5af3bcc7be5fa9e21bde14be40a3ce1d Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | qmlprofiler: Redirect app stdout to qmlprofiler stderrUlf Hermann2015-06-071-1/+1
| | | | | | | | | | | | | | | | This seems to be a common technique for tools that wrap application execution and potentially have their own output. Change-Id: I4ca1bc5861d5b915b4ca07aec08ad06c8c73c8d6 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | qmlprofiler: Improve options for trace outputUlf Hermann2015-06-064-50/+211
| | | | | | | | | | | | | | | | | | | | | | | | * Remove the auto-generation of file names. * Accept file names as parameters or from interactive commands * Output to stdout by default for better scripting and quick preview * Decouple output from clearing of data so that you can write the same data multiple times. Task-number: QTBUG-43066 Change-Id: Ia4cc3701cbac7c6f8948b11307130a5d6a2ff44c Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | qmlprofiler: Only accept commands if we ask for themUlf Hermann2015-06-066-41/+20
| | | | | | | | | | | | | | | | This way we can shut down the input thread after the last command and we cannot get commands before we can process them. Change-Id: Ie1583a338da9c9df0e07c9e09ce185857c5ea66d Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | qmlprofiler: Allow aggregation of multiple traces into one file.Ulf Hermann2015-05-211-4/+6
| | | | | | | | | | Change-Id: Ifc9f9adafa3178e68212fb97914a6f4cae9a4c83 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | qmlprofiler: In interactive mode, don't quit if application quitsUlf Hermann2015-05-211-7/+7
| | | | | | | | | | | | | | We might want to inspect or save the pending data in some special way. Change-Id: I235b1f948ad4a9ddd100332991243231119bcf08 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | qmlprofiler: Remove useless 'maximumTime' member.Ulf Hermann2015-05-211-11/+0
| | | | | | | | | | Change-Id: Icdb35e0763694312cfb4166df0f537e1845116e8 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | qmlprofiler: Add non-interactive mode and make it the default.Ulf Hermann2015-05-213-16/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | If you just run a test application through the profiler without any further parameters, you want it to record the data the application generates and then terminate itself. [ChangeLog][QtQml][Behavior Change] Make qmlprofiler command line interface better suited for scripting. Task-number: QTBUG-43066 Change-Id: I831e714b9c7b4b984b6450ad5c78ba4fdae6b8f6 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | qmlprofiler: Clean up recording state messUlf Hermann2015-05-214-96/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | The recording state is a global property of the profiler client, it has to match the application's recording status as well as possible, and the user can set an initial target value with a command line parameter. This way we don't get strange error messages when the application quits by itself and properly sends all the data before. Task-number: QTBUG-43066 Change-Id: Id93aa7fb940f870c8f16cea8427c38aab450f864 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | qmlprofiler: Add some sanity to command line parsing.Ulf Hermann2015-05-213-85/+87
|/ | | | | | | | | Use QCommandLineParser to allow for double-dash options and improve the help text. Task-number: QTBUG-43066 Change-Id: Iac772cbbf750016a9058658c9b4b275faf8fb62f Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-161-14/+2
|\ | | | | | | | | | | | | | | Conflicts: tests/auto/qml/debugger/qv4profilerservice/qv4profilerservice.pro tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler.pro Change-Id: I76d87e3df97ebdba902ca3d7488c1582eca2a83c
| * Use qt_subtract_from_timeout instead of duplicating qt_timeout_valueDaniel Teske2015-04-141-14/+2
| | | | | | | | | | | | | | | | The same function was duplicated 5 times in qtbase, so create one copy to rule them all and use it also in QtDeclarative. Change-Id: I4e39a7ee0541ce4fe9710cea344e537ee011bbe9 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | Update copyright headersJani Heikkinen2015-02-1215-105/+105
|/ | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I61120571787870c0ed17066afb31779b1e6e30e9 Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
* Update license headers and add new licensesJani Heikkinen2014-08-2515-285/+165
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 & LICENSE.GPLv2 - Removed LICENSE.GPL Change-Id: I84a565e2e0caa3b76bf291a7d188a57a4b00e1b0 Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
* Write memory events into tracefiles generated by qmlprofilerUlf Hermann2014-08-125-0/+35
| | | | | Change-Id: Ic01505194f29967ed1aad16fe36e14dc5532ae25 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Javascript heap profilerUlf Hermann2014-06-061-1/+2
| | | | | | | | | This profiler tracks every memory allocation and deallocation, by the MemoryManager as well as the V4 VM, and exposes them as a stream of events to the profiler service. Change-Id: I85297d498f0a7eb55df5d7829c4b7307de980519 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Properly support all events in trace files and clean up a bit.Ulf Hermann2014-06-065-69/+236
| | | | | | | | | In particular, use both message and range type to identify events so that we can get rid of the messy type aliasing. Task-number: QTBUG-36953 Change-Id: I691a7501aa285f78f7ce5b7017ef50628f44fcf7 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Save painting events in Qt5 style with thread ID from qmlprofilerUlf Hermann2014-03-185-22/+24
| | | | | | | | This is necessary to support https://codereview.qt-project.org/80391 and to make the trace files consistent with Qt Creator's. Change-Id: I45490c33ae9bd8fbbb6bace08bdc2f44c76bf966 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* fix whitespaceOswald Buddenhagen2014-01-222-2/+2
| | | | | | | remove trailing spaces and expand tabs Change-Id: Ieacb9d096b612c45d1a64700044c114d1f7522bc Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* suppress qml import scan for the tools which don't need itOswald Buddenhagen2013-10-211-0/+1
| | | | | Change-Id: Iefdaf60edbe47d2941a0696d96e7b79a67b46d8d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Merge remote-tracking branch 'origin/stable' into devSergio Ahumada2013-09-131-0/+1
|\ | | | | | | Change-Id: I6fc67bf30a901f8078a5b99a9e290190b3f64b81
| * Fix a warning about not using a set variableLaszlo Papp2013-09-051-0/+1
| | | | | | | | | | | | | | | | | | 6a36bcb7945109daebd6464ee6d0a3f6724fb18b fixed similar warnings, but apparently the tools folder was left out. Change-Id: If7f889e404264688fa6208afcd3bfdba5a161714 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* | Remove qSort usages from declarativeGiuseppe D'Angelo2013-09-131-2/+4
| | | | | | | | | | | | | | | | | | QtAlgorithms is getting deprecated, see http://www.mail-archive.com/development@qt-project.org/msg01603.html Change-Id: I8fa7d0186cc8f0ba562695974829e37f1eb87f2f Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>