• Masami Hiramatsu's avatar
    perf probe: Ignore the error of finding inline instance · f8da4b51
    Masami Hiramatsu authored
    Ignore the error when the perf probe failed to find inline function
    instances. This can happen when we search a method in C++ debuginfo.  If
    there is completely no instance in target, perf probe can return an
    error.
    
    E.g. without this fix:
      ----
      $ perf probe -x /usr/lib64/libstdc++.so.6 -vD showmanyc
      probe-definition(0): showmanyc
      symbol:showmanyc file:(null) line:0 offset:0 return:0 lazy:(null)
      0 arguments
      symbol:catch file:(null) line:0 offset:0 return:0 lazy:(null)
      symbol:throw file:(null) line:0 offset:0 return:0 lazy:(null)
      symbol:rethrow file:(null) line:0 offset:0 return:0 lazy:(null)
      Open Debuginfo file: /usr/lib/debug/usr/lib64/libstdc++.so.6.0.22.debug
      Try to find probe point from debuginfo.
      Matched function: showmanyc
      An error occurred in debuginfo analysis (-2).
      Trying to use symbols.
      Failed to find symbol showmanyc in /usr/lib64/libstdc++.so.6.0.22
        Error: Failed to add events. Reason: No such file or directory (Code: -2)
      ----
    
    This is because one of showmanyc is defined as inline but no instance
    found. With this fix, it is succeeded to show as below.
      ----
      $ perf probe -x /usr/lib64/libstdc++.so.6 -D showmanyc
      p:probe_libstdc++/showmanyc /usr/lib64/libstdc++.so.6.0.22:0xb0e50
      p:probe_libstdc++/showmanyc_1 /usr/lib64/libstdc++.so.6.0.22:0xc7c40
      p:probe_libstdc++/showmanyc_2 /usr/lib64/libstdc++.so.6.0.22:0xecfa0
      p:probe_libstdc++/showmanyc_3 /usr/lib64/libstdc++.so.6.0.22:0x115fc0
      p:probe_libstdc++/showmanyc_4 /usr/lib64/libstdc++.so.6.0.22:0x121a90
      ----
    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>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/147464489775.29804.3190419491209875936.stgit@devboxSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    f8da4b51
probe-finder.c 46.1 KB