• M
    perf: Add perf probe subcommand, a kprobe-event setup helper · 4ea42b18
    Masami Hiramatsu 提交于
    Add perf probe subcommand that implements a kprobe-event setup helper
    to the perf command.
    This allows user to define kprobe events using C expressions (C line
    numbers, C function names, and C local variables).
    
    Usage
    -----
     perf probe [<options>] -P 'PROBEDEF' [-P 'PROBEDEF' ...]
    
        -k, --vmlinux <file>  vmlinux/module pathname
        -P, --probe <p|r:[GRP/]NAME FUNC[+OFFS][@src]|@src:LINE [ARG ...]>
                              probe point definition, where
    		p:	kprobe probe
    		r:	kretprobe probe
    		GRP:	Group name (optional)
    		NAME:	Event name
    		FUNC:	Function name
    		OFFS:	Offset from function entry (in byte)
    		SRC:	Source code path
    		LINE:	Line number
    		ARG:	Probe argument (local variable name or
    			kprobe-tracer argument format is supported.)
    
    Changes in v4:
     - Add _GNU_SOURCE macro for strndup().
    
    Changes in v3:
     - Remove -r option because perf always be used for online kernel.
     - Check malloc/calloc results.
    
    Changes in v2:
     - Check synthesized string length.
     - Rename perf kprobe to perf probe.
     - Use spaces for separator and update usage comment.
     - Check error paths in parse_probepoint().
     - Check optimized-out variables.
    Signed-off-by: NMasami Hiramatsu <mhiramat@redhat.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Christoph Hellwig <hch@infradead.org>
    Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
    Cc: Jim Keniston <jkenisto@us.ibm.com>
    Cc: Frank Ch. Eigler <fche@redhat.com>
    LKML-Reference: <20091008211737.29299.14784.stgit@dhcp-100-2-132.bos.redhat.com>
    Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
    4ea42b18
perf.c 11.7 KB