Hi, On Tue, 18 Mar 2025 18:09:38 +0000 Douglas RAILLARD <[email protected]> wrote:
> From: Douglas Raillard <[email protected]> > > The printk format for synth event uses "%.*s" to print string fields, > but then only passes the pointer part as var arg. > > Add the missing precision var arg. I'm not sure what you want to. Would you mean showing the string length too? But I think actual output(*) shows only string, right? (*) the output data which can be read from `trace` file. Thank you, > > Signed-off-by: Douglas Raillard <[email protected]> > --- > kernel/trace/trace_events_synth.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/kernel/trace/trace_events_synth.c > b/kernel/trace/trace_events_synth.c > index e3f7d09e5512..274b9b1d9f7d 100644 > --- a/kernel/trace/trace_events_synth.c > +++ b/kernel/trace/trace_events_synth.c > @@ -620,7 +620,8 @@ static int __set_synth_event_print_fmt(struct synth_event > *event, > if (event->fields[i]->is_string && > event->fields[i]->is_dynamic) > pos += snprintf(buf + pos, LEN_OR_ZERO, > - ", __get_str(%s)", event->fields[i]->name); > + ", (int)__get_dynamic_array_len(%s), > __get_str(%s)", > + event->fields[i]->name, event->fields[i]->name); > else if (event->fields[i]->is_stack) > pos += snprintf(buf + pos, LEN_OR_ZERO, > ", __get_stacktrace(%s)", > event->fields[i]->name); > -- > 2.43.0 > -- Masami Hiramatsu (Google) <[email protected]>
