GammaRay API Documentation  2.11.0
GammaRay - Qt-application inspection and manipulation tool.

Overview

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

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.

Entry Points

Probe plugins inherit GammaRay::ToolFactory, client plugins inherit GammaRay::ToolUiFactory.

Type Support

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):

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.

Data Access

On the probe side, plugins have various ways of accessing target information.

IDE Integration

GammaRay ships with a stand-alone launcher and client, but you can also integrate those two components into an IDE.

Launcher

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:

Client

The client is the main user interface of GammaRay when connected to a target application. The key elements for embedding the client UI are:

License

The GammaRay Software is (C) 2010-2019 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.

Please visit https://www.kdab.com to meet the people who write code like this.


Klarälvdalens Datakonsult AB (KDAB)
"The Qt Experts"
https://www.kdab.com/
GammaRay
Qt-application inspection and manipulation tool
https://www.kdab.com/gammaray/