From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1034091AbcIYLOc (ORCPT ); Sun, 25 Sep 2016 07:14:32 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35626 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966109AbcIYLOa (ORCPT ); Sun, 25 Sep 2016 07:14:30 -0400 Date: Sun, 25 Sep 2016 13:14:21 +0200 From: Jiri Olsa To: Masami Hiramatsu Cc: Arnaldo Carvalho de Melo , linux-kernel@vger.kernel.org, Thomas Gleixner , Peter Zijlstra , Ingo Molnar , Namhyung Kim , David Ahern Subject: Re: [PATCH perf/core 0/4] perf-probe fixes for C++ Message-ID: <20160925111421.GA11277@krava> References: <147464488719.29804.13099016520754675018.stgit@devbox> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <147464488719.29804.13099016520754675018.stgit@devbox> User-Agent: Mutt/1.7.0 (2016-08-17) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Sun, 25 Sep 2016 11:14:23 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 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