Linux Perf Users
 help / color / mirror / Atom feed
* Not finding symbol information
@ 2018-02-02 14:06 Vuille, Martin (Martin)
  2018-02-02 14:31 ` Milian Wolff
  0 siblings, 1 reply; 8+ messages in thread
From: Vuille, Martin (Martin) @ 2018-02-02 14:06 UTC (permalink / raw)
  To: linux-perf-users@vger.kernel.org

We are using 'perf record' to collect information on an embedded ARM board (the target)
and then using 'perf report' on a PC (the host) to interpret the data.

The host has a copy of the rootfs of the target that also includes debug info. We pass the
'--symfs' option to 'perf report' to point to the rootfs.

Whenever an event in the data corresponds to a DSO that exists on the host, 'perf report'
complains that the debug info is not available, even though that info is in fact available in
the rootfs.

What seems to be happening is that 'perf report' "sees" the host's copy of the DSO first,
"remembers" this DSO's buildid (which is incorrect), then "sees" the debug info in the
rootfs but rejects it because it doesn't match the buildid "remembered" earlier, and then
concludes that there is no debug info available.

Using /bin/bash as an example, selected output from 'perf report -v':

...
build id event received for /bin/bash: a35856957f6f165a1ca4ea98afbd1a986dfa785c
...
symsrc__init: build id mismatch for sip96x1_prod/cp/lib/dvf99/sysroots/armv5te-dspg-linux-gnueabi///bin/bash.
symsrc__init: build id mismatch for sip96x1_prod/cp/lib/dvf99/sysroots/armv5te-dspg-linux-gnueabi///bin/bash.
symsrc__init: build id mismatch for sip96x1_prod/cp/lib/dvf99/sysroots/armv5te-dspg-linux-gnueabi///bin/.debug/bash.
/bin/bash with build id 04eca96c5bf3e9a300952a29ef3218f00487d37b not found, continuing without symbols
...

$ file /bin/bash
/bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=04eca96c5bf3e9a300952a29ef3218f00487d37b, stripped

$ file sip96x1_prod/cp/lib/dvf99/sysroots/armv5te-dspg-linux-gnueabi///bin/bash
sip96x1_prod/cp/lib/dvf99/sysroots/armv5te-dspg-linux-gnueabi///bin/bash: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=a35856957f6f165a1ca4ea98afbd1a986dfa785c, stripped

$ file sip96x1_prod/cp/lib/dvf99/sysroots/armv5te-dspg-linux-gnueabi///bin/.debug/bash
sip96x1_prod/cp/lib/dvf99/sysroots/armv5te-dspg-linux-gnueabi///bin/.debug/bash: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter *empty*, for GNU/Linux 3.2.0, BuildID[sha1]=a35856957f6f165a1ca4ea98afbd1a986dfa785c, not stripped

We are using Linux 4.4-11 on the target and 4.4.0-109-generic (Ubuntu 16.04) on the host.

Is this a known issue? Has it been addressed in a more recent kernel?

Thanks in advance,
MV

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-02-06 13:20 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-02 14:06 Not finding symbol information Vuille, Martin (Martin)
2018-02-02 14:31 ` Milian Wolff
2018-02-03  0:38   ` Kim Phillips
2018-02-03  3:30     ` Vuille, Martin (Martin)
2018-02-05 23:35       ` Kim Phillips
2018-02-06  2:13         ` Vuille, Martin (Martin)
2018-02-06 13:09         ` Vuille, Martin (Martin)
2018-02-06 13:20           ` Vuille, Martin (Martin)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox