perf --call-graph dwarf doesn't record correct call graph
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libunwind (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Xenial |
Confirmed
|
High
|
Unassigned | ||
linux (Ubuntu) |
Confirmed
|
High
|
Unassigned | ||
Xenial |
Confirmed
|
High
|
Unassigned |
Bug Description
1. What you expected to happen
Profiling program by "perf --call-graph dwarf" shows correct call-graph in perf report
2. What actually happened
perf report doesn't show correct call graph. Then perf is re-builded from source. During building, perf configure detection says stock libunwind's debug_frame feature is not enabled. It leads perf can't record program's call-graph correctly.
3. How it is solved on my local machine
a. get libunwind source by apt-get source libunwind-dev.
b. enable CONFIG_DEBUG_FRAME in libunwind configuration: autoreconfig -i && ./configure --enable-
c. build libunwind and install it to /usr/lib/local
d. get kernel source by apt-get source linux and compile perf with following command:
e. perf call-graph works!
ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: libunwind-dev (not installed)
ProcVersionSign
Uname: Linux 4.4.0-22-generic aarch64
ApportVersion: 2.20.1-0ubuntu2
Architecture: arm64
Date: Wed Jun 8 03:33:05 2016
JournalErrors:
Error: command ['journalctl', '-b', '--priority=
Users in the 'systemd-journal' group can see all messages. Pass -q to
turn off this notice.
No journal files were opened due to insufficient permissions.
SourcePackage: libunwind
UpgradeStatus: No upgrade log present (probably fresh install)
affects: | linux-meta (Ubuntu) → linux (Ubuntu) |
Changed in linux (Ubuntu): | |
status: | New → Confirmed |
Changed in libunwind (Ubuntu Xenial): | |
importance: | Undecided → High |
Changed in linux (Ubuntu): | |
importance: | Undecided → High |
Changed in linux (Ubuntu Xenial): | |
importance: | Undecided → High |
Changed in libunwind (Ubuntu): | |
importance: | Undecided → High |
Changed in libunwind (Ubuntu Xenial): | |
status: | New → Confirmed |
Changed in linux (Ubuntu Xenial): | |
status: | New → Confirmed |
Status changed to 'Confirmed' because the bug affects multiple users.