aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/debugger
Commit message (Collapse)AuthorAgeFilesLines
* Run includemocs in qtdeclarativeThiago Macieira2017-04-265-0/+9
| | | | | Change-Id: I84e363d735b443cb9beefffd14b8c023a37aa489 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix crash when loading cache files generated ahead of timeSimon Hausmann2017-03-071-3/+7
| | | | | | | | | | The offset of the runtimeStrings array differed between a V4_BOOTSTRAP build and the regular library build. This is an intermediate fix until QTBUG-58666 is fixed properly. Change-Id: Id1310ffa82f1079c1acef7730db41186fa62610f Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.8' into 5.9Liang Qi2017-02-242-8/+12
|\ | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/compiler/qv4ssa.cpp src/quick/accessible/qaccessiblequickview_p.h src/quick/items/qquickmousearea.cpp src/quick/util/qquickanimatorjob.cpp tools/qmlplugindump/main.cpp Change-Id: I84474cf39895b9b757403971d2e9196e8c9d1809
| * Fix -no-qmldebug debug build with MSVCKai Koehne2017-02-012-8/+12
| | | | | | | | | | | | | | | | | | [Platform Specific Changes][Windows] Fixed compilation on MSVC with -no-qml-debug configure argument. Task-number: QTBUG-58412 Change-Id: I915ed3d345b3f1e4e5863456522784ab6c9b15cf Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2017-01-261-1/+1
|\| | | | | | | | | | | | | | | Conflicts: src/quick/util/qquickutilmodule.cpp tools/qmllint/main.cpp Change-Id: Ic2283f88c293ca7fc776de3e83eb4c7812309d8a
| * Fix build without qml-debugTasuku Suzuki2017-01-241-1/+1
| | | | | | | | | | Change-Id: If4308195b05255a49a06184cab3db88ec9532f76 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-251-30/+29
|\| | | | | | | | | | | | | Conflicts: tools/qmlimportscanner/main.cpp Change-Id: I01e17581f6691a03f83788773364d0cf96319514
| * QmlProfiler: Don't create a new event ID for each binding instanceUlf Hermann2016-12-201-30/+29
| | | | | | | | | | | | | | | | | | | | We want the IDs to reflect the location and the type of event that is happening. Thus all instances of a particular component should share the same IDs for their bindings. Otherwise the aggregated views of the QML profiler list the same locations again and again for each object. Change-Id: I3f8a7531589b42f785e40c7c5b04b229f639d696 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-143-5/+13
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.cpp src/plugins/qmltooling/qmldbg_inspector/globalinspector.cpp src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp src/qml/qml/qqmlimport.cpp src/quick/items/context2d/qquickcontext2dtexture_p.h tools/qmleasing/splineeditor.h Change-Id: I8f6630fcac243824350986c8e9f4bd6483bf20b5
| * Mostly use the QV4::Function in javascript expressionsLars Knoll2016-12-091-2/+7
| | | | | | | | | | | | | | | | | | Move the function() accessor from QQmlBoundSIgnal to QQmlJavaScriptExpression. Change the profiler to operate on QV4::Function objects for binding profiling. Change-Id: Ic7ce83c487ceb69cad4b16e3dab42026238b7e82 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Merge remote-tracking branch 'origin/5.8.0' into 5.8Lars Knoll2016-12-071-1/+4
| |\ | | | | | | | | | Change-Id: I19804e880005c66880eeabfaebf0b1093de80e6b
| | * Make sure we cannot reload debug connectors on shutdownUlf Hermann2016-11-301-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The various Q_GLOBAL_STATICs involved in the loading of debug plugins may be destroyed in any order. If the connector is unloaded before the services, it might get reloaded when one service calls instance(), trying to deregister itself. Prevent this by clearing all the parameters. Change-Id: Iee4a05e09401be916f0339d72eb8b5f2c9eac55d Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | Get rid of most QT_NO_FOO usagesLars Knoll2016-11-291-2/+2
| |/ | | | | | | | | | | | | | | Instead use QT_CONFIG(foo). This change actually detected a few mis-spelled macros and invalid usages. Change-Id: I06ac327098dd1a458e6bc379d637b8e2dac52f85 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | QmlDebug: Allow specifying debug connectors on the command lineUlf Hermann2016-11-241-0/+10
| | | | | | | | | | | | | | | | | | | | With this change arbitrary debug connector plugins can be loaded by specifying them in the "-qmljsdebugger=..." argument. It was already possible to load them by using startDebugConnector(...), but that requires source code modification. Change-Id: I06ec7f54ec65add7cff2846ed4083ea878a04765 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | QmlDebug: Add more information about available debug servicesUlf Hermann2016-11-232-1/+14
| | | | | | | | | | | | | | | | There is a native debug service that can be used with a native debuger and the QML profiler can make use of the debug messages service. Change-Id: Ie1b2b148e7555d980e03a18c97ec725748c473c7 Reviewed-by: hjk <hjk@qt.io>
* | QmlTooling: Move native debug service into own pluginUlf Hermann2016-11-181-2/+2
| | | | | | | | | | | | | | | | QV4DebugService and QQmlNativeDebugService cannot coexist at the same time. Thus, there is no point in putting them into one plugin. Change-Id: Ic042f7472fce23d504c62ccf96756b0f1bd68534 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-10-183-30/+73
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4variantobject.cpp src/qml/types/qquickworkerscript.cpp src/quick/scenegraph/util/qsgdefaultpainternode_p.h tools/qmljs/qmljs.cpp Change-Id: I876242714ec8c046238d8fd673a5ace2455b2b59
| * QML: Prevent unnecessary QUrl->QString->QByteArray conversionsErik Verbruggen2016-10-142-30/+55
| | | | | | | | | | | | | | | | When QQmlMemoryProfiler is not used, do not convert the filename URL of a component to be converted from QUrl to a UTF8 char array. Change-Id: I741ec5b58678f3a25badac38f0198c9cff203eb1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-10-101-0/+18
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/quick/quickwidgets/quickwidget/main.cpp src/qml/jsruntime/qv4jsonobject.cpp src/qml/jsruntime/qv4qobjectwrapper.cpp src/qml/jsruntime/qv4qobjectwrapper_p.h src/qml/qml/qqmlengine.cpp src/qml/qml/qqmlpropertycache.cpp src/qml/qml/qqmlpropertycache_p.h src/quick/items/qquickanimatedsprite.cpp src/quick/items/qquickitem.cpp src/quick/items/qquickitem.h src/quick/items/qquickitem_p.h src/quick/items/qquickview_p.h src/quick/scenegraph/qsgcontext.cpp src/quick/scenegraph/qsgdefaultrendercontext.cpp Change-Id: I172c6fbff97208f21ed4c8b6db3d1747a889f22b
| | * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-09-301-0/+18
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/quick/qquicktext/tst_qquicktext.cpp Change-Id: I241cd418bb7e7b95e0a0a2ee4c465d48be2a5582
| | | * V4: Free up 2 address bits in 64bit modeErik Verbruggen2016-09-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows for the OS to use 49 address bits. It also maps JS Undefined to the C++ nullptr on 64bit. Task-number: QTBUG-54822 Change-Id: I7cc90620f499be1506a61aac77d72d067308838c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | | * Add a facility to version type information for debugginghjk2016-09-221-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This serves the same purpose as qtbase/corelib/global/qhooks.cpp, but is meant to be in sync with changes in Qt Declarative internals. Change-Id: I5a4a7d9ca5c340367581749e05d09380590c46fb Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | | Qml debugger: replace 'foreach' with 'range for'Anton Kudryavtsev2016-09-121-3/+5
|/ / / | | | | | | | | | | | | Change-Id: Id48d8a2986e6035042064c27e9453d0678315983 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | Add QT_NO_QML_DEBUGGER to MODULE_DEFINES on -no-qml-debugUlf Hermann2016-08-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If -no-qml-debug is set when building QtQml, we have to add QT_NO_QML_DEBUGGER when building application code, because this build option modifies the headers and linking an application built with QML debugging against a Qt built without is crashy. Change-Id: Ib150810f40deb98dcf398e3998401358a25155d9 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Remove some unused members on -no-qml-debugUlf Hermann2016-07-281-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | It's debatable if the uglification is worth the overhead of a few pointers. Change-Id: I63b55b2043b8752a94d4b862c3892915135a72b7 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Replace debugger and profiler with stubs on -no-qml-debugUlf Hermann2016-07-2810-16/+165
| | | | | | | | | | | | | | | Change-Id: I0f029d92366b3b508bf024c67b877a14bae27cd6 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Tooling: Convert connects to Qt5 styleUlf Hermann2016-07-283-11/+9
| | | | | | | | | | | | | | | Change-Id: I6746b777f73d047f5cf610bfca9b320ac1e13676 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | QmlDebug: Inline most of QQmlDebugServiceUlf Hermann2016-07-272-38/+8
| | | | | | | | | | | | | | | | | | | | | | | | The compiler might be able to optimize better if it knows the methods are empty. Change-Id: Ib730e857d1ab948bb2f5c5006f4911d2e6db282d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | QML: Remove QQML_NO_DEBUG_PROTOCOLUlf Hermann2016-07-271-16/+1
| | | | | | | | | | | | | | | | | | | | | There is no sane way to set this. Change-Id: I5f7b70d1947d469dd01a1454180f01ad0d1c099d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Move QQmlMemoryProfiler to debugger directoryUlf Hermann2016-07-263-0/+246
| | | | | | | | | | | | | | | Change-Id: Ia1b1038a684f6ec34af777090d4d21021eac01f1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Remove QQmlCompiledData in favor of QV4::CompiledData::CompilationUnitSimon Hausmann2016-06-011-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | QQmlCompiledData used to contain the binary data for instantiating QML types in the QML VME. Nowadays the QML type compiler as well as the JavaScript compiler create a QV4::CompiledData::CompilationUnit. Change-Id: I155f62a5ecfb55a3fe230520231b6d8fd5b28ac9 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | | QmlProfiler: Send RangeData and RangeLocation only once per typeUlf Hermann2016-05-273-28/+24
|/ / | | | | | | | | | | | | This saves time when serializing the data to be sent. Change-Id: Ic8c534d55445934a64dd253273099194b27d98af Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-192-14/+0
|\| | | | | | | | | | | | | | | | | Conflicts: src/plugins/qmltooling/qmldbg_profiler/qqmlprofilerservice.cpp src/qml/jsruntime/qv4engine.cpp src/qml/jsruntime/qv4engine_p.h Change-Id: I89ffccd699bee675732758d039e22224b275d60d
| * QmlDebug: Drop explicit Q_IMPORT_PLUGIN statementsUlf Hermann2016-05-092-14/+0
| | | | | | | | | | | | | | | | | | | | qmake is clever enough to include the plugins without this. Furthermore, the explicit imports duplicate the plugins in static builds and they lead to cross linking from QtQml to QtQuick. Task-number: QTBUG-50306 Change-Id: I822e000481f583f513b863f54f65eb8ff772c0c3 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | QmlProfiler: Reduce memory usage for file names and URLsUlf Hermann2016-05-022-68/+159
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As the various file names are actually not kept as QStrings in the respective objects being profiled, our saving them as QStrings in each and every profiling event is not implicitly shared and causes a huge memory overhead. Avoid that by saving each location only once, indexed by a disguised pointer to the object it refers to. Normally, objects could disappear during the profiling session, and new objects could be allocated in their place, which would mess up our indexing system. We prevent that by referencing the objects when we index them, thus preventing them from getting auto-destructed. Mind that those are not JavaScript objects but rather functions, bindings, components and the like. So, this will only cause a memory leak if you're compiling and dropping QML components over and over. Task-number: QTBUG-52937 Change-Id: Ia4dfb09a71a5c9a2d6ce25c3811bbe2a1036c1c1 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | QmlProfiler: Pass detailType directly, rather than as a bit fieldUlf Hermann2016-04-271-13/+13
| | | | | | | | | | | | | | | | | | | | There can only be one detail type for compressed set of messages. This is unlikely to change anytime soon. Also, be more careful about not detaching the data when sending the messages. Task-number: QTBUG-52937 Change-Id: I859b12889b0766543dac00b21784e14b76e458b6 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Allow custom debug connectorsUlf Hermann2016-03-263-32/+36
| | | | | | | | | | | | | | | | | | | | | | | | Expose a generic method for loading connector plugins in QQmlDebuggingEnabler and don't insist on the two known ones when actually loading them. This allows third-party connector plugins to be loaded, for example to pass QML trace events to a generic tracing library. Change-Id: I4f66dfabdbd0c3aff3676f7e2591e0a6c42f8f7f Reviewed-by: hjk <hjk@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | QmlProfiler: Send events in smaller batchesUlf Hermann2016-03-111-0/+2
| | | | | | | | | | | | | | | | | | | | This enables more parallel data processing and limits the memory usage. Benchmarks with the "planets" example from canvas3d show that this change reduces the time between the profiling being stopped and the last events arriving in the profiling client by about 50%. Change-Id: Iea16f9e2ae3adf584ec4a3c7fc766eaa21740f98 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Qml: replace QStringLiteral with QLatin1StringAnton Kudryavtsev2016-02-101-1/+1
| | | | | | | | | | | | | | ... in string comparisons. It's more efficient. Change-Id: I3be5a2be9ba5d55546472eac28f5f639a496bf3b Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Updated license headersJani Heikkinen2016-01-1916-224/+320
| | | | | | | | | | | | | | | | | | | | | | 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>
* | Rewrite inspector serviceUlf Hermann2016-01-121-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The inspector service had bitrotted to a point where there was little code to be rescued. Apparently it was never really finished and quite some code didn't make any sense. This change removes some features that were unused or didn't work correctly: 1. Panning and Zooming with mouse wheel and touch interaction. This might be useful in some contexts, but the implementation was so broken that it wasn't worth trying to fix it. The whole idea of doing this on the layer of QQuickItems is not so great because there is no distinction between spontaneous changes triggered by the application and debugging interaction triggered from outside. It might be better to implement such functionality on a lower level, e.g. in the renderer. 2. Reloading the scene with debug changes. Use one of the other debug services to change properties. Clearing the component cache is a rather drastic measure and not necessary here. In turn, we get support for inspecting multiple windows, and all subclasses of QQuickWindow are supported now. Also, show-on-top works now. Task-number: QTBUG-33376 Change-Id: I65497f49c6b46128a600b0e3a31483eeef40313c Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Make QQmlDebugConnector::hasEngine() constUlf Hermann2015-12-221-1/+1
| | | | | | | | | | Change-Id: I7441c24e3c2ae00ac274aa053d2e03d8f61ac830 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | QmlDebug: Add functionality to query if a server knows an engineUlf Hermann2015-12-151-0/+1
| | | | | | | | | | Change-Id: Iba40a1705c18d19c4ef5723aeb8ee5113e31041c Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Extend QDebugMessageServiceUlf Hermann2015-11-172-0/+3
| | | | | | | | | | | | | | | | Add category and timestamp, and allow synchronizing the timestamps with QQmlProfilerService. Change-Id: I8dc67e43e1087e231167fc4cfdfb5f659e00c5b2 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Use QJSEngine instead of QQmlEngine in debug servicesUlf Hermann2015-11-174-16/+17
| | | | | | | | | | | | | | | | | | This allows us to use the debug infrastructure in a JavaScript-only environment. Also add override declarations to make such changes easier in the future. Change-Id: I171271f0ad3868b3de71a8a2316a24602f94200a Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | QmlDebug: Restructure QPacket and QPacketProtocolUlf Hermann2015-11-176-228/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | QmlDebug: move QQuickProfiler into a pluginUlf Hermann2015-11-171-2/+12
| | | | | | | | | | | | | | | | This saves some code in QtQuick and allows us to split up QPacket into different versions for client and server. Change-Id: I9b8c723274fb11d6321c5002910148b193aa6b40 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | QmlProfiler: Collect useful input eventsUlf Hermann2015-10-301-0/+15
| | | | | | | | | | | | | | | | | | 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: Remove binding typesUlf Hermann2015-10-281-3/+0
| | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.6' into origin/devUlf Hermann2015-10-224-5/+30
|\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp src/plugins/qmltooling/qmldbg_debugger/qv4debuggeragent.cpp src/plugins/qmltooling/qmldbg_debugger/qv4debuggeragent.h src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.h src/qml/debugger/qqmldebugserviceinterfaces.cpp src/qml/jsruntime/qv4debugging_p.h Change-Id: I82a4ce1bcd4579181df886558f55ad2b328d1682