https://sourceware.org/bugzilla/show_bug.cgi?id=17102
Bug ID: 17102
Summary: Gprof of a multi threaded program using Boost::Signal2
produces an incomplete or wrong profile.
Product: binutils
Version: 2.20
Status: NEW
Severity: normal
Priority: P2
Component: gprof
Assignee: unassigned at sourceware dot org
Reporter: dgotwisn at newfieldwireless dot com
Running a multi threaded program built with Boost::Signal2 produces call stack
entries with fewer indices (left hand side) than are indicated by the callee's
(right hand side).
Code was built with G++ gcc (GCC) 4.8.1, gprof GNU gprof version
2.20.51.0.2-5.36.el6 20100205.
In looking at the gprof output of this progrm, the call tree lists 1832 items.
If you look at block 84, for example, it refers to an item 2319. I have found
at least 10 others that are larger than 1832 in the program.
This code was built with the following set as the last set of options given to
G++: -pg -O0 -fno-inline -fno-omit-frame-pointer
-fno-inline-functions-called-once -fno-optimize-sibling-calls
-fno-default-inline, so no inlining or other relevant optimizations should have
occurred. Without these, the profile collapses things and looses itself much
earlier.
Here is the block for 84:
---
0.000.00 1997300/1997300
boost::variant,
boost::signals2::detail::foreign_void_shared_ptr,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_>::~variant()
[2319]
[84] 0.00.000.00 1997300
boost::variant,
boost::signals2::detail::foreign_void_shared_ptr,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
boost::detail::variant::void_>::destroy_content() [84] XXX I16
0.000.00 2026778/2026778
boost::detail::variant::destroyer::result_type
boost::variant,
boost::signals2::detail::foreign_void_shared_ptr,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
boost::detail::variant::void_>::internal_apply_visitor(boost::detail::variant::destroyer&)
[69]
0.000.00 2023311/2023335
boost::detail::variant::destroyer::destroyer() [70]
0.000.00 1915477/1915501
boost::detail::variant::destroyer::~destroyer() [91]
---
Because this is proprietary code, and I am not a boost expert, I can't easily
attach a code sample that reproduces the problem.
--
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils