4ea42b1814
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>
31 lines
1.3 KiB
C
31 lines
1.3 KiB
C
#ifndef BUILTIN_H
|
|
#define BUILTIN_H
|
|
|
|
#include "util/util.h"
|
|
#include "util/strbuf.h"
|
|
|
|
extern const char perf_version_string[];
|
|
extern const char perf_usage_string[];
|
|
extern const char perf_more_info_string[];
|
|
|
|
extern void list_common_cmds_help(void);
|
|
extern const char *help_unknown_cmd(const char *cmd);
|
|
extern void prune_packed_objects(int);
|
|
extern int read_line_with_nul(char *buf, int size, FILE *file);
|
|
extern int check_pager_config(const char *cmd);
|
|
|
|
extern int cmd_annotate(int argc, const char **argv, const char *prefix);
|
|
extern int cmd_help(int argc, const char **argv, const char *prefix);
|
|
extern int cmd_sched(int argc, const char **argv, const char *prefix);
|
|
extern int cmd_list(int argc, const char **argv, const char *prefix);
|
|
extern int cmd_record(int argc, const char **argv, const char *prefix);
|
|
extern int cmd_report(int argc, const char **argv, const char *prefix);
|
|
extern int cmd_stat(int argc, const char **argv, const char *prefix);
|
|
extern int cmd_timechart(int argc, const char **argv, const char *prefix);
|
|
extern int cmd_top(int argc, const char **argv, const char *prefix);
|
|
extern int cmd_trace(int argc, const char **argv, const char *prefix);
|
|
extern int cmd_version(int argc, const char **argv, const char *prefix);
|
|
extern int cmd_probe(int argc, const char **argv, const char *prefix);
|
|
|
|
#endif
|