Your company here — click to reach over 10,000 unique daily visitors

gammaray - Man Page

Qt-application inspection and manipulation tool.


gammaray [--pid <pid> | <application> <args> | --connect <host>[:<port>]


GammaRay inspects runtime internals of a Qt-application, such as:
   Object tree, properties, signal/slots, widgets, models,
   graphics views, javascript debugger, resources,
   state machines, meta types, fonts, codecs, text documents

When run without any options, gammaray will present a list of running Qt-applications from which you can attach the selected injector. Else, you can attach to a running process by specifying its pid, or you can start a new Qt-application by specifying its name (and optional arguments).



Print help message and exit.


Print version information and exit.

-p,  --pid <pid>

Attach to running Qt application with the specified pid.

-i,  --injector <injector>

Set the specified injection type.

Supported injectors are:
    preload (Linux, Mac OS)
    gdb (Linux. requires gdb to be installed)
    lldb (Linux. Mac OS, requires lldb to be installed)
    windll (Windows)


Use the Gammaray 1.x in-process UI. This is not necessary in most cases, apart from using tools that do not work remotely.


This will only inject the GammaRay probe into a process, but not start the GammaRay UI. This is useful for example when doing remote debugging on embedded devices.

--listen <address>

Specify on which network address the GammaRay server should listen, default is GAMMARAY_DEFAULT_ANY_TCP_URL (ie. tcp://, all of ipv4, use tcp://[::] for all ipv6). This can be used for example on Windows to avoid firewall warnings by setting the address to if you don't need remote access.


Disables the GammaRay server. This implies --inprocess as there is no other way to connect to the GammaRay probe in this case.


List all installed probes.

--probe <abi>

Explicitly specify which probe to use. You should use this if you have more than one probe installed (e.g. one for Qt4 and one for Qt5), until probe ABI auto-detection is implemented.

--connect <host[:port]>

Connect to a target with an already injected GammaRay probe. Useful for example for remote debugging.

--self-test [injector]

Run GammaRay self-tests, if an injector is specified only that specific one will be tested.

The exit code is 0 on success, and 1 otherwise.


Run gammaray on the Qt-application qtfoo with command line arguments 'arg1' and 'arg2':
 % gammaray /path/to/qtfoo arg1 arg2
Invoke gammaray on the Qt-application running with pid 1234:
 % gammaray --pid 1234
Invoke gammaray on with injector gdb on Qt-application running with pid 1234:
 % gammaray --injector gdb --pid 1234

Exit Status

Exits with 0 under normal operation; otherwise, exists with a positive integer indicating a problem occurred while launching or attaching an injector.


 Allen Winter <allen.winter@kdab.com>
 Andreas Holzammer <andreas.holzammer@kdab.com>
 Anton Kreuzkamp <anton.kreuzkamp@kdab.com>
 BogDan Vatra <bogdan.vatra@kdab.com>
 Dan Vratil <dvratil@redhat.com>
 David Faure <david.faure@kdab.com>
 Filipe Azevedo <filipe.azevedo@kdab.com>
 Frank Osterfeld <frank.osterfeld@kdab.com>
 James Turner <james.turner@kdab.com>
 Jan Dalheimer <jan.dalheimer@kdab.com>
 Kevin Funk <kevin.funk@kdab.com>
 Laurent Montel <laurent.montel@kdab.com>
 Mathias Hasselmann <mathias.hasselmann@kdab.com>
 Milian Wolff <milian.wolff@kdab.com>
 Nicolas Arnaud-Cormos <nicolas.arnaud-cormos@kdab.com>
 Patrick Spendrin <patrick.spendrin@kdab.com>
 Peter Kuemmel <syntheticpp@gmx.net>
 Rafael Roquetto <rafael.roquetto@kdab.com>
 Sergio Martins <sergio.martins@kdab.com>
 Stephen Kelly <stephen.kelly@kdab.com>
 Thomas McGuire <thomas.mcguire@kdab.com>
 Till Adam <till.adam@kdab.com>
 Tobias Koenig <tobias.koenig@kdab.com>
 Volker Krause <volker.krause@kdab.com>


2024-07-02 3.0.0 KDAB