All of lore.kernel.org
 help / color / mirror / Atom feed
From: jolsa@redhat.com (Jiri Olsa)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/3] perf: parse the .debug_frame section in case .eh_frame is not present
Date: Fri, 6 Sep 2013 12:17:20 +0200	[thread overview]
Message-ID: <20130906101720.GA1055@krava.brq.redhat.com> (raw)
In-Reply-To: <CAFrcx1=QA3EpPAxx7Jx=87WbupAEFQ8L+t9pTJ=+3ucVTE+xtg@mail.gmail.com>

On Fri, Sep 06, 2013 at 11:31:17AM +0200, Jean Pihet wrote:
> Hi Jiri,
> 
> On 5 September 2013 18:30, Jiri Olsa <jolsa@redhat.com> 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

WARNING: multiple messages have this Message-ID (diff)
From: Jiri Olsa <jolsa@redhat.com>
To: Jean Pihet <jean.pihet@linaro.org>
Cc: Will Deacon <will.deacon@arm.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linaro-kernel@lists.linaro.org" <linaro-kernel@lists.linaro.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	Patch Tracking <patches@linaro.org>
Subject: Re: [PATCH 3/3] perf: parse the .debug_frame section in case .eh_frame is not present
Date: Fri, 6 Sep 2013 12:17:20 +0200	[thread overview]
Message-ID: <20130906101720.GA1055@krava.brq.redhat.com> (raw)
In-Reply-To: <CAFrcx1=QA3EpPAxx7Jx=87WbupAEFQ8L+t9pTJ=+3ucVTE+xtg@mail.gmail.com>

On Fri, Sep 06, 2013 at 11:31:17AM +0200, Jean Pihet wrote:
> Hi Jiri,
> 
> On 5 September 2013 18:30, Jiri Olsa <jolsa@redhat.com> 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

  reply	other threads:[~2013-09-06 10:17 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-04 18:04 [PATCH 0/3] perf: parse the dwarf backtrace info from .debug_frame section Jean Pihet
2013-09-04 18:04 ` Jean Pihet
2013-09-04 18:04 ` [PATCH 1/3] ARM: perf: add support for perf regs API Jean Pihet
2013-09-04 18:04   ` Jean Pihet
2013-09-05 13:21   ` Ard Biesheuvel
2013-09-05 13:21     ` Ard Biesheuvel
2013-09-04 18:04 ` [PATCH 2/3] ARM: perf: wire up perf_regs and unwind support for ARM Jean Pihet
2013-09-04 18:04   ` Jean Pihet
2013-09-04 18:04 ` [PATCH 3/3] perf: parse the .debug_frame section in case .eh_frame is not present Jean Pihet
2013-09-04 18:04   ` Jean Pihet
2013-09-05 12:45   ` Will Deacon
2013-09-05 12:45     ` Will Deacon
2013-09-05 13:05     ` Jean Pihet
2013-09-05 13:05       ` Jean Pihet
2013-09-05 13:17       ` Ard Biesheuvel
2013-09-05 13:17         ` Ard Biesheuvel
2013-09-05 13:19         ` Will Deacon
2013-09-05 13:19           ` Will Deacon
2013-09-05 13:33           ` Jean Pihet
2013-09-05 13:33             ` Jean Pihet
2013-09-05 15:29             ` Jean Pihet
2013-09-05 15:29               ` Jean Pihet
2013-09-05 15:45               ` Ard Biesheuvel
2013-09-05 15:45                 ` Ard Biesheuvel
2013-09-05 13:10     ` Ard Biesheuvel
2013-09-05 13:10       ` Ard Biesheuvel
2013-09-05 16:30   ` Jiri Olsa
2013-09-05 16:30     ` Jiri Olsa
2013-09-05 16:49     ` Jean Pihet
2013-09-05 16:49       ` Jean Pihet
2013-09-06 10:17       ` Jiri Olsa
2013-09-06 10:17         ` Jiri Olsa
2013-09-06  9:31     ` Jean Pihet
2013-09-06  9:31       ` Jean Pihet
2013-09-06 10:17       ` Jiri Olsa [this message]
2013-09-06 10:17         ` Jiri Olsa
2013-09-06 14:10         ` Jean Pihet
2013-09-06 14:10           ` Jean Pihet
  -- strict thread matches above, loose matches on Subject: below --
2013-09-09 10:00 [PATCH 0/3] perf: parse the dwarf backtrace info from .debug_frame section Jean Pihet
2013-09-09 10:00 ` [PATCH 3/3] perf: parse the .debug_frame section in case .eh_frame is not present Jean Pihet
2013-09-09 10:00   ` Jean Pihet
2013-09-10 19:14   ` David Ahern
2013-09-10 19:14     ` David Ahern
2013-09-10 19:38     ` Jean Pihet
2013-09-10 19:38       ` Jean Pihet
2013-09-12 12:38   ` Jiri Olsa
2013-09-12 12:38     ` Jiri Olsa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130906101720.GA1055@krava.brq.redhat.com \
    --to=jolsa@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.