GammaRay API Documentation
2.7.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 (C) 2010-2017 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.
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.
Please visit https://www.kdab.com to meet the people who write code like this.