Re: [PATCH 3/3] perf: parse the .debug_frame section in case.eh_frame is not present

From: Jiri Olsa
Date: Fri Sep 06 2013 - 06:17:57 EST


On Fri, Sep 06, 2013 at 11:31:17AM +0200, Jean Pihet wrote:
> Hi Jiri,
>
> On 5 September 2013 18:30, Jiri Olsa <jolsa@xxxxxxxxxx> wrote:
> > On Wed, Sep 04, 2013 at 08:04:14PM +0200, Jean Pihet wrote:
> >> On ARM the debug info is not present in the .eh_frame sections but
> >> instead in .debug_frame.
> >> Use libunwind to load and parse the debug info.
> >
> > hum, cannot make final link:
> >
> > $ make LIBUNWIND_DIR=/opt/libunwind/
> > CHK -fstack-protector-all
> > CHK -Wstack-protector
> > CHK -Wvolatile-register-var
> > CHK -D_FORTIFY_SOURCE=2
> > CHK bionic
> > CHK libelf
> > CHK libdw
> > CHK -DLIBELF_MMAP
> > CHK -DLIBELF_MMAP
> > CHK libunwind
> > CHK libaudit
> >
> > ...
> >
> > make[1]: `liblk.a' is up to date.
> > SUBDIR /home/jolsa/linux-perf/tools/lib/traceevent/
> > LINK perf
> > libperf.a(unwind.o): In function `find_proc_info':
> > /home/jolsa/linux-perf/tools/perf/util/unwind.c:339: undefined reference to `_Ux86_64_dwarf_find_debug_frame'
> > collect2: ld returned 1 exit status
> > make: *** [perf] Error 1
> >
> >
> > I'm using the latest code from git://git.sv.gnu.org/libunwind.git
> >
> > Looks like dwarf_find_debug_frame is not exported, although
> > it looks like it is based on what I see in libunwind sources ;-)
> >
> > What did I miss?
> libunwind needs to be configured with --enable-debug-frame for the
> debug_frame code to be included in the lib.
> On ARM the flag is always set while it isn't on x86. Here is the
> culprit below (lines from libunwind configure).

yay, thats it!

>
> Should that be changed in configure along with the changes in tools/perf?

I guess it's ok

Other than that tabs misformating the 'perf tool' change looks ok.

I tested the '.eh_frame' code and it's still working. Once
I figure out how to create a x86 binary with .debug_frame
data I'll test the code itself ;-)

If you could think of any automated testcase for this that could
be added under 'tests' that'd be nice (not necessarily)

thanks,
jirka
--
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/