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

From: Will Deacon
Date: Thu Sep 05 2013 - 08:45:56 EST


Hi Jean,

[adding Michael, since I know he was interested in this]

On Wed, Sep 04, 2013 at 07:04:14PM +0100, 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.

How have you tested this? Regardless of whether or not I apply this patch, I
get the same (broken/truncated) callchains for userspace in perf report.

E.g. the following stupid program (built with -O0 -g):

--->8

void bar(void)
{
int i;
for (i = 0; i < 1000000; ++i)
asm volatile("nop" ::: "memory");
}

void foo(void)
{
bar();
}


int main(void)
{
foo();
return 0;
}

8<---

Gives me an incomplete callchain:

# Overhead Command Shared Object Symbol
# ........ ........ ................. ...............................
#
0.00% unwindme unwindme [.] bar
|
--- bar

This is the same with or without your patch.

Will
--
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/