Re: Re: [PATCH -tip 4/4] perf/probe: Improve error messages with --line option

From: Masami Hiramatsu
Date: Tue Jun 10 2014 - 06:26:35 EST


(2014/06/10 17:11), Namhyung Kim wrote:
> Hi Masami,
>
> On Fri, 06 Jun 2014 07:14:06 +0000, Masami Hiramatsu wrote:
>> Improve error messages of perf probe --line mode. Current
>> perf probe shows "Debuginfo analysis failed" error with an
>> error code when the given symbol is not found as below.
>>
>> -----
>> # perf probe -L page_cgroup_init_flatmem
>> Debuginfo analysis failed. (-2)
>> Error: Failed to show lines.
>> -----
>>
>> But -2 (-ENOMEM) means that the given source line or function
>
> s/ENOMEM/ENOENT/

Ah, right :) It's a typo...

Thanks!

>
> Thanks,
> Namhyung
>
>
>> is not found. With this patch, perf probe shows correct error
>> message as below.
>>
>> -----
>> # perf probe -L page_cgroup_init_flatmem
>> Specified source line is not found.
>> Error: Failed to show lines.
>> -----
>>
>> There is also another debug error code is shown in the same
>> function after get_real_path(). This removes that too.
>>
>> Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
>> Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
>> Cc: Paul Mackerras <paulus@xxxxxxxxx>
>> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
>> Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
>> ---
>> tools/perf/util/probe-event.c | 6 +++---
>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
>> index 44c7141..9a0a183 100644
>> --- a/tools/perf/util/probe-event.c
>> +++ b/tools/perf/util/probe-event.c
>> @@ -628,11 +628,11 @@ static int __show_line_range(struct line_range *lr, const char *module)
>>
>> ret = debuginfo__find_line_range(dinfo, lr);
>> debuginfo__delete(dinfo);
>> - if (ret == 0) {
>> + if (ret == 0 || ret == -ENOENT) {
>> pr_warning("Specified source line is not found.\n");
>> return -ENOENT;
>> } else if (ret < 0) {
>> - pr_warning("Debuginfo analysis failed. (%d)\n", ret);
>> + pr_warning("Debuginfo analysis failed.\n");
>> return ret;
>> }
>>
>> @@ -641,7 +641,7 @@ static int __show_line_range(struct line_range *lr, const char *module)
>> ret = get_real_path(tmp, lr->comp_dir, &lr->path);
>> free(tmp); /* Free old path */
>> if (ret < 0) {
>> - pr_warning("Failed to find source file. (%d)\n", ret);
>> + pr_warning("Failed to find source file path.\n");
>> return ret;
>> }
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>


--
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Research Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@xxxxxxxxxxx


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/