Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1244601 > unrolled thread

Re: [PATCH 2/5] perf: unwind: pass symbol source to libunwind

Started byJiri Olsa <jolsa@redhat.com>
First post2015-10-12 13:30 +0200
Last post2015-10-13 13:00 +0200
Articles 3 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH 2/5] perf: unwind: pass symbol source to libunwind Jiri Olsa <jolsa@redhat.com> - 2015-10-12 13:30 +0200
    Re: [PATCH 2/5] perf: unwind: pass symbol source to libunwind Namhyung Kim <namhyung@kernel.org> - 2015-10-12 14:40 +0200
      Re: [PATCH 2/5] perf: unwind: pass symbol source to libunwind Rabin Vincent <rabin.vincent@axis.com> - 2015-10-13 13:00 +0200

#1244601 — Re: [PATCH 2/5] perf: unwind: pass symbol source to libunwind

FromJiri Olsa <jolsa@redhat.com>
Date2015-10-12 13:30 +0200
SubjectRe: [PATCH 2/5] perf: unwind: pass symbol source to libunwind
Message-ID<qiJsK-5Ti-11@gated-at.bofh.it>
On Sun, Sep 27, 2015 at 08:37:56PM +0200, Rabin Vincent wrote:
> Even if --symfs is used to point to the debug binaries, we send in the
> non-debug filenames to libunwind, which leads to libunwind not finding
> the debug frame.  Fix this.
> 
> Signed-off-by: Rabin Vincent <rabin.vincent@axis.com>

cc-ing Namhyung on this one

jirka

> ---
>  tools/perf/util/unwind-libunwind.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/perf/util/unwind-libunwind.c b/tools/perf/util/unwind-libunwind.c
> index ef799dc..b93bf7f 100644
> --- a/tools/perf/util/unwind-libunwind.c
> +++ b/tools/perf/util/unwind-libunwind.c
> @@ -363,7 +363,7 @@ find_proc_info(unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi,
>  			dso__data_put_fd(map->dso);
>  
>  		memset(&di, 0, sizeof(di));
> -		if (dwarf_find_debug_frame(0, &di, ip, base, map->dso->name,
> +		if (dwarf_find_debug_frame(0, &di, ip, base, map->dso->symsrc_filename,
>  					   map->start, map->end))
>  			return dwarf_search_unwind_table(as, ip, &di, pi,
>  							 need_unwind_info, arg);
> -- 
> 1.7.10.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1244649

FromNamhyung Kim <namhyung@kernel.org>
Date2015-10-12 14:40 +0200
Message-ID<qiKyt-7s0-5@gated-at.bofh.it>
In reply to#1244601
Hi Jiri,

On Mon, Oct 12, 2015 at 8:24 PM, Jiri Olsa <jolsa@redhat.com> wrote:
> On Sun, Sep 27, 2015 at 08:37:56PM +0200, Rabin Vincent wrote:
>> Even if --symfs is used to point to the debug binaries, we send in the
>> non-debug filenames to libunwind, which leads to libunwind not finding
>> the debug frame.  Fix this.
>>
>> Signed-off-by: Rabin Vincent <rabin.vincent@axis.com>
>
> cc-ing Namhyung on this one

It seems that the dso->symsrc_filename can be NULL and it's unsafe to
call dwarf_find_debug_frame() with the NULL pointer.  Other than that
looks good to me.

Thanks,
Namhyung


>> ---
>>  tools/perf/util/unwind-libunwind.c |    2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/tools/perf/util/unwind-libunwind.c b/tools/perf/util/unwind-libunwind.c
>> index ef799dc..b93bf7f 100644
>> --- a/tools/perf/util/unwind-libunwind.c
>> +++ b/tools/perf/util/unwind-libunwind.c
>> @@ -363,7 +363,7 @@ find_proc_info(unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi,
>>                       dso__data_put_fd(map->dso);
>>
>>               memset(&di, 0, sizeof(di));
>> -             if (dwarf_find_debug_frame(0, &di, ip, base, map->dso->name,
>> +             if (dwarf_find_debug_frame(0, &di, ip, base, map->dso->symsrc_filename,
>>                                          map->start, map->end))
>>                       return dwarf_search_unwind_table(as, ip, &di, pi,
>>                                                        need_unwind_info, arg);
>> --
>> 1.7.10.4
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at  http://www.tux.org/lkml/



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

[toc] | [prev] | [next] | [standalone]


#1245586

FromRabin Vincent <rabin.vincent@axis.com>
Date2015-10-13 13:00 +0200
Message-ID<qj5th-4gD-29@gated-at.bofh.it>
In reply to#1244649
On Mon, Oct 12, 2015 at 02:35:08PM +0200, Namhyung Kim wrote:
> On Mon, Oct 12, 2015 at 8:24 PM, Jiri Olsa <jolsa@redhat.com> wrote:
> > On Sun, Sep 27, 2015 at 08:37:56PM +0200, Rabin Vincent wrote:
> >> Even if --symfs is used to point to the debug binaries, we send in the
> >> non-debug filenames to libunwind, which leads to libunwind not finding
> >> the debug frame.  Fix this.
> >>
> >> Signed-off-by: Rabin Vincent <rabin.vincent@axis.com>
> >
> > cc-ing Namhyung on this one
> 
> It seems that the dso->symsrc_filename can be NULL and it's unsafe to
> call dwarf_find_debug_frame() with the NULL pointer.  Other than that
> looks good to me.

Thanks, I will change it to fallback to dso->name if
dso->symsrc_filename is NULL.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web