xref: /qemu/docs/tools/qemu-trace-stap.rst (revision 605ffebb2e206d9dec746ceed0de7be561b7354b)
1605ffebbSPeter MaydellQEMU SystemTap trace tool
2605ffebbSPeter Maydell=========================
3605ffebbSPeter Maydell
4605ffebbSPeter MaydellSynopsis
5605ffebbSPeter Maydell--------
6605ffebbSPeter Maydell
7605ffebbSPeter Maydell**qemu-trace-stap** [*GLOBAL-OPTIONS*] *COMMAND* [*COMMAND-OPTIONS*] *ARGS*...
8605ffebbSPeter Maydell
9605ffebbSPeter MaydellDescription
10605ffebbSPeter Maydell-----------
11605ffebbSPeter Maydell
12605ffebbSPeter MaydellThe ``qemu-trace-stap`` program facilitates tracing of the execution
13605ffebbSPeter Maydellof QEMU emulators using SystemTap.
14605ffebbSPeter Maydell
15605ffebbSPeter MaydellIt is required to have the SystemTap runtime environment installed to use
16605ffebbSPeter Maydellthis program, since it is a wrapper around execution of the ``stap``
17605ffebbSPeter Maydellprogram.
18605ffebbSPeter Maydell
19605ffebbSPeter MaydellOptions
20605ffebbSPeter Maydell-------
21605ffebbSPeter Maydell
22605ffebbSPeter Maydell.. program:: qemu-trace-stap
23605ffebbSPeter Maydell
24605ffebbSPeter MaydellThe following global options may be used regardless of which command
25605ffebbSPeter Maydellis executed:
26605ffebbSPeter Maydell
27605ffebbSPeter Maydell.. option:: --verbose, -v
28605ffebbSPeter Maydell
29605ffebbSPeter Maydell  Display verbose information about command execution.
30605ffebbSPeter Maydell
31605ffebbSPeter MaydellThe following commands are valid:
32605ffebbSPeter Maydell
33605ffebbSPeter Maydell.. option:: list BINARY PATTERN...
34605ffebbSPeter Maydell
35605ffebbSPeter Maydell  List all the probe names provided by *BINARY* that match
36605ffebbSPeter Maydell  *PATTERN*.
37605ffebbSPeter Maydell
38605ffebbSPeter Maydell  If *BINARY* is not an absolute path, it will be located by searching
39605ffebbSPeter Maydell  the directories listed in the ``$PATH`` environment variable.
40605ffebbSPeter Maydell
41605ffebbSPeter Maydell  *PATTERN* is a plain string that is used to filter the results of
42605ffebbSPeter Maydell  this command. It may optionally contain a ``*`` wildcard to facilitate
43605ffebbSPeter Maydell  matching multiple probes without listing each one explicitly. Multiple
44605ffebbSPeter Maydell  *PATTERN* arguments may be given, causing listing of probes that match
45605ffebbSPeter Maydell  any of the listed names. If no *PATTERN* is given, the all possible
46605ffebbSPeter Maydell  probes will be listed.
47605ffebbSPeter Maydell
48605ffebbSPeter Maydell  For example, to list all probes available in the ``qemu-system-x86_64``
49605ffebbSPeter Maydell  binary:
50605ffebbSPeter Maydell
51605ffebbSPeter Maydell  ::
52605ffebbSPeter Maydell
53605ffebbSPeter Maydell    $ qemu-trace-stap list qemu-system-x86_64
54605ffebbSPeter Maydell
55605ffebbSPeter Maydell  To filter the list to only cover probes related to QEMU's cryptographic
56605ffebbSPeter Maydell  subsystem, in a binary outside ``$PATH``
57605ffebbSPeter Maydell
58605ffebbSPeter Maydell  ::
59605ffebbSPeter Maydell
60605ffebbSPeter Maydell    $ qemu-trace-stap list /opt/qemu/4.0.0/bin/qemu-system-x86_64 'qcrypto*'
61605ffebbSPeter Maydell
62605ffebbSPeter Maydell.. option:: run OPTIONS BINARY PATTERN...
63605ffebbSPeter Maydell
64605ffebbSPeter Maydell  Run a trace session, printing formatted output any time a process that is
65605ffebbSPeter Maydell  executing *BINARY* triggers a probe matching *PATTERN*.
66605ffebbSPeter Maydell
67605ffebbSPeter Maydell  If *BINARY* is not an absolute path, it will be located by searching
68605ffebbSPeter Maydell  the directories listed in the ``$PATH`` environment variable.
69605ffebbSPeter Maydell
70605ffebbSPeter Maydell  *PATTERN* is a plain string that matches a probe name shown by the
71605ffebbSPeter Maydell  *LIST* command. It may optionally contain a ``*`` wildcard to
72605ffebbSPeter Maydell  facilitate matching multiple probes without listing each one explicitly.
73605ffebbSPeter Maydell  Multiple *PATTERN* arguments may be given, causing all matching probes
74605ffebbSPeter Maydell  to be monitored. At least one *PATTERN* is required, since stap is not
75605ffebbSPeter Maydell  capable of tracing all known QEMU probes concurrently without overflowing
76605ffebbSPeter Maydell  its trace buffer.
77605ffebbSPeter Maydell
78605ffebbSPeter Maydell  Invocation of this command does not need to be synchronized with
79605ffebbSPeter Maydell  invocation of the QEMU process(es). It will match probes on all
80605ffebbSPeter Maydell  existing running processes and all future launched processes,
81605ffebbSPeter Maydell  unless told to only monitor a specific process.
82605ffebbSPeter Maydell
83605ffebbSPeter Maydell  Valid command specific options are:
84605ffebbSPeter Maydell
85605ffebbSPeter Maydell  .. program:: qemu-trace-stap-run
86605ffebbSPeter Maydell
87605ffebbSPeter Maydell  .. option:: --pid=PID, -p PID
88605ffebbSPeter Maydell
89605ffebbSPeter Maydell    Restrict the tracing session so that it only triggers for the process
90605ffebbSPeter Maydell    identified by *PID*.
91605ffebbSPeter Maydell
92605ffebbSPeter Maydell  For example, to monitor all processes executing ``qemu-system-x86_64``
93605ffebbSPeter Maydell  as found on ``$PATH``, displaying all I/O related probes:
94605ffebbSPeter Maydell
95605ffebbSPeter Maydell  ::
96605ffebbSPeter Maydell
97605ffebbSPeter Maydell    $ qemu-trace-stap run qemu-system-x86_64 'qio*'
98605ffebbSPeter Maydell
99605ffebbSPeter Maydell  To monitor only the QEMU process with PID 1732
100605ffebbSPeter Maydell
101605ffebbSPeter Maydell  ::
102605ffebbSPeter Maydell
103605ffebbSPeter Maydell    $ qemu-trace-stap run --pid=1732 qemu-system-x86_64 'qio*'
104605ffebbSPeter Maydell
105605ffebbSPeter Maydell  To monitor QEMU processes running an alternative binary outside of
106605ffebbSPeter Maydell  ``$PATH``, displaying verbose information about setup of the
107605ffebbSPeter Maydell  tracing environment:
108605ffebbSPeter Maydell
109605ffebbSPeter Maydell  ::
110605ffebbSPeter Maydell
111605ffebbSPeter Maydell    $ qemu-trace-stap -v run /opt/qemu/4.0.0/qemu-system-x86_64 'qio*'
112605ffebbSPeter Maydell
113605ffebbSPeter MaydellSee also
114605ffebbSPeter Maydell--------
115605ffebbSPeter Maydell
116605ffebbSPeter Maydell:manpage:`qemu(1)`, :manpage:`stap(1)`
117605ffebbSPeter Maydell
118605ffebbSPeter Maydell..
119605ffebbSPeter Maydell  Copyright (C) 2019 Red Hat, Inc.
120605ffebbSPeter Maydell
121605ffebbSPeter Maydell  This program is free software; you can redistribute it and/or modify
122605ffebbSPeter Maydell  it under the terms of the GNU General Public License as published by
123605ffebbSPeter Maydell  the Free Software Foundation; either version 2 of the License, or
124605ffebbSPeter Maydell  (at your option) any later version.
125