GammaRay is a tool to poke around in a Qt-application and also to manipulate the application to some extent.
C++ CMake QML GLSL Shell Prolog
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
3rdparty Fix Qt4 build Jul 20, 2018
app update Copyright year Jan 9, 2018
client API docs polishing Jan 11, 2018
cmake Remove special treatment of Android plugins Mar 9, 2018
common Merge remote-tracking branch 'origin/2.9' Jun 19, 2018
compat update copyright year Feb 1, 2018
core Add property adaptor for QGeoPositionInfo attributes Jun 20, 2018
docs Expand documentation to cover the generalized system information view Jun 25, 2018
examples update Copyright year Jan 9, 2018
inprocessui update Copyright year Jan 9, 2018
launcher Let the target application find proxy plugins when launching with Gam… Jun 8, 2018
multibuild Unify minimum CMake version to 3.1 on all platforms Feb 23, 2018
plugins Attempt to fix the QNX build (which has no clipboard) Aug 10, 2018
probe Fix installation of probe PDB and Android dependency XML files Mar 9, 2018
qt-ci-wrapper Fix SDK builds missing the CLI injector Feb 8, 2018
resources Update authors list May 12, 2017
tests Make QQ2 item picking work for elements outside of their parent bounds May 25, 2018
translations Update translations Feb 7, 2018
ui Move the standard paths view into the new system info plugin Apr 13, 2018
.clang-tidy Disable a few new checks we can't use yet due to supporting old compi… Nov 14, 2017
.clazy .clazy - turn on Qt4 Compatibility May 4, 2017
.emacs-dirvars For us XEmacs people Sep 22, 2011
.gitignore Add .qmake.conf, the Qt CI expects that to extract the package version Aug 24, 2017
.kateconfig Prefer Qt coding style for new code. May 15, 2016
.krazy .krazy - exclude even more checks May 10, 2018
.qmake.conf Add .qmake.conf, the Qt CI expects that to extract the package version Aug 24, 2017
CHANGES various - prep for 2.9.1 release Aug 1, 2018
CMakeLists.txt Let the target application find proxy plugins when launching with Gam… Jun 8, 2018
GammaRay.appdata.xml Default to https URLs where possible Sep 5, 2016
GammaRay.desktop GammaRay.desktop - add keywords Jan 8, 2016
GammaRayConfig.cmake.in Properly initialize GAMMARAY_OUTPUT_PREFIX for external plugins Dec 7, 2016
Install.txt Install.txt - minor typo Aug 1, 2018
LICENSE.BSD3.txt cmake/ - insert full BSD-3 license text, add LICENSE.BSD3.txt Jun 4, 2016
LICENSE.GPL.txt update copyright year Feb 1, 2018
LICENSE.US.txt Update ReadMe's and License files for GPL and commercial variants. May 11, 2015
LICENSE.txt update copyright year Feb 1, 2018
ReadMe-commercial.txt update copyright year Feb 1, 2018
ReadMe.md Readme.md - make it a symlink to Readme.txt again May 11, 2015
ReadMe.txt ReadMe.txt - tiny badges Feb 24, 2018
add_license_blurb.sh add_license_blurb.sh - skip a generated file Aug 30, 2017
appveyor.ini Fix appveyor artifacts Aug 15, 2018
appveyor.yml Don't cache probes Mar 6, 2018
config-gammaray-version.h.cmake Set the application version, so version telemetry actually works Jun 2, 2017
config-gammaray.h.cmake Let the target application find proxy plugins when launching with Gam… Jun 8, 2018
debian.changelog various - prep for 2.9.1 release Aug 1, 2018
debian.compat improve debian packing to make xUbuntu 16.10 happy on the OBS Oct 27, 2016
debian.control improve debian packing to make xUbuntu 16.10 happy on the OBS Oct 27, 2016
debian.rules merge from 1.2 branch Jun 28, 2012
format.config.uncrustify.4_spaces Tweak uncrustify config a more to match Qt style Jun 22, 2016
format_sources Add uncrustify coding style template Jun 22, 2016
gammaray-qt-ci-only.pro Enable macOS builds Jun 6, 2018
gammaray-qt4-debian.control improve debian packing to make xUbuntu 16.10 happy on the OBS Oct 27, 2016
gammaray-qt4.dsc various - prep for 2.9.1 release Aug 1, 2018
gammaray-qt4.spec various - prep for 2.9.1 release Aug 1, 2018
gammaray.dsc various - prep for 2.9.1 release Aug 1, 2018
gammaray.spec various - prep for 2.9.1 release Aug 1, 2018

