aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/perfprofiler
Commit message (Collapse)AuthorAgeFilesLines
* ProjectExplorer: Disentangle ProjectExplorer::updateRunActionshjk2020-02-261-1/+1
| | | | | | | | | | | | | | | | | This enforces a linear pass through [static] ProjectExplorerPlugin::updateRunActions ProjectExplorerPluginPrivate::doUpdateRunAction [emit] ProjectExplorerPluginPrivate::runActionsUpdated instead of the previous direct emission of the signal from user code and connecting also the internal update to it. This is meant to simplify reasoning about execution order and maybe to help elimimating double executation. Change-Id: Id8cc41a46d9dec06afb5514855f2ae80560f3695 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Misc: Fix MSVC warningsOrgad Shaneh2020-02-251-2/+2
| | | | | | | | | | C4573: the usage of 'QObject::connect' requires the compiler to capture 'this' but the current default capture mode does not allow it and implicit conversions from size_t to int Change-Id: If9b4ba3103cadd5b2a38ba7072d05aa1488a87bb Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: hjk <hjk@qt.io>
* Provide an empty default IPlugin::extensionsInitialized()hjk2020-02-072-5/+0
| | | | | | | And remove all empy re-implementations. Change-Id: I19f0b4e55c042c96693ecb89766f97f0a97b54ae Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Add final specifies to classesIgor Sidorov2020-02-052-2/+2
| | | | | | | Warning -Wfinal-dtor-non-final-class in clang trunk Change-Id: I2bf17064bf8898eab10b82b69583a283157766d0 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Several SettingsPages: Code cosmeticshjk2020-01-301-2/+1
| | | | | | | De-Q_OBJECT-ify, remove unnecessary #includes, final-ize, etc. Change-Id: I461d3e73400dacac90c22e7c84a40e3ea1718b6e Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Perf: Move closer to now-standard option page setuphjk2020-01-285-35/+23
| | | | | | | | | | The aspect widgets need to serve two purposes (global settings, and in run configurations), but that's still possible with an IOptionPageWidget base, the in-project use simply never triggers the apply(). Change-Id: I1344a37b6dba558b950904378443682b5a068214 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* PerfProfiler: Fix memory leakChristian Kandeler2020-01-232-0/+13
| | | | | | | | If the tool view is never shown, the respective widgets have no owner and need to be deleted manually. Change-Id: I6db7113d864607ae233f792363f13cfe841ccd10 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Core: Introduce a IOptionsPage::setCategoryIconPathhjk2020-01-161-1/+1
| | | | | | | Less noise on the user side. Change-Id: I34dea09e8a3c8639f5a7db89b22f8b825b946395 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* PerfProfiler: Fix MSVC warning (struct/class inconsistency)Alessandro Portale2019-12-181-1/+1
| | | | | | | | | src\plugins\perfprofiler\perfprofilerflamegraphmodel.cpp:83: warning: C4099: 'PerfProfiler::Internal::PerfProfilerFlameGraphData': type name first seen using 'struct' now seen using 'class' Change-Id: I23d4e04f7ad5c73dbfa6a87c87e7ff1fafa21d2a Reviewed-by: David Schulz <david.schulz@qt.io>
* Utils: Rename FilePathList to simply FilePathshjk2019-12-181-5/+5
| | | | | | | The exact storage type does not really matter here. Change-Id: Iefec40f0f5909c8e7ba3415db4a11962694e1b38 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* ProjectExplorer: Consolidate some Session::active* accesseshjk2019-11-293-21/+13
| | | | | Change-Id: I47b0f6c2c60b2f7c86b6ffd1ad3df393d1321c8b Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Merge remote-tracking branch 'origin/4.11'Eike Ziller2019-11-211-5/+2
|\ | | | | | | | | | | | | | | Conflicts: src/plugins/autotest/testresultspane.cpp src/plugins/cmakeprojectmanager/cmaketool.cpp Change-Id: Iade695ac9cab8bf3e3a1abd6e2c71f4a19132ac0
| * improve codeTim Jenssen2019-11-121-5/+2
| | | | | | | | | | Change-Id: I06c7274c39f7e369d4cd9bed0c1ef77e4bc08b35 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge remote-tracking branch 'origin/4.11'Eike Ziller2019-11-041-2/+2
|\| | | | | | | Change-Id: Ie951c531a5b2efd8e6b972c4d04b7f1c681c8ef9
| * PerfProfiler: Disable failing testsChristian Stenger2019-11-041-2/+2
| | | | | | | | | | | | | | | | Instead of rewriting the whole for each Qt version temporarily disable them. Change-Id: I33cf146a039c90d60f355ddf22274778255b9796 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * PerfProfilerFlameGraphModel: Make Payload::m_numSamples mutableUlf Hermann2019-10-221-1/+1
| | | | | | | | | | | | | | This is necessary to make the class movable. Change-Id: I85decaa9f5c520aa3272a018ceca3aba642e1565 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* | PerfProfiler: Avoid Q_DISABLE_COPY_MOVEUlf Hermann2019-10-221-1/+4
| | | | | | | | | | Change-Id: I22e3028c52fe48a93f1546deb80be87856e0d200 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* | PerfProfilerFlameGraphModel: Fix linter warningsUlf Hermann2019-10-222-78/+84
|/ | | | | | | | | Make PerfProfilerFlameGraphModel::Data a simple struct and PerfProfilerFlameGraphData a proper class. Use auto where applicable. Use uint for the number of samples. Change-Id: I8568a59855bddd290144358f9ed7b76c8b53fcb8 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* BaseQtVersion: remove qmakeProperty(...) getterTobias Hunger2019-10-011-1/+1
| | | | | | | | | | | | Qt 6 will not use qmake to identify a Qt version, so this can not be part of the public interface of BaseQtVersion anymore. Provide getters for the information actually read via qmakeProperty(...). Use the getters whenever possible. Change-Id: Iadbee80b75e4f8b06caf90e7ed69fae2029b4dd7 Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Store some aspect data by value in the RunControlhjk2019-09-052-0/+2
| | | | | | Change-Id: Idb7e119b5b0b483ce91efeb21fb415b654cfed4f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* PerfProfiler: Remove unused signalhjk2019-09-032-2/+0
| | | | | Change-Id: If495c0933c6b786c85ab44defca0c2cfc50a51d1 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* ProjectExplorer: Use a ISettingsAspect::setConfigWidgetCreator() setterhjk2019-08-301-3/+4
| | | | | | | Closer to the usual pattern elsewhere. Change-Id: Ieaed483bc7f61b63e5bde87a721f43c3e3d737aa Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Standardize RunWorker creation logichjk2019-08-273-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This unifies the remaining paths of RunWorker creation to always use RunWorkerFactories in the plugin pimpls. There were, and are, still effectively three basic kinds of workers: - "toplevel" tools corresponding to the run modes, that are often all that's used for local runs and directly started via the fat buttons or e.g. entries in the analyze menu, with factories already previously located in the plugin pimpls - core "tool helpers", providing tool specific functionality typically used in conjunction with a remote device specific run mechanism, set up via RunControl::registerWorkerCreator - target/device specific runhelper like port gatherers contructed e.g. via *Device::workerCreator(Core::Id id) Worse, these categories are partially overlapping, so it was not clear how a "clean" setup would look like, instead some ad-hoc cobbling "to make it work" happened. In some cases, the runMode id was used throughout the whole ensemble of run workers for a given run, and which worker exactly was created depended on which of the mechanism above was used in which order. With the new central setup, the top-level runmodes remain, but the second kind gets new ids, so the implicit dependencies on order of setup mechanism are avoided. This also helps in the cases where there was previously unclarity of where and how to set up worker factories: It's always and only the plugin pimpl now. Change-Id: Icd9a08e2d53e19abe8b21fe546f469fae353a69f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* ProjectExplorer: Re-work setup runworker factorieshjk2019-08-091-4/+5
| | | | | | | | | | | | | | | This combines two of the previous three paths to create run workers, and refers to RunConfigurations by id, not by type where possible to decrease coupling between the classes. Only allow "type of run configuration" and "type of device" as the only possible kind of restriction and require a uniform RunWorker constructor signature. Adapt user code to fit that pattern. Change-Id: I5a6d49c9a144785fd0235d7586f244b56f67b366 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Merge remote-tracking branch 'origin/4.10'Eike Ziller2019-07-311-34/+0
|\ | | | | | | Change-Id: I7a7bc552e09de1fbee98402c97e3a35f0e2c952a
| * PerfProfiler: Fix warning from SignalSlotEditor::fromUi()hjk2019-07-291-34/+0
| | | | | | | | | | | | | | | | | | | | | | It said 'no destination widget called "PerfLoadDialog"'. Another fix might have been to use "PerfProfiler::Internal::PerfLoadDialog", but since the connection is done in code, and I actually prefer that way, this remove the broken connections from the .ui file. Change-Id: I04652bece855c90a11fd2ea2bb872717a3cde88a Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* | Replace remaining Utils::FileName occurrences by Utils::FilePathhjk2019-07-231-2/+2
| | | | | | | | | | Change-Id: Ic3120f18b4fbe90219de9128dba53d7453630b03 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* | Avoid warning on empty expressionshjk2019-07-237-13/+13
| | | | | | | | | | | | | | | | For some reason, Q_UNUSED includes already a semicolon, adding one on the user side creates an additional empty statement. Change-Id: I9c5e8fac381345a60792cb75e2938fd53958d3b0 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* | Tracing: Use Combobox for the modes menuUlf Hermann2019-07-051-1/+0
| | | | | | | | | | | | | | | | This is a better fit than a custom Button + Menu combination. Fixes: QTCREATORBUG-22579 Change-Id: Ie6f8a7ef2ce0da67a16bc365d6f619a11bc56221 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | Merge remote-tracking branch 'origin/4.10'Eike Ziller2019-06-281-3/+3
|\| | | | | | | | | | | | | | | Conflicts: CMakeLists.txt tests/unit/unittest/unittest.pro Change-Id: I64296ad31502d9b35012da129a28e9277e9fcf8e
| * PerfProfiler: Connect the updateRunActions() signal earlierUlf Hermann2019-06-251-3/+3
| | | | | | | | | | | | | | | | | | The startup project can get enabled before we create the views. In that case we miss an update and the run button stays disabled. Fixes: QTCREATORBUG-22616 Change-Id: I5af9075a4899a5dd0e5f69c13348510cde47285d Reviewed-by: hjk <hjk@qt.io>
* | ProjectExplorer: Use Utils::FileName for Runnable::executablehjk2019-06-213-5/+5
|/ | | | | Change-Id: I584bc18aa19a4c9886af7b13e95052dfd4350b34 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Merge remote-tracking branch 'origin/4.9' into 4.10Eike Ziller2019-06-181-2/+3
|\ | | | | | | Change-Id: I6f1bc9381dc8c0ce8abc5a6c006087076d8fc1bc
| * Fix perfresourcecounter testUlf Hermann2019-06-131-2/+3
| | | | | | | | | | | | | | | | If qrand() generates a 0, the obtain() is ignored as that is the invalid ID. Change-Id: I608f2687a6ca9a40d905c665a3585bffc1ea5695 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* | connect() to ambiguous signals/slots: Replace static_cast with QOverloadAlessandro Portale2019-05-281-2/+1
| | | | | | | | | | Change-Id: I473d7a2a16509cee944a2a21b022a3f6f02cfd8d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Utils: Rename FileName to FilePathhjk2019-05-281-7/+7
| | | | | | | | | | | | | | | | More in line with QFileInfo terminonlogy which appears to be best-of-breed within Qt. Change-Id: I1d051ff1c8363ebd4ee56376451df45216c4c9ab Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | ExtensionSystem: Move away from QListEike Ziller2019-05-272-3/+3
| | | | | | | | | | | | | | | | Qt 6 API will move away from it. Use QVector for API and some std container for internal things. Change-Id: Iff14d48a47d5ac52ade875d9c8c84ad8a4f577d8 Reviewed-by: hjk <hjk@qt.io>
* | Remove excess blank lines after namespaceOrgad Shaneh2019-05-271-1/+0
| | | | | | | | | | Change-Id: I4e4f83017f2bfc2cf842c4c971ed4b05e0447e6a Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* | CMake build: Add ability to disable building of individual pluginsEike Ziller2019-05-231-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds a cache entry "BUILD_PLUGIN_${NAME}", defaulting to ON which can be set to OFF to disable building of a plugin. Adds a extend_qtc_plugin function that should be used to add properties to a plugin after add_qtc_plugin, instead of the standard CMake functions target_... . The new function results in a no-op if the plugin was disabled. Change-Id: I57f6799620aea0aaa8b56acead4815ccced95911 Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* | Qt Creator CMake portCristian Adam2019-05-171-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Based on Tobias Hunger's work from a few months ago. The CMake configuration needs libclang and Qt paths specified as CMAKE_PREFIX_PATH. Auto tests are run with "ctest". At the moment the pass rate is 87%. Change-Id: Iba98e39bf22077d52706dce6c85986be67a6eab0 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* | PerfProfiler: Guard against some malformed inputUlf Hermann2019-05-084-1/+12
| | | | | | | | | | | | | | | | | | If there is no attribute we actually set the attribute to be the invalid one. Therefore an entry for the invalid attribute should exist. Also, cycles in the parent location IDs need to be avoided. Change-Id: Id1962744ef476ddad737cf108d9f9ab83a4eaf55 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | PerfProfiler: Save and load CPU id for eventsUlf Hermann2019-05-082-6/+9
| | | | | | | | | | Change-Id: Ieafbb391fb3383e96790dfa2f222d48aecec21a2 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | PerfProfiler: Support multiple attributes per sampleUlf Hermann2019-05-085-27/+62
| | | | | | | | | | | | Change-Id: I0c457eb05a354588eab25bbfde9e3470183fe9d3 Reviewed-by: Milian Wolff <milian.wolff@kdab.com> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | PerfProfiler: Remove backwards compatibility supportUlf Hermann2019-05-089-171/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Define a new file extension, new file magic, and remove support for the old data format. You won't be able to load traces generated with older Qt Creators in 4.10 anymore and you won't be able to use older perfparsers with Qt Creator 4.10. On the flip side, we can move along more quickly now and integrate features from KDAB's perfparser. This is to be preferred because the maintenance of two different perfparsers is quite a burden. Change-Id: I69918eadc3294abfbb0b809a54c3c9f25405409a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | PerfProfiler: Save and load symbol pathsUlf Hermann2019-05-071-3/+4
| | | | | | | | | | Change-Id: Ia2be7e15c9b783c4434b5b579d079297d8f70324 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | PerfProfiler: Add rudimentary support grouped samplesUlf Hermann2019-05-075-24/+58
| | | | | | | | | | Change-Id: Ic4f35576215e42f6b138dea890a0095635822e2d Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | PerfProfiler: Fix signedness mismatch on comparisonOrgad Shaneh2019-05-071-3/+4
| | | | | | | | | | | | | | Detected by GCC9. Change-Id: I14c1ece9f5070ba3a8d6d91c3cbdf7aff24c4a1e Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | PerfProfiler: Support context switch eventsUlf Hermann2019-05-025-2/+32
| | | | | | | | | | Change-Id: I328b518cc3674ee26975edf26d40057ceb2c21a2 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | Add basic support for new AttributesDefinitionUlf Hermann2019-05-024-5/+14
| | | | | | | | | | | | | | We read the attributes, but don't use the new data, yet. Change-Id: Idb983dee60b76ae8f22375e9070042660cf5e612 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | Merge remote-tracking branch 'origin/4.9'Eike Ziller2019-04-121-0/+1
|\| | | | | | | Change-Id: I95c56cc9371959f96afde3677fc82481f36f66c8