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.00 0.00 1997300/1997300 boost::variant<boost::shared_ptr<void>, 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.0 0.00 0.00 1997300 boost::variant<boost::shared_ptr<void>, 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.00 0.00 2026778/2026778 boost::detail::variant::destroyer::result_type boost::variant<boost::shared_ptr<void>, 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>(boost::detail::variant::destroyer&) [69] 0.00 0.00 2023311/2023335 boost::detail::variant::destroyer::destroyer() [70] 0.00 0.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