ReadMe.md

Logo

Introduction Packaging status Windows Build status

GammaRay is a software introspection tool for Qt applications developed by KDAB. Leveraging the QObject introspection mechanism it allows you to observe and manipulate your application at runtime. This works both locally on your workstation and remotely on an embedded target.

Augmenting your instruction-level debugger, GammaRay allows you to work on a much higher level, with the same concepts as the frameworks you use. This is especially useful for the more complex Qt frameworks such as model/view, state machines or scene graphs.

Among other things GammaRay can:

  • Browse the QObject tree with live updates.
  • View and edit object properties.
  • View and invoke slots of a QObject, and monitor its signals.
  • List all QObject inbound and outbound signal/slot connections.
  • Provide a layout information overlay for QWidget and QtQuick2 applications.
  • Inspect all QPainter operations used to draw a specific widget.
  • Browse the QtQuick2 item tree and scenegraph.
  • Inspect shaders and geometry data of QtQuick2 items.
  • Plot object lifetime and emitted signals.
  • Browse the QAbstractProxyModel hierarchy and inspect intermediate results in a proxy model chain.
  • Visual live inspection of QStateMachines.
  • Browse the item tree of any QGraphicsView scene.
  • Show a live preview of QGraphicsView items, including showing their coordinate system, transformation origin, rotate/zoom/pan, etc.
  • Intercept translations and change them at runtime.
  • Inspect all building blocks of a QStyle.
  • Show all QTimers and their statistics (number of wakeups, wakeup time, ...)
  • Browse all QTextDocuments, along with the ability to edit them and view their internal structures.
  • Act as a complete java script debugger, attachable to any QScriptEngine (including the usually not accessible one used by QtQuick1 internally).
  • Perform HTML/CSS/DOM/JS introspection/editing/profiling on any QWebPage, thanks to QWebInspector.
  • Browse the QResource tree and its content.
  • Show all registered meta types.
  • Show all installed fonts.
  • Show all available codecs.

Contact

Get Involved

If you want to contribute, please check out: https://github.com/KDAB/GammaRay/wiki/Get-Involved

KDAB will happily accept external contributions, but substantial contributions will require a signed Copyright Assignment Agreement. Contact info@kdab.com for more information.

License

The GammaRay Software is (C) 2010-2018 Klarälvdalens Datakonsult AB (KDAB), and is available under the terms of the GPL version 2 (or any later version, at your option). See LICENSE.GPL.txt for license details.

Commercial use is also permitted as described in ReadMe-commercial.txt.

About KDAB

GammaRay is supported and maintained by Klarälvdalens Datakonsult AB (KDAB).

KDAB, the Qt experts, provide consulting and mentoring for developing Qt applications from scratch and in porting from all popular and legacy frameworks to Qt. We continue to help develop parts of Qt and are one of the major contributors to the Qt Project. We can give advanced or standard trainings anywhere around the globe.

If you would like to have a custom plugin for GammaRay to visualize, profile or debug your own specific components or applications, get in touch with us via https://www.kdab.com/contact. KDAB engineers have a lot of experience writing GammaRay plugins and can be contracted to help you get yours working and improve your development efficiency.

GammaRay and the GammaRay logo are registered trademarks of Klarälvdalens Datakonsult AB in the European Union, the United States and/or other countries. Other product and company names and logos may be trademarks or registered trademarks of their respective companies.