perf probe: Accept filter argument for --funcs
This allows the user to pass the filter pattern directly to the --funcs option as below: ---- # ./perf probe -F *kmalloc __kmalloc devm_kmalloc mempool_kmalloc sg_kmalloc sock_kmalloc ---- We previously needed to use the --filter option for that. Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: David Ahern <dsahern@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/20150505022950.23399.22435.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
307a464b23
commit
9f7811d08d
@ -84,9 +84,10 @@ OPTIONS
|
|||||||
variables.
|
variables.
|
||||||
|
|
||||||
-F::
|
-F::
|
||||||
--funcs::
|
--funcs[=FILTER]::
|
||||||
Show available functions in given module or kernel. With -x/--exec,
|
Show available functions in given module or kernel. With -x/--exec,
|
||||||
can also list functions in a user space executable / shared library.
|
can also list functions in a user space executable / shared library.
|
||||||
|
This also can accept a FILTER rule argument.
|
||||||
|
|
||||||
--filter=FILTER::
|
--filter=FILTER::
|
||||||
(Only for --vars and --funcs) Set filter. FILTER is a combination of glob
|
(Only for --vars and --funcs) Set filter. FILTER is a combination of glob
|
||||||
|
@ -290,6 +290,17 @@ static int opt_show_vars(const struct option *opt __maybe_unused,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
static int opt_show_funcs(const struct option *opt __maybe_unused,
|
||||||
|
const char *str, int unset)
|
||||||
|
{
|
||||||
|
if (!unset)
|
||||||
|
params.show_funcs = true;
|
||||||
|
|
||||||
|
if (str)
|
||||||
|
return params_add_filter(str);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int opt_set_filter(const struct option *opt __maybe_unused,
|
static int opt_set_filter(const struct option *opt __maybe_unused,
|
||||||
const char *str, int unset __maybe_unused)
|
const char *str, int unset __maybe_unused)
|
||||||
@ -399,8 +410,9 @@ __cmd_probe(int argc, const char **argv, const char *prefix __maybe_unused)
|
|||||||
OPT__DRY_RUN(&probe_event_dry_run),
|
OPT__DRY_RUN(&probe_event_dry_run),
|
||||||
OPT_INTEGER('\0', "max-probes", ¶ms.max_probe_points,
|
OPT_INTEGER('\0', "max-probes", ¶ms.max_probe_points,
|
||||||
"Set how many probe points can be found for a probe."),
|
"Set how many probe points can be found for a probe."),
|
||||||
OPT_BOOLEAN('F', "funcs", ¶ms.show_funcs,
|
OPT_CALLBACK_DEFAULT('F', "funcs", NULL, "[FILTER]",
|
||||||
"Show potential probe-able functions."),
|
"Show potential probe-able functions.",
|
||||||
|
opt_show_funcs, DEFAULT_FUNC_FILTER),
|
||||||
OPT_CALLBACK('\0', "filter", NULL,
|
OPT_CALLBACK('\0', "filter", NULL,
|
||||||
"[!]FILTER", "Set a filter (with --vars/funcs only)\n"
|
"[!]FILTER", "Set a filter (with --vars/funcs only)\n"
|
||||||
"\t\t\t(default: \"" DEFAULT_VAR_FILTER "\" for --vars,\n"
|
"\t\t\t(default: \"" DEFAULT_VAR_FILTER "\" for --vars,\n"
|
||||||
@ -472,9 +484,6 @@ __cmd_probe(int argc, const char **argv, const char *prefix __maybe_unused)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
if (params.show_funcs) {
|
if (params.show_funcs) {
|
||||||
if (!params.filter)
|
|
||||||
params.filter = strfilter__new(DEFAULT_FUNC_FILTER,
|
|
||||||
NULL);
|
|
||||||
ret = show_available_funcs(params.target, params.filter,
|
ret = show_available_funcs(params.target, params.filter,
|
||||||
params.uprobes);
|
params.uprobes);
|
||||||
strfilter__delete(params.filter);
|
strfilter__delete(params.filter);
|
||||||
|
Loading…
Reference in New Issue
Block a user