diff options
author | Masami Hiramatsu <mhiramat@redhat.com> | 2009-10-08 17:17:38 -0400 |
---|---|---|
committer | Frederic Weisbecker <fweisbec@gmail.com> | 2009-10-12 17:31:52 -0400 |
commit | 4ea42b181434bfc6a0a18d32214130a242d489bf (patch) | |
tree | 2c467d795d90440e0293951087c41caca8397584 /tools/perf/Makefile | |
parent | e93f4d8539d5e9dd59f4af9d8ef4e9b62cfa1f81 (diff) |
perf: Add perf probe subcommand, a kprobe-event setup helper
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: Masami 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: Frederic Weisbecker <fweisbec@gmail.com>
Diffstat (limited to 'tools/perf/Makefile')
-rw-r--r-- | tools/perf/Makefile | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tools/perf/Makefile b/tools/perf/Makefile index b5f1953b6144..6dabcf1a4df6 100644 --- a/tools/perf/Makefile +++ b/tools/perf/Makefile | |||
@@ -419,6 +419,16 @@ ifneq ($(shell sh -c "(echo '\#include <libelf.h>'; echo 'int main(void) { Elf * | |||
419 | msg := $(error No libelf.h/libelf found, please install libelf-dev/elfutils-libelf-devel); | 419 | msg := $(error No libelf.h/libelf found, please install libelf-dev/elfutils-libelf-devel); |
420 | endif | 420 | endif |
421 | 421 | ||
422 | ifneq ($(shell sh -c "(echo '\#include <libdwarf/dwarf.h>'; echo '\#include <libdwarf/libdwarf.h>'; echo 'int main(void) { Dwarf_Debug dbg; Dwarf_Error err; dwarf_init(0, DW_DLC_READ, 0, 0, &dbg, &err); return (long)dbg; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -ldwarf -lelf -o /dev/null $(ALL_LDFLAGS) > /dev/null 2>&1 && echo y"), y) | ||
423 | msg := $(warning No libdwarf.h found, disables probe subcommand. Please install libdwarf-dev/libdwarf-devel); | ||
424 | else | ||
425 | EXTLIBS += -lelf -ldwarf | ||
426 | LIB_H += util/probe-finder.h | ||
427 | LIB_OBJS += util/probe-finder.o | ||
428 | BUILTIN_OBJS += builtin-probe.o | ||
429 | BASIC_CFLAGS += -DSUPPORT_DWARF | ||
430 | endif | ||
431 | |||
422 | ifdef NO_DEMANGLE | 432 | ifdef NO_DEMANGLE |
423 | BASIC_CFLAGS += -DNO_DEMANGLE | 433 | BASIC_CFLAGS += -DNO_DEMANGLE |
424 | else | 434 | else |