GammaRay API Documentation
3.2.0
|
GammaRay is a tool to poke around in a Qt-application and also to manipulate the application to some extent. GammaRay uses various DLL injection techniques to hook into an application at runtime and provide access to a lot of interesting information.
GammaRay provides API for two use-cases, plugins to extend GammaRay in order to support additional frameworks, and integration of the GammaRay client and/or launcher in an IDE. Both use-cases are described below.
Plugins enable you to extend GammaRay to support inspection of additional frameworks. Typically there are two plugins per framework, one for the probe containing the logic to extract the relevant information from the target application, and one for the client containing the graphical user interface.
GammaRay ships with a large set of plugins for various Qt frameworks that can serve as examples for all the features described below. Additional external plugins can be found here:
For best practices on plugin development, also see the Plugin Design Guide.
Probe plugins inherit GammaRay::ToolFactory, client plugins inherit GammaRay::ToolUiFactory.
Probe plugins have a number of options to make their specific data types known to the existing GammaRay infrastructure (like the object browser or the property editor):
A pair of probe and client plugins can also extend the property view that many existing tools use by additional tabs. Similarly, it is possible to use the unified property editor in own tools. This is done by GammaRay::PropertyController on the probe side and GammaRay::PropertyWidget on the client side.
On the probe side, plugins have various ways of accessing target information.
GammaRay ships with a stand-alone launcher and client, but you can also integrate those two components into an IDE.
The launcher is the component of GammaRay that takes care of starting a target application or attaching to a running one, and injecting a suitable GammaRay probe into it. The following classes provide essential functionality for this:
The client is the main user interface of GammaRay when connected to a target application. The key elements for embedding the client UI are:
The GammaRay Software is © Klarälvdalens Datakonsult AB (KDAB), and is available under the terms of the GPL version 2 (or any later version, at your option). See GPL-2.0-or-later.txt for license details.
Contact KDAB at info@ to inquire about commercial licensing. kdab .com
For terms of redistribution, refer to the corresponding license agreement.
Note that this software relies on 3rd party MIT-licensed projects and various other freely distributable files some of which are unused only for testing and not part of the application itself.
GammaRay is supported and maintained by Klarälvdalens Datakonsult AB (KDAB)
The KDAB Group is the global No.1 software consultancy for Qt, C++ and OpenGL applications across desktop, embedded and mobile platforms.
The KDAB Group provides 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 on Qt as well as C++, OpenGL, 3D and more.
Get in touch with KDAB at https://www.kdab.com/contact.