| QEMU SystemTap trace tool |
| ========================= |
| |
| Synopsis |
| -------- |
| |
| **qemu-trace-stap** [*GLOBAL-OPTIONS*] *COMMAND* [*COMMAND-OPTIONS*] *ARGS*... |
| |
| Description |
| ----------- |
| |
| The ``qemu-trace-stap`` program facilitates tracing of the execution |
| of QEMU emulators using SystemTap. |
| |
| It is required to have the SystemTap runtime environment installed to use |
| this program, since it is a wrapper around execution of the ``stap`` |
| program. |
| |
| Options |
| ------- |
| |
| .. program:: qemu-trace-stap |
| |
| The following global options may be used regardless of which command |
| is executed: |
| |
| .. option:: --verbose, -v |
| |
| Display verbose information about command execution. |
| |
| The following commands are valid: |
| |
| .. option:: list BINARY PATTERN... |
| |
| List all the probe names provided by *BINARY* that match |
| *PATTERN*. |
| |
| If *BINARY* is not an absolute path, it will be located by searching |
| the directories listed in the ``$PATH`` environment variable. |
| |
| *PATTERN* is a plain string that is used to filter the results of |
| this command. It may optionally contain a ``*`` wildcard to facilitate |
| matching multiple probes without listing each one explicitly. Multiple |
| *PATTERN* arguments may be given, causing listing of probes that match |
| any of the listed names. If no *PATTERN* is given, the all possible |
| probes will be listed. |
| |
| For example, to list all probes available in the ``qemu-system-x86_64`` |
| binary: |
| |
| :: |
| |
| $ qemu-trace-stap list qemu-system-x86_64 |
| |
| To filter the list to only cover probes related to QEMU's cryptographic |
| subsystem, in a binary outside ``$PATH`` |
| |
| :: |
| |
| $ qemu-trace-stap list /opt/qemu/4.0.0/bin/qemu-system-x86_64 'qcrypto*' |
| |
| .. option:: run OPTIONS BINARY PATTERN... |
| |
| Run a trace session, printing formatted output any time a process that is |
| executing *BINARY* triggers a probe matching *PATTERN*. |
| |
| If *BINARY* is not an absolute path, it will be located by searching |
| the directories listed in the ``$PATH`` environment variable. |
| |
| *PATTERN* is a plain string that matches a probe name shown by the |
| *LIST* command. It may optionally contain a ``*`` wildcard to |
| facilitate matching multiple probes without listing each one explicitly. |
| Multiple *PATTERN* arguments may be given, causing all matching probes |
| to be monitored. At least one *PATTERN* is required, since stap is not |
| capable of tracing all known QEMU probes concurrently without overflowing |
| its trace buffer. |
| |
| Invocation of this command does not need to be synchronized with |
| invocation of the QEMU process(es). It will match probes on all |
| existing running processes and all future launched processes, |
| unless told to only monitor a specific process. |
| |
| Valid command specific options are: |
| |
| .. program:: qemu-trace-stap-run |
| |
| .. option:: --pid=PID, -p PID |
| |
| Restrict the tracing session so that it only triggers for the process |
| identified by *PID*. |
| |
| For example, to monitor all processes executing ``qemu-system-x86_64`` |
| as found on ``$PATH``, displaying all I/O related probes: |
| |
| :: |
| |
| $ qemu-trace-stap run qemu-system-x86_64 'qio*' |
| |
| To monitor only the QEMU process with PID 1732 |
| |
| :: |
| |
| $ qemu-trace-stap run --pid=1732 qemu-system-x86_64 'qio*' |
| |
| To monitor QEMU processes running an alternative binary outside of |
| ``$PATH``, displaying verbose information about setup of the |
| tracing environment: |
| |
| :: |
| |
| $ qemu-trace-stap -v run /opt/qemu/4.0.0/qemu-system-x86_64 'qio*' |
| |
| See also |
| -------- |
| |
| :manpage:`qemu(1)`, :manpage:`stap(1)` |
| |
| .. |
| Copyright (C) 2019 Red Hat, Inc. |
| |
| 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. |