On Thu, Jul 09, 2020 at 05:07:12PM +0900, Masami Hiramatsu wrote: > Fix a wrong "variable not found" warning when the probe point is > not found in the debuginfo. > Since the debuginfo__find_probes() can return 0 even if it does not > find given probe point in the debuginfo, fill_empty_trace_arg() can > be called with tf.ntevs == 0 and it can warn a wrong warning. > To fix this, reject ntevs == 0 in fill_empty_trace_arg(). > > E.g. without this patch; > > # perf probe -x /lib64/libc-2.30.so -a "memcpy arg1=%di" > Failed to find the location of the '%di' variable at this address. > Perhaps it has been optimized out. > Use -V with the --range option to show '%di' location range. > Added new events: > probe_libc:memcpy (on memcpy in /usr/lib64/libc-2.30.so with arg1=%di) > probe_libc:memcpy (on memcpy in /usr/lib64/libc-2.30.so with arg1=%di) > > You can now use it in all perf tools, such as: > > perf record -e probe_libc:memcpy -aR sleep 1 > > With this; > > # perf probe -x /lib64/libc-2.30.so -a "memcpy arg1=%di" > Added new events: > probe_libc:memcpy (on memcpy in /usr/lib64/libc-2.30.so with arg1=%di) > probe_libc:memcpy (on memcpy in /usr/lib64/libc-2.30.so with arg1=%di) > > You can now use it in all perf tools, such as: > > perf record -e probe_libc:memcpy -aR sleep 1 > > > Reported-by: Andi Kleen <a...@firstfloor.org> > Fixes: cb4027308570 ("perf probe: Trace a magic number if variable is not > found") > Cc: sta...@vger.kernel.org > Signed-off-by: Masami Hiramatsu <mhira...@kernel.org>
Tested-by: Andi Kleen <a...@linux.intel.com> Except for the minor nit on the message all patches look good to me. -Andi