• Steven Rostedt's avatar
    tools lib traceevent: Use helper trace-seq in print functions like kernel does · 12e55569
    Steven Rostedt authored
    Jiri Olsa reported that his plugin for scsi was chopping off part of the
    output. Investigating this, I found that Jiri used the same functions as
    what is in the kernel, which adds the following:
    
    	trace_seq_putc(p, 0);
    
    This adds a '\0' to the output string. The reason this works in the
    kernel is that the "p" that is passed to the function helper is a
    temporary trace_seq. But in the libtraceevent library, it's the pointer
    to the trace_seq used to output. By adding the '\0', it truncates the
    line and nothing added after that will be printed.
    
    We can solve this in two ways. One is to have the helper functions for
    the library not add the unnecessary '\0'. The other is to change the
    library to also use a helper trace_seq structure that gets copied to the
    main trace_seq just like the kernel does.
    
    The latter allows the helper functions in the plugins to be the same as
    the kernel, which is the better solution.
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    Reported-by: default avatarJiri Olsa <jolsa@redhat.com>
    Tested-by: default avatarJiri Olsa <jolsa@redhat.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lkml.kernel.org/r/20131119182937.401668e3@gandalf.local.homeSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    12e55569
event-parse.c 122 KB