* Masami Hiramatsu <mhira...@kernel.org> [2020-07-09 17:07:31]:

> Reported-by: Andi Kleen <a...@firstfloor.org>
> Signed-off-by: Masami Hiramatsu <mhira...@kernel.org>
> ---
>  tools/perf/util/probe-event.c |    5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
> index 1e95a336862c..671176d39569 100644
> --- a/tools/perf/util/probe-event.c
> +++ b/tools/perf/util/probe-event.c
> @@ -379,6 +379,11 @@ static int find_alternative_probe_point(struct debuginfo 
> *dinfo,
>                       address = sym->start;
>               else
>                       address = map->unmap_ip(map, sym->start) - map->reloc;
> +             if (sym->type == STT_GNU_IFUNC) {
> +                     pr_warning("Warning: The probe address (0x%lx) is in a 
> GNU indirect function.\n"
> +                             "This may not work as you expected unless you 
> intend to probe the indirect function.\n",
> +                             (unsigned long)address);
> +             }

Are these GNU indirect functions possible in kernel? If not we could move
this warning under if (uprobes)

Also instead of printing the address, can we print the pp->function?

>               break;
>       }
>       if (!address) {
> 

-- 
Thanks and Regards
Srikar Dronamraju

Reply via email to