aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmldebug
Commit message (Collapse)AuthorAgeFilesLines
* Tooling: Fix integer range checksUlf Hermann2018-06-061-3/+2
| | | | | | | | | | | | | | | | | The packet protocol should check if the number of bytes to be read is positive. Also, a Q_ASSERT on the return value of read() is too brutal. The device can have failed for any number of reasons and we don't want to crash the application because of that. Finally, the number of bytes to be read includes the bytes read to determine the number. Make that clearer by subtracting the actual count, not sizeof(qint32). The check in QQmlProfilerTypedEvent is supposed to happen before we cast the number to the more restrictive type. Furthermore, if subtype doesn't fit the range constraint, we don't have to do anything at all as the default rangeType is already set before. Change-Id: I48c8c47e4207abae6e718eea97815d43e7f9d833 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Add "We mean it" to qqmlprofilerclientdefinitions_p.hUlf Hermann2018-04-271-0/+11
| | | | | Change-Id: I4ff64856c066309057e9f201ab51ed805042aefc Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Make QtQmlDebug independent of QtQmlUlf Hermann2018-04-2410-65/+232
| | | | | | | | | | | | | | | | This means QtQmlDebug needs its own qqmlprofilerdefintions.h. This is a good thing because this way we notice if we change the definitions in an incompatible way. The test uses QtQmlDebug after all. Also, qqmldebugserviceinterfaces_p.h is not available anymore, which means the service names have to be spelled out. This, also, is beneficial as it prevents us from accidentally changing the names. In the context of QmlDebug we don't need to namespace the profiler definitions, either. This simplifies some code. Task-number: QTBUG-60996 Change-Id: Ibb39e48c9b758687d68b8ce4431f45eb26939a09 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Silence a GCC 8 warning in qqmlprofilereventVille Voutilainen2018-02-281-2/+2
| | | | | | | | qtdeclarative/src/qmldebug/qqmlprofilerevent_p.h:100:55: error: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct QQmlProfilerEvent’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Werror=class-memaccess] memcpy(this, &other, sizeof(QQmlProfilerEvent)); Change-Id: I72a03da54784ba3dcd89def5ae44c1ae26a68e53 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* init variables where they are declared when possible (clang-tidy)Shawn Rutledge2018-02-261-10/+7
| | | | | | | | clang-tidy -p compile_commands.json $file -checks='-*,modernize-use-default-member-init,readability-redundant-member-init' -config='{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: "1"}]}' -header-filter='qtdeclarative' -fix Change-Id: I705f3235ff129ba68b0d8dad54a083e29fcead5f Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* use nullptr consistently (clang-tidy)Shawn Rutledge2018-02-263-4/+4
| | | | | | | | | | | | | From now on we prefer nullptr instead of 0 to clarify cases where we are assigning or testing a pointer rather than a numeric zero. Also, replaced cases where 0 was passed as Qt::KeyboardModifiers with Qt::NoModifier (clang-tidy replaced them with nullptr, which waas wrong, so it was just as well to make the tests more readable rather than to revert those lines). Change-Id: I4735d35e4d9f42db5216862ce091429eadc6e65d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* qqmlprofilereventreceiver_p.h: Add "We mean it" commentv5.11.0-alpha1Friedemann Kleint2018-02-141-0/+11
| | | | | | | | | | Fix warning: QtQmlDebug: WARNING: .../src/qmldebug/qqmlprofilereventreceiver_p.h does not have the "We mean it." warning Amends b82296f825daf0ba110fea4aa1b61f96d63f371b. Change-Id: I540bee466be96ba787283bfc7b1d5c36066df2ed Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QmlDebug: Clear profiler client's trackedEngines on clear()Ulf Hermann2018-02-081-0/+1
| | | | | Change-Id: Ibd3e033339e26158c5f5c3dadbbcb6a903671cf5 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QmlDebug: Use EngineControl to hold engines until we're done with themUlf Hermann2018-02-082-4/+25
| | | | | | | | | Holding the engines with EngineControl makes sure we always receive the full trace before the connection drops. Task-number: QTBUG-66269 Change-Id: I9177c2a52743ba781547696508342c8d98557121 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QmlDebug: Don't lie about blocked engines in EngineControlUlf Hermann2018-02-081-13/+18
| | | | | | | | Previously additional engineIds could be accidentally added to the list by processing the engineAdded and engineRemoved signals. Change-Id: Ibac0c1ff48ae31c736371d319fe91d33a3396b05 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Use better QmlProfiler client from Qt CreatorUlf Hermann2018-02-0215-329/+1822
| | | | | | | | | | | | This client can track locations itself, and thus doesn't require the server to send the event types over and over with each message. Once all our client implementations have this feature we can drop a lot of code. Furthermore, this way we can write regression tests for bugs that only occur when client side location tracking is active. Change-Id: I3735392452e20a7be98e92b900fadef04701d85f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Run includemocs in qtdeclarativeThiago Macieira2017-04-263-0/+6
| | | | | Change-Id: I84e363d735b443cb9beefffd14b8c023a37aa489 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* headers: Add missing override and remove redundant virtualAlexander Volkov2016-12-072-2/+2
| | | | | | Change-Id: Ifa816ebcd79372afca42dbd0dc0ecde006bb688a Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Tooling: Convert connects to Qt5 styleUlf Hermann2016-07-283-29/+28
| | | | | Change-Id: I6746b777f73d047f5cf610bfca9b320ac1e13676 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QmlDebug: Fixes for QQmlDebugConnectionUlf Hermann2016-07-251-3/+4
| | | | | | | | Properly close the connection on invalid hello messages and implement flush() also for local sockets. Change-Id: Ie78441b9933c6de053962a11b5d7e2636792a31c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QmlProfiler: Send RangeData and RangeLocation only once per typeUlf Hermann2016-05-272-2/+27
| | | | | | | This saves time when serializing the data to be sent. Change-Id: Ic8c534d55445934a64dd253273099194b27d98af Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QmlDebug: Support sending multiple messages per packetUlf Hermann2016-03-111-5/+8
| | | | | | | | | | | | | This reduces the overhead caused by the prepending of service names to packets. When running the planets example from qtcanvas3d through qmlprofiler the average message length, without service name, is 26 bytes. The average full packet, with name and length, is 64 bytes long. In fact, the time between stopping the application and the last message arriving in the profiling client is reduced by 30-50% with this change. Change-Id: I0ffdd0483d45bbe8b092c59a9dcd63c6dc59119c Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Updated license headersJani Heikkinen2016-01-1912-168/+240
| | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: Ic36f1a0a1436fe6ac6eeca8c2375a79857e9cb12 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* QmlDebug: Add some useful methods to QQmlDebugConnectionUlf Hermann2015-11-184-3/+55
| | | | | Change-Id: Iee2c09278f31ea93da9c02be6b2fc909b5f154d0 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QmlDebug: Move EngineControl client to qmldebugUlf Hermann2015-11-174-0/+315
| | | | | Change-Id: Ia2e01b3acb8e0dab19b67dd612e6228d13b4755d Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QmlDebug: Make profiler client use the right service keyUlf Hermann2015-11-171-1/+2
| | | | | | | This is the upside of having the keys exported after all. Change-Id: I265f481668e72d3c3bde1400b7f1e2b61eea82af Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QmlDebug: Restructure QPacket and QPacketProtocolUlf Hermann2015-11-176-28/+37
| | | | | | | | | | | | | | | | | | | | | | 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>
* Move QML profiler client to qmldebugUlf Hermann2015-10-305-3/+601
| | | | | Change-Id: I506909b68be6cbad631d1645673c2d38460aed33 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Move QQmlDebugClient into separate static libraryUlf Hermann2015-10-306-0/+783
Change-Id: Ib3daf9da2cf6798bd022cfcf54d11e565c9cb4ca Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>