ee391de876
Update perf-probe.txt to suit to current perf-probe command and add some examples. Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com> Cc: systemtap <systemtap@sources.redhat.com> Cc: DLE <dle-develop@lists.sourceforge.net> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Mike Galbraith <efault@gmx.de> Cc: K.Prasad <prasad@linux.vnet.ibm.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com> LKML-Reference: <20100225133519.6725.58816.stgit@localhost6.localdomain6> Signed-off-by: Ingo Molnar <mingo@elte.hu>
106 lines
3.1 KiB
Plaintext
106 lines
3.1 KiB
Plaintext
perf-probe(1)
|
|
=============
|
|
|
|
NAME
|
|
----
|
|
perf-probe - Define new dynamic tracepoints
|
|
|
|
SYNOPSIS
|
|
--------
|
|
[verse]
|
|
'perf probe' [options] --add='PROBE' [...]
|
|
or
|
|
'perf probe' [options] PROBE
|
|
or
|
|
'perf probe' [options] --del='[GROUP:]EVENT' [...]
|
|
or
|
|
'perf probe' --list
|
|
or
|
|
'perf probe' --line='FUNC[:RLN[+NUM|:RLN2]]|SRC:ALN[+NUM|:ALN2]'
|
|
|
|
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=PATH::
|
|
Specify vmlinux path which has debuginfo (Dwarf binary).
|
|
|
|
-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)
|
|
|
|
-f::
|
|
--force::
|
|
Forcibly add events with existing name.
|
|
|
|
PROBE SYNTAX
|
|
------------
|
|
Probe points are defined by following syntax.
|
|
|
|
"[EVENT=]FUNC[+OFFS|:RLN|%return][@SRC]|SRC:ALN [ARG ...]"
|
|
|
|
'EVENT' specifies the name of new event, if omitted, it will be set the name of the probed function. Currently, event group name is set as 'probe'.
|
|
'FUNC' specifies a probed function name, and it may have one of the following options; '+OFFS' is the offset from function entry address in bytes, 'RLN' is the relative-line number from function entry line, and '%return' means that it probes function return. In addition, 'SRC' specifies a source file which has that function.
|
|
It is also possible to specify a probe point by the source line number by using 'SRC:ALN' syntax, where 'SRC' is the source file path and 'ALN' is the line number.
|
|
'ARG' specifies the arguments of this probe point. You can use the name of local variable, or kprobe-tracer argument format (e.g. $retval, %ax, etc).
|
|
|
|
LINE SYNTAX
|
|
-----------
|
|
Line range is descripted by following syntax.
|
|
|
|
"FUNC[:RLN[+NUM|:RLN2]]|SRC:ALN[+NUM|:ALN2]"
|
|
|
|
FUNC specifies the function name of showing lines. 'RLN' is the start line
|
|
number from function entry line, and 'RLN2' is the end line number. As same as
|
|
probe syntax, 'SRC' means the source file path, 'ALN' is start line number,
|
|
and 'ALN2' is end line number in the file. It is also possible to specify how
|
|
many lines to show by using 'NUM'.
|
|
So, "source.c:100-120" shows lines between 100th to l20th in source.c file. And "func:10+20" shows 20 lines from 10th line of func function.
|
|
|
|
EXAMPLES
|
|
--------
|
|
Display which lines in schedule() can be probed:
|
|
|
|
./perf probe --line schedule
|
|
|
|
Add a probe on schedule() function 12th line with recording cpu local variable:
|
|
|
|
./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".
|
|
|
|
Delete all probes on schedule().
|
|
|
|
./perf probe --del='schedule*'
|
|
|
|
|
|
SEE ALSO
|
|
--------
|
|
linkperf:perf-trace[1], linkperf:perf-record[1]
|