gammaray - Man Page
Qt-application inspection and manipulation tool.
Synopsis
gammaray [--pid <pid> | <application> <args> | --connect <host>[:<port>]
Description
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.
Copyright
Copyright (C) 2010-2023 Klaralvdalens Datakonsult AB, a KDAB Group company, <info@kdab.com>
Licensees holding valid commercial KDAB GammaRay licenses may use this file in accordance with GammaRay Commercial License Agreement provided with the Software.
Contact info@kdab.com if any conditions of this licensing are not clear to you.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
StackWalker code Copyright (c) 2005-2019, Jochen Kalmbach, All rights reserved.
lz4 fast LZ compression code Copyright (C) 2011-2020, Yann Collet, All rights reserved.
backward-cpp code Copyright 2013-2017 Google Inc. All rights reserved.
Authors
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>