On Sat, Sep 24, 2016 at 12:34:47AM +0900, Masami Hiramatsu wrote: > Hi, > > Here is a series of patches for fixing several issues when > probing on C++ binaries. > > - Ignore inlined function definition if it has no instance [1/4] > - Skip (inlined/normal) functions which entry address is 0 [2/4] > - Cut off the filename for group name if it includes characters > which can not be used for C symbol name [3/4] > - Search mangled symbol name from debuginfo [4/4] > > So, with this series, perf-probe can handle "mangled symbol" or > "method name" as below; > ---- > $ ./perf probe -x /usr/lib64/libstdc++.so.6 \ > -D _ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv > p:probe_libstdc/_ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv > /usr/lib64/libstdc++.so.6.0.22:0x8ca60 > > $ ./perf probe -x /usr/lib64/libstdc++.so.6 -D is_open > p:probe_libstdc/is_open /usr/lib64/libstdc++.so.6.0.22:0x8ca80 > p:probe_libstdc/is_open_1 /usr/lib64/libstdc++.so.6.0.22:0x8ca70 > p:probe_libstdc/is_open_2 /usr/lib64/libstdc++.so.6.0.22:0x8ca60 > p:probe_libstdc/is_open_3 /usr/lib64/libstdc++.so.6.0.22:0xb0ad0 > p:probe_libstdc/is_open_4 /usr/lib64/libstdc++.so.6.0.22:0xecca9 > ---- > > Jiri and Thomas, could you try this if you need it?
tried examples from changelogs and it works for me Tested-by: Jiri Olsa <[email protected]> thanks, jirka > > TODO: > - Support demangled method name(in short), like std::basic_fstream::is_open. > > Thank you, > > --- > > Masami Hiramatsu (4): > perf-probe: Ignore the error of finding inline instance > perf-probe: Skip if the function address is 0 > perf-probe: Fix to cut off incompatible chars from group name > perf-probe: Match linkage name with mangled name > > > tools/perf/util/dwarf-aux.c | 28 ++++++++++++++++++++++++++-- > tools/perf/util/dwarf-aux.h | 3 +++ > tools/perf/util/probe-event.c | 10 +++++++--- > tools/perf/util/probe-finder.c | 17 ++++++++++++++--- > 4 files changed, 50 insertions(+), 8 deletions(-) > > -- > Masami Hiramatsu

