Re: [RFC] perf: probe_finder: continue if atleast one probe point found

From: Joel Fernandes
Date: Tue Mar 01 2016 - 05:34:43 EST


Hi Hiramatu,

On Mon, Feb 29, 2016 at 8:29 PM, åæéå / HIRAMATUïMASAMI
<masami.hiramatsu.pt@xxxxxxxxxxx> wrote:
> BTW,
>
> ./perf probe \
> -k ./vmlinux -s ./ -x /lib/x86_64-linux-gnu/libc.so.6 -a 'malloc $params'
>
> might help your case. $params is expanded to function parameters automatically
> and if there is no parameters, it is just ignored :)

Thanks, I agree this is a better approach.

How about an informative error letting the user know about it? Is the
below Ok? I can send a patch.

----x8--------
diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
index 4ce5c5e..21f282a 100644
--- a/tools/perf/util/probe-finder.c
+++ b/tools/perf/util/probe-finder.c
@@ -1247,8 +1247,12 @@ static int add_probe_trace_event(Dwarf_Die
*sc_die, struct probe_finder *pf)
pf->tvar = &tev->args[i];
/* Variable should be found from scope DIE */
ret = find_variable(sc_die, pf);
- if (ret != 0)
+ if (ret != 0) {
+ pr_err("Variable couldn't be found, if probe
is on inline function,"
+ "try '%s' or '%s' instead.\n",
+ PROBE_ARG_PARAMS, PROBE_ARG_VARS);
break;
+ }
}