lkml.org 
[lkml]   [2013]   [Dec]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] perf probe: Improve error message when function not found
Masami:

If you do not have any problems with this version please Ack so Arnaldo
will pick it up.

Thanks,

David

On 12/20/13, 1:04 PM, David Ahern wrote:
> When requesting a function from a userspace library the error message to
> the user is less than helpful. e.g.,
>
> perf probe -x /lib64/libpthread-2.14.90.so -a 'lock_full=__pthread_mutex_lock_full'
> no symbols found in /lib64/libpthread-2.14.90.so, maybe install a debug package?
> Failed to load map.
> Error: Failed to add events. (-22)
>
> yet the symbol really does exist but is a local symbol which is filtered:
>
> nm /lib64/libpthread-2.14.90.so | grep __pthread_mutex_lock_full
> 0000000000005700 t __pthread_mutex_lock_full
>
> With this patch:
> perf probe -x /lib64/libpthread-2.14.90.so -a 'lock_full=__pthread_mutex_lock_full'
>
> no symbols found in /lib64/libpthread-2.14.90.so, maybe install a debug package?
> Failed to find function in /lib64/libpthread-2.14.90.so. Perhaps it is a local variable?
> Error: Failed to add events. (-22)
>
> Signed-off-by: David Ahern <dsahern@gmail.com>
> Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
> Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
>
> diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
> index 9c6989ca2bea..2eac49096840 100644
> --- a/tools/perf/util/probe-event.c
> +++ b/tools/perf/util/probe-event.c
> @@ -2309,7 +2309,8 @@ static int convert_name_to_addr(struct perf_probe_event *pev, const char *exec)
> }
> available_func_filter = strfilter__new(function, NULL);
> if (map__load(map, filter_available_functions)) {
> - pr_err("Failed to load map.\n");
> + pr_err("Failed to find requested symbol in %s. Is it a global variable?\n",
> + name);
> goto out;
> }
>
>



\
 
 \ /
  Last update: 2013-12-26 15:21    [W:0.044 / U:1.160 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site