https://bugs.kde.org/show_bug.cgi?id=497723
Bug ID: 497723
Summary: Enabling Ada demangling breaks callgrind
differentiation between overloaded functions and
procedures
Classification: Developer tools
Product: valgrind
Version: 3.24 GIT
Platform: Other
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: callgrind
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Ada demangling has been enabled in 27fe47bd8a.
Ada allows to overload function and procedures such as e.g.
package P is
procedure Proc (I : Integer);
procedure Proc (B : Boolean);
procedure Proc;
end P;
Such procedure will get mangled names such as P_Proc, P__Proc__1 and
P__Proc__2.
Demangled names will all be be P.Proc.
When running an executable calling the above 3 procedures, kcachegrind then
shows the calls to the 3 procedures
as being calls to one single procedure P.Proc. In other words, it glues all the
procedures, their calls and their costs
in one single procedure.
Using --demangle=no goes back to the 3.23 behaviour as it disables the Ada
demangling (and not only the C++ demangling
as wrongly indicated by the --help).
Wondering if this callgrind behaviour is specific to Ada or if some other
languages supporting overloading have
the same behaviour.
It might then be worth investigating if there is a solution to that and/or
indicate in the user manual that
using --demangle=no might be a good idea when using callgrind.
Alternatively, callgrind should automatically disable demangling and
kcachegrind and similar visualisation tools should
do the demangling.
In any case, the --help and likely user manual should indicate --demangle
impact Ada, C++ and likely other demangling.
--
You are receiving this mail because:
You are watching all bug changes.