Messages in this thread Patch in this message | | | Date | Wed, 02 Dec 2009 12:12:03 +0800 | From | Wang Liming <> | Subject | Re: [tip:perf/core] perf probe: Add --list option for listing current probe events |
| |
Hi Masami,
tip-bot for Masami Hiramatsu wrote: > Commit-ID: 4de189fe6e5ad8241f6f8709d2e2ba4c3aeae33a > Gitweb: http://git.kernel.org/tip/4de189fe6e5ad8241f6f8709d2e2ba4c3aeae33a > Author: Masami Hiramatsu <mhiramat@redhat.com> > AuthorDate: Mon, 30 Nov 2009 19:20:17 -0500 > Committer: Ingo Molnar <mingo@elte.hu> > CommitDate: Tue, 1 Dec 2009 08:20:02 +0100 > > perf probe: Add --list option for listing current probe events > > Add --list option for listing currently defined probe events > in the kernel. This shows events in below format; > > [group:event] <perf-probe probe-definition> > > for example: > > [probe:schedule_0] schedule+30 cpu > > Note that source file/line information is not supported yet. > So even if you added a probe by line, it will be shown in > <symbol+offset>. ... > + > + /* Scan event and group name. */ > + ret = sscanf(argv[0], "%c:%m[^/ \t]/%m[^ \t]", > + &pr, group, event); "%m" are typos? > + if (ret != 3) > + semantic_error("Failed to parse event name: %s", argv[0]); > + pr_debug("Group:%s Event:%s probe:%c\n", *group, *event, pr); > + > + if (!pp) > + goto end; > + > + pp->retprobe = (pr == 'r'); > + > + /* Scan function name and offset */ > + ret = sscanf(argv[1], "%m[^+]+%d", &pp->function, &pp->offset); the same error? fix attached below.
--
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c index e42f3ac..8d46521 100644 --- a/tools/perf/util/probe-event.c +++ b/tools/perf/util/probe-event.c @@ -199,8 +199,8 @@ void parse_trace_kprobe_event(const char *str, char **group, char **event, semantic_error("Too less arguments.");
/* Scan event and group name. */ - ret = sscanf(argv[0], "%c:%m[^/ \t]/%m[^ \t]", - &pr, group, event); + ret = sscanf(argv[0], "%c:%s[^/ \t]/%s[^ \t]", + &pr, *group, *event); if (ret != 3) semantic_error("Failed to parse event name: %s", argv[0]); pr_debug("Group:%s Event:%s probe:%c\n", *group, *event, pr); @@ -211,7 +211,7 @@ void parse_trace_kprobe_event(const char *str, char **group, char **event, pp->retprobe = (pr == 'r');
/* Scan function name and offset */ - ret = sscanf(argv[1], "%m[^+]+%d", &pp->function, &pp->offset); + ret = sscanf(argv[1], "%s[^+]+%d", pp->function, &pp->offset); if (ret == 1) pp->offset = 0;
| |