> 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

