Re: [PATCH][trace-cmd] Print value of unknown symbolic fields

From: Steven Rostedt
Date: Tue Oct 03 2017 - 19:12:47 EST


On Thu, 28 Sep 2017 22:13:10 +0200
Jan Kiszka <jan.kiszka@xxxxxxxxxxx> wrote:

> From: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>
>
> Aligns trace-cmd with the behavior of the kernel.
>
> Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>
> ---
> event-parse.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/event-parse.c b/event-parse.c
> index 606da5b..25e0874 100644
> --- a/event-parse.c
> +++ b/event-parse.c
> @@ -3960,6 +3960,8 @@ static void print_str_arg(struct trace_seq *s, void *data, int size,
> break;
> }
> }
> + if (!flag)
> + trace_seq_printf(s, "0x%llx", val);
> break;
> case PRINT_HEX:
> if (arg->hex.field->type == PRINT_DYNAMIC_ARRAY) {

I'm going to also add this patch, to do the same for flags:

diff --git a/event-parse.c b/event-parse.c
index 25e0874..7ef66f8 100644
--- a/event-parse.c
+++ b/event-parse.c
@@ -3950,6 +3950,11 @@ static void print_str_arg(struct trace_seq *s, void *data, int size,
val &= ~fval;
}
}
+ if (val) {
+ if (print && arg->flags.delim)
+ trace_seq_puts(s, arg->flags.delim);
+ trace_seq_printf(s, "0x%llx", val);
+ }
break;
case PRINT_SYMBOL:
val = eval_num_arg(data, size, event, arg->symbol.field);


-- Steve