123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- 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]
|