Em Mon, Feb 13, 2017 at 12:14:18PM -0500, Steven Rostedt escreveu: > On Mon, 13 Feb 2017 13:26:22 -0300 > Arnaldo Carvalho de Melo <[email protected]> wrote: > > > > > diff --git a/tools/lib/traceevent/kbuffer-parse.c > > > b/tools/lib/traceevent/kbuffer-parse.c > > > index 65984f1c2974..2009cb7d9675 100644 > > > --- a/tools/lib/traceevent/kbuffer-parse.c > > > +++ b/tools/lib/traceevent/kbuffer-parse.c > > > @@ -315,6 +315,7 @@ static unsigned int old_update_pointers(struct > > > kbuffer *kbuf) > > > extend += delta; > > > delta = extend; > > > ptr += 4; > > > + lenght = 0; > > > > ouch, 'length' :-) > > > > clang provides a really nice error message: > > > > kbuffer-parse.c:318:3: error: use of undeclared identifier 'lenght'; did > > you mean 'length'? > > lenght = 0; > > ^~~~~~ > > length > > kbuffer-parse.c:297:15: note: 'length' declared here > > unsigned int length; > > ^ > > 1 error generated. > > > > I only had to test compile it :-) > > > > > break; > > > > > > case OLD_RINGBUF_TYPE_TIME_STAMP: > > > > > OK, I pulled the patch into git, and made it official ;-) > I also fixed the "lenght" in the change log too. > > Could you use this instead.
Sure, now take a look at this another one: commit 6401e4361df183bd9953dce56f7c51d8ef28b11e Author: Arnaldo Carvalho de Melo <[email protected]> Date: Mon Feb 13 13:33:57 2017 -0300 tools lib traceevent plugin function: Initialize 'index' variable Detected with clang: CC /tmp/build/perf/plugin_function.o plugin_function.c:145:6: warning: variable 'index' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] if (parent && ftrace_indent->set) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ plugin_function.c:148:29: note: uninitialized use occurs here trace_seq_printf(s, "%*s", index*3, ""); ^~~~~ plugin_function.c:145:2: note: remove the 'if' if its condition is always true if (parent && ftrace_indent->set) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ plugin_function.c:145:6: warning: variable 'index' is used uninitialized whenever '&&' condition is false [-Wsometimes-uninitialized] if (parent && ftrace_indent->set) ^~~~~~ plugin_function.c:148:29: note: uninitialized use occurs here trace_seq_printf(s, "%*s", index*3, ""); ^~~~~ plugin_function.c:145:6: note: remove the '&&' if its condition is always true if (parent && ftrace_indent->set) ^~~~~~~~~ plugin_function.c:133:11: note: initialize the variable 'index' to silence this warning int index; ^ = 0 2 warnings generated. Cc: Adrian Hunter <[email protected]> Cc: David Ahern <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Wang Nan <[email protected]> Link: http://lkml.kernel.org/n/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]> diff --git a/tools/lib/traceevent/plugin_function.c b/tools/lib/traceevent/plugin_function.c index a00ec190821a..42dbf73758f3 100644 --- a/tools/lib/traceevent/plugin_function.c +++ b/tools/lib/traceevent/plugin_function.c @@ -130,7 +130,7 @@ static int function_handler(struct trace_seq *s, struct pevent_record *record, unsigned long long pfunction; const char *func; const char *parent; - int index; + int index = 0; if (pevent_get_field_val(s, event, "ip", record, &function, 1)) return trace_seq_putc(s, '!'); > -- Steve > > > From 4f060a0577156acfdc0524a634f4afcc1657c929 Mon Sep 17 00:00:00 2001 > From: "Steven Rostedt (VMware)" <[email protected]> > Date: Mon, 13 Feb 2017 12:11:44 -0500 > Subject: [PATCH] tools lib traceevent: Initialize lenght on > OLD_RING_BUFFER_TYPE_TIME_STAMP > > A undefined value was being used for the OLD_RING_BUFFER_TYPE_TIME_STAMP > case entry, as the 'length' variable was not being initialized, fix it. > > Caught by the reporter when building tools/perf/ using clang, which emmitted > this warning: > > kbuffer-parse.c:312:7: warning: variable 'length' is used uninitialized > whenever switch case is taken [-Wsometimes-uninitialized] > case OLD_RINGBUF_TYPE_TIME_EXTEND: > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ > kbuffer-parse.c:339:29: note: uninitialized use occurs here > kbuf->next = kbuf->index + length; > ^~~~~~ > kbuffer-parse.c:297:21: note: initialize the variable 'length' to silence > this warning > unsigned int length; > ^ > = 0 > > Reported-by: Arnaldo Carvalho de Melo <[email protected]> > Cc: Adrian Hunter <[email protected]> > Cc: David Ahern <[email protected]> > Cc: Jiri Olsa <[email protected]> > Cc: Namhyung Kim <[email protected]> > Cc: Wang Nan <[email protected]> > Link: http://lkml.kernel.org/r/[email protected] > Signed-off-by: Steven Rostedt (VMware) <[email protected]> > --- > tools/lib/traceevent/kbuffer-parse.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/tools/lib/traceevent/kbuffer-parse.c > b/tools/lib/traceevent/kbuffer-parse.c > index 65984f1..c94e364 100644 > --- a/tools/lib/traceevent/kbuffer-parse.c > +++ b/tools/lib/traceevent/kbuffer-parse.c > @@ -315,6 +315,7 @@ static unsigned int old_update_pointers(struct kbuffer > *kbuf) > extend += delta; > delta = extend; > ptr += 4; > + length = 0; > break; > > case OLD_RINGBUF_TYPE_TIME_STAMP: > -- > 2.9.3

