@example @c man begin SYNOPSIS @command{qemu-trace-stap} @var{GLOBAL-OPTIONS} @var{COMMAND} @var{COMMAND-OPTIONS} @var{ARGS...} @c man end @end example @c man begin DESCRIPTION The @command{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 @command{stap} program. @c man end @c man begin OPTIONS The following global options may be used regardless of which command is executed: @table @option @item @var{--verbose}, @var{-v} Display verbose information about command execution. @end table The following commands are valid: @table @option @item @var{list} @var{BINARY} @var{PATTERN...} List all the probe names provided by @var{BINARY} that match @var{PATTERN}. If @var{BINARY} is not an absolute path, it will be located by searching the directories listed in the @code{$PATH} environment variable. @var{PATTERN} is a plain string that is used to filter the results of this command. It may optionally contain a @code{*} wildcard to facilitate matching multiple probes without listing each one explicitly. Multiple @var{PATTERN} arguments may be given, causing listing of probes that match any of the listed names. If no @var{PATTERN} is given, the all possible probes will be listed. For example, to list all probes available in the @command{qemu-system-x86_64} binary: @example $ qemu-trace-stap list qemu-system-x86_64 @end example To filter the list to only cover probes related to QEMU's cryptographic subsystem, in a binary outside @code{$PATH} @example $ qemu-trace-stap list /opt/qemu/4.0.0/bin/qemu-system-x86_64 'qcrypto*' @end example @item @var{run} @var{OPTIONS} @var{BINARY} @var{PATTERN...} Run a trace session, printing formatted output any time a process that is executing @var{BINARY} triggers a probe matching @var{PATTERN}. If @var{BINARY} is not an absolute path, it will be located by searching the directories listed in the @code{$PATH} environment variable. @var{PATTERN} is a plain string that matches a probe name shown by the @var{list} command. It may optionally contain a @code{*} wildcard to facilitate matching multiple probes without listing each one explicitly. Multiple @var{PATTERN} arguments may be given, causing all matching probes to be monitored. At least one @var{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: @table @option @item @var{--pid=PID}, @var{-p PID} Restrict the tracing session so that it only triggers for the process identified by @code{PID}. @end table For example, to monitor all processes executing @command{qemu-system-x86_64} as found on $PATH, displaying all I/O related probes: @example $ qemu-trace-stap run qemu-system-x86_64 'qio*' @end example To monitor only the QEMU process with PID 1732 @example $ qemu-trace-stap run --pid=1732 qemu-system-x86_64 'qio*' @end example To monitor QEMU processes running an alternative binary outside of @code{$PATH}, displaying verbose information about setup of the tracing environment: @example $ qemu-trace-stap -v run /opt/qemu/4.0.0/qemu-system-x86_64 'qio*' @end example @end table @c man end @ignore @setfilename qemu-trace-stap @settitle QEMU SystemTap trace tool @c man begin LICENSE 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. @c man end @c man begin SEEALSO qemu(1), stap(1) @c man end @end ignore