Skip to content
  • Masami Hiramatsu's avatar
    perf probe: Match linkage name with mangled name · d5a00296
    Masami Hiramatsu authored
    
    
    Match linkage name with mangled name if exists. The linkage_name is used
    for storing mangled name of the object.
    
    Thus, this allows 'perf probe' to find appropriate probe point from
    mangled symbol as below.
    
    E.g. without this fix:
      ----
      $ perf probe -x /usr/lib64/libstdc++.so.6 \
        -D _ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv
      Probe point '_ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv'
      not found.
        Error: Failed to add events.
      ----
    
    With this fix, perf probe can find the correct one.
      ----
      $ 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
      ----
    
    Committer notes:
    
    After the fix, setting it for real (no -D/--definition, that amounts to
    a --dry-run):
    
      # perf probe -x /usr/lib64/libstdc++.so.6 _ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv
      Added new event:
        probe_libstdc:_ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv (on _ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv in /usr/lib64/libstdc++.so.6.0.22)
    
      You can now use it in all perf tools, such as:
    
    	perf record -e probe_libstdc:_ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv -aR sleep 1
    
      # perf probe -l probe_libstdc:*
        probe_libstdc:_ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv (on is_open@libstdc++-v3/include/fstream in /usr/lib64/libstdc++.so.6.0.22)
      #
    
    Reported-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Tested-by: default avatarJiri Olsa <jolsa@kernel.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/147464493162.29804.16715053505069382443.stgit@devbox
    
    
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    d5a00296