From: Jiri Olsa <jolsa@redhat.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Jiri Olsa <jolsa@kernel.org>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
lkml <linux-kernel@vger.kernel.org>,
David Ahern <dsahern@gmail.com>, Ingo Molnar <mingo@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>
Subject: Re: [PATCH 10/10] perf script python: Fix string vs byte array resolving
Date: Tue, 12 Jul 2016 14:52:45 +0200 [thread overview]
Message-ID: <20160712125245.GA20585@krava> (raw)
In-Reply-To: <20160712083728.2c468986@gandalf.local.home>
On Tue, Jul 12, 2016 at 08:37:28AM -0400, Steven Rostedt wrote:
> On Tue, 12 Jul 2016 10:11:56 +0200
> Jiri Olsa <jolsa@redhat.com> wrote:
>
>
> > ---
> > diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools/perf/util/scripting-engines/trace-event-python.c
> > index 75e9790ebb96..9f810e6c739a 100644
> > --- a/tools/perf/util/scripting-engines/trace-event-python.c
> > +++ b/tools/perf/util/scripting-engines/trace-event-python.c
> > @@ -390,11 +390,13 @@ static int is_printable_array(char *p, unsigned int len)
> > {
> > unsigned int i;
> >
> > - for (i = 0; i < len; i++)
> > + /* Exclude the last zero byte of string.. */
> > + for (i = 0; i < len - 1; i++)
> > if (!isprint(p[i]) && !isspace(p[i]))
> > return 0;
> >
> > - return 1;
> > + /* ... and check its presence in the last byte. */
> > + return p[i] == 0;
> > }
> >
>
> Of course this fails on:
>
> is_printable_array(a, strlen(a));
hum, so string is not passed to trace buffer with 0 at the end?
I'll check the option of passing everything as PyByteArray.
If it's the same for user, we'll have simpler code in here.
>
> because the last byte wont be 0. What about:
>
> for (i = 0; i < len; i++)
> if (!isprint(p[i]) && !isspace(p[i]))
> break;
>
> return i == len ||
> (i == len - 1 && p[i] == 0);
thanks,
jirka
next prev parent reply other threads:[~2016-07-12 12:53 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-10 11:07 [PATCH 00/10] perf python: Add support to access tracepoint fields Jiri Olsa
2016-07-10 11:07 ` [PATCH 01/10] perf tools: Make perf_evlist__event2evsel public Jiri Olsa
2016-07-13 7:24 ` [tip:perf/core] perf evlist: Make event2evsel public tip-bot for Jiri Olsa
2016-07-10 11:07 ` [PATCH 02/10] perf tools: Introduce trace_event__tp_format_id function Jiri Olsa
2016-07-13 7:25 ` [tip:perf/core] perf tools: Introduce trace_event__tp_format_id() tip-bot for Jiri Olsa
2016-07-10 11:07 ` [PATCH 03/10] perf python: Init perf_event_attr::size in perf.evsel constructor Jiri Olsa
2016-07-13 7:25 ` [tip:perf/core] " tip-bot for Jiri Olsa
2016-07-10 11:07 ` [PATCH 04/10] perf python: Fix pyrf_evlist__read_on_cpu event consuming Jiri Olsa
2016-07-13 7:26 ` [tip:perf/core] " tip-bot for Jiri Olsa
2016-07-10 11:07 ` [PATCH 05/10] perf python: Put perf.event objects into dictionary Jiri Olsa
2016-07-13 7:26 ` [tip:perf/core] " tip-bot for Jiri Olsa
2016-07-10 11:07 ` [PATCH 06/10] perf python: Add perf.tracepoint method Jiri Olsa
2016-07-13 7:27 ` [tip:perf/core] " tip-bot for Jiri Olsa
2016-07-10 11:07 ` [PATCH 07/10] perf python: Add struct evsel into struct pyrf_event Jiri Olsa
2016-07-13 7:27 ` [tip:perf/core] " tip-bot for Jiri Olsa
2016-07-10 11:08 ` [PATCH 08/10] perf python: Add support to resolve tracepoint fields Jiri Olsa
2016-07-13 7:27 ` [tip:perf/core] " tip-bot for Jiri Olsa
2016-07-10 11:08 ` [PATCH 09/10] perf python: Add tracepoint example Jiri Olsa
2016-07-13 7:28 ` [tip:perf/core] " tip-bot for Jiri Olsa
2016-07-10 11:08 ` [PATCH 10/10] perf script python: Fix string vs byte array resolving Jiri Olsa
2016-07-11 15:54 ` Steven Rostedt
2016-07-12 8:11 ` Jiri Olsa
2016-07-12 12:37 ` Steven Rostedt
2016-07-12 12:52 ` Jiri Olsa [this message]
2016-07-12 13:00 ` Steven Rostedt
2016-07-12 13:35 ` Jiri Olsa
2016-07-12 13:48 ` Steven Rostedt
2016-07-12 19:27 ` Arnaldo Carvalho de Melo
2016-07-12 19:48 ` Steven Rostedt
2016-07-13 9:06 ` Jiri Olsa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160712125245.GA20585@krava \
--to=jolsa@redhat.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=dsahern@gmail.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.