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