table of contents
other versions
- jessie-backports 4.4-4~bpo8+1
PERF_4.4-PROBE(1) | perf Manual | PERF_4.4-PROBE(1) |
NAME¶
perf-probe - Define new dynamic tracepointsSYNOPSIS¶
perf probe [options] --add=PROBE [...] or perf probe [options] PROBE or perf probe [options] --del=[GROUP:]EVENT [...] or perf probe --list[=[GROUP:]EVENT] or perf probe [options] --line=LINE or perf probe [options] --vars=PROBEPOINT or perf probe [options] --funcs
DESCRIPTION¶
This command defines dynamic tracepoint events, by symbol and registers without debuginfo, or by C expressions (C line numbers, C function names, and C local variables) with debuginfo.OPTIONS¶
-k, --vmlinux=PATHSpecify vmlinux path which has debuginfo (Dwarf
binary).
-m, --module=MODNAME|PATH
Specify module name in which perf-probe searches probe
points or lines. If a path of module file is passed, perf-probe treat it as an
offline module (this means you can add a probe on a module which has not been
loaded yet).
-s, --source=PATH
Specify path to kernel source.
-v, --verbose
Be more verbose (show parsed arguments, etc). Can not use
with -q.
-q, --quiet
Be quiet (do not show any messages including errors). Can
not use with -v.
-a, --add=
Define a probe event (see PROBE SYNTAX for detail).
-d, --del=
Delete probe events. This accepts glob
wildcards(*, ?) and character classes(e.g. [a-z], [!A-Z]).
-l, --list[=[GROUP:]EVENT]
List up current probe events. This can also accept
filtering patterns of event names.
-L, --line=
Show source code lines which can be probed. This needs an
argument which specifies a range of the source code. (see LINE SYNTAX for
detail)
-V, --vars=
Show available local variables at given probe point. The
argument syntax is same as PROBE SYNTAX, but NO ARGs.
--externs
(Only for --vars) Show external defined variables in
addition to local variables.
--no-inlines
(Only for --add) Search only for non-inlined functions.
The functions which do not have instances are ignored.
-F, --funcs[=FILTER]
Show available functions in given module or kernel. With
-x/--exec, can also list functions in a user space executable / shared
library. This also can accept a FILTER rule argument.
--filter=FILTER
(Only for --vars and --funcs) Set filter. FILTER is a
combination of glob pattern, see FILTER PATTERN for detail. Default FILTER is
"! k???tab_* & !crc_*" for --vars, and "!_*"
for --funcs. If several filters are specified, only the last filter is
used.
-f, --force
Forcibly add events with existing name.
-n, --dry-run
Dry run. With this option, --add and --del doesn’t
execute actual adding and removal operations.
--max-probes=NUM
Set the maximum number of probe points for an event.
Default is 128.
-x, --exec=PATH
Specify path to the executable or shared library file for
user space tracing. Can also be used with --funcs option.
--demangle
Demangle application symbols. --no-demangle is also
available for disabling demangling.
--demangle-kernel
Demangle kernel symbols. --no-demangle-kernel is also
available for disabling kernel demangling.
In absence of -m/-x options, perf probe checks if the first argument after the
options is an absolute path name. If its an absolute path, perf probe uses it
as a target module/target user space binary to probe.
PROBE SYNTAX¶
Probe points are defined by following syntax.1) Define event based on function name [EVENT=]FUNC[@SRC][:RLN|+OFFS|%return|;PTN] [ARG ...]
2) Define event based on source file with line number [EVENT=]SRC:ALN [ARG ...]
3) Define event based on source file with lazy pattern [EVENT=]SRC;PTN [ARG ...]
PROBE ARGUMENT¶
Each probe argument follows below syntax.[NAME=]LOCALVAR|$retval|%REG|@SYMBOL[:TYPE]
LINE SYNTAX¶
Line range is described by following syntax."FUNC[@SRC][:RLN[+NUM|-RLN2]]|SRC[:ALN[+NUM|-ALN2]]"
LAZY MATCHING¶
The lazy line matching is similar to glob matching but ignoring spaces in both of pattern and target. So this accepts wildcards('*', '?') and character classes(e.g. [a-z], [!A-Z]).
FILTER PATTERN¶
The filter pattern is a glob matching pattern(s) to filter variables. In addition, you can use "!" for specifying filter-out rule. You also can give several rules combined with "&" or "|", and fold those rules as one rule by using "(" ")".
EXAMPLES¶
Display which lines in schedule() can be probed:./perf probe --line schedule
./perf probe schedule:12 cpu or ./perf probe --add='schedule:12 cpu'
this will add one or more probes which has the name start with "schedule".
Add probes on lines in schedule() function which calls update_rq_clock().
./perf probe 'schedule;update_rq_clock*' or ./perf probe --add='schedule;update_rq_clock*'
./perf probe --del='schedule*'
./perf probe -x /bin/zsh zfree or ./perf probe /bin/zsh zfree
./perf probe -x /lib/libc.so.6 malloc or ./perf probe /lib/libc.so.6 malloc
SEE ALSO¶
perf_4.4-trace(1), perf_4.4-record(1)2016-03-20 | perf |