table of contents
other versions
- wheezy 3.2.17-1
PERF_3.2-PROBE(1) | perf Manual | PERF_3.2-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 or perf probe [options] --line=LINE or perf probe [options] --vars=PROBEPOINT
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).
-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
List up current probe events.
-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.
-F, --funcs
Show available functions in given module or
kernel.
--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
Set the maximum number of probe points for an
event. Default is 128.
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*'
SEE ALSO¶
perf_3.2-trace(1), perf_3.2-record(1)06/24/2012 | perf |