> From: Wang Nan [mailto:[email protected]]
> 
> When manually added uprobe point with zero address, 'uprobe_events' output
> '(null)' instead of 0x00000000:
> 
>  # echo p:probe_libc/abs_0 /path/to/lib.bin:0x0 arg1=%ax > \
>             /sys/kernel/debug/tracing/uprobe_events
> 
>  # cat /sys/kernel/debug/tracing/uprobe_events
>    p:probe_libc/abs_0 /path/to/lib.bin:0x          (null) arg1=%ax
> 
> This patch fixes this behavior:
> 
>  # cat /sys/kernel/debug/tracing/uprobe_events
>  p:probe_libc/abs_0 /path/to/lib.bin:0x0000000000000000


Looks Good to me :)

Acked-by: Masami Hiramatsu <[email protected]>

Thanks!

> 
> Signed-off-by: Wang Nan <[email protected]>
> Cc: Arnaldo Carvalho de Melo <[email protected]>
> Cc: Ingo Molnar <[email protected]>
> Cc: Masami Hiramatsu <[email protected]>
> Cc: Namhyung Kim <[email protected]>
> Cc: Steven Rostedt <[email protected]>
> ---
>  kernel/trace/trace_uprobe.c | 17 ++++++++++++++++-
>  1 file changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c
> index f97479f..d2f6d0b 100644
> --- a/kernel/trace/trace_uprobe.c
> +++ b/kernel/trace/trace_uprobe.c
> @@ -601,7 +601,22 @@ static int probes_seq_show(struct seq_file *m, void *v)
> 
>       seq_printf(m, "%c:%s/%s", c, tu->tp.call.class->system,
>                       trace_event_name(&tu->tp.call));
> -     seq_printf(m, " %s:0x%p", tu->filename, (void *)tu->offset);
> +     seq_printf(m, " %s:", tu->filename);
> +
> +     /* Don't print "0x  (null)" when offset is 0 */
> +     if (tu->offset) {
> +             seq_printf(m, "0x%p", (void *)tu->offset);
> +     } else {
> +             switch (sizeof(void *)) {
> +             case 4:
> +                     seq_printf(m, "0x00000000");
> +                     break;
> +             case 8:
> +             default:
> +                     seq_printf(m, "0x0000000000000000");
> +                     break;
> +             }
> +     }
> 
>       for (i = 0; i < tu->tp.nr_args; i++)
>               seq_printf(m, " %s=%s", tu->tp.args[i].name, 
> tu->tp.args[i].comm);
> --
> 1.8.3.4

N�����r��y����b�X��ǧv�^�)޺{.n�+����{����zX����ܨ}���Ơz�&j:+v�������zZ+��+zf���h���~����i���z��w���?�����&�)ߢf��^jǫy�m��@A�a���
0��h���i

Reply via email to