Messages in this thread | | | Date | Thu, 28 Jul 2016 14:42:15 -0400 | From | Steven Rostedt <> | Subject | Re: [PATCH 13/15] perf script python: Fix string vs byte array resolving |
| |
On Mon, 18 Jul 2016 20:33:16 -0300 Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> From: Jiri Olsa <jolsa@kernel.org> > > Jirka reported that python code returns all arrays as strings. This > makes impossible to get all items for byte array tracepoint field > containing 0x00 value item. > > Fixing this by scanning full length of the array and returning it as > PyByteArray object in case non printable byte is found. > > Signed-off-by: Jiri Olsa <jolsa@kernel.org> > Reported-and-Tested-by: Jiri Pirko <jiri@mellanox.com> > Cc: David Ahern <dsahern@gmail.com> > Cc: Namhyung Kim <namhyung@kernel.org> > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> > Cc: Steven Rostedt <rostedt@goodmis.org> > Link: http://lkml.kernel.org/r/1468685480-18951-2-git-send-email-jolsa@kernel.org > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > --- > .../util/scripting-engines/trace-event-python.c | 39 ++++++++++++++++++---- > 1 file changed, 33 insertions(+), 6 deletions(-) > > diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools/perf/util/scripting-engines/trace-event-python.c > index 6ac6b7a33f42..7bd6da80533e 100644 > --- a/tools/perf/util/scripting-engines/trace-event-python.c > +++ b/tools/perf/util/scripting-engines/trace-event-python.c > @@ -386,6 +386,21 @@ exit: > return pylist; > } > > +static int is_printable_array(char *p, unsigned int len) > +{ > + unsigned int i; > + > + if (!p || !len || p[len - 1] != 0) > + return 0; > + > + len--; > + > + for (i = 0; i < len; i++) { > + if (!isprint(p[i]) && !isspace(p[i])) > + return 0; > + } > + return 1; > +} >
Darn, I never got to add my Reviewed-by tag, as I had lots of comments on this function. Oh well, that's what happens when you go off to volcanoes.
-- Steve
| |