Re: [BUG] perf report: fails to symbolize when vaddr is non zero for shared objects

From: Arnaldo Carvalho de Melo
Date: Tue Jun 16 2015 - 10:34:32 EST


Em Tue, Jun 16, 2015 at 12:03:01AM -0700, Stephane Eranian escreveu:
> Hi,
>
> It has been brought to my attention that on systems where the text
> of shared libs is not loaded with a zero virtual address, perf report
> fails to symbolize
> correctly samples. This is true of older versions of perf and also the latest
> in tip.git.
>
> I looked at symbol-elf.c and I did not see a place where the vaddr was taken
> into account from the program headers in the case of ET_DYN. I see it for
> ET_EXE, though.
>
> $ readelf -e lib.so
> Type: DYN (Shared object file)
> ....
> Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
> LOAD 0x000000 0x0000d000 0x0000d000 0x73657c 0x73657c R E 0x1000
>
> If you get samples in the shared lib, they will be off, possibly
> attributed to the wrong
> functions.
>
> Could this be fixed quickly?

You tell me, do you have a patch to propose? :-)

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