gammaray1
Qt-application inspection and manipulation tool.
Usage
gammaray [--pid <pid> | <application> <args> | --connect <host>[:<port>]
Overview
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).
Options
-
--help -
Print help message and exit.
-
--version -
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)
style
windll (Windows)
-
--inprocess -
Use the Gammaray 1.x in-process UI. This is not necessary in most cases, apart from using tools that do not work remotely.
-
--inject-only -
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://0.0.0.0, 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 127.0.0.1 if you don't need remote access.
-
--no-listen -
Disables the GammaRay server. This implies --inprocess as there is no other way to connect to the GammaRay probe in this case.
-
--list-probes -
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.
Examples
- 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.
Releases
4 releases since Debian 8 (Jessie); the text changed 3 times.
--self-test since Debian 11 (Bullseye).