When symbol filter is given and it doesn't have a sample, the error
message is a bit confusing.

Before:

  $ perf annotate --stdio non_existing_function
  Error:
  The perf.data file has no samples!

After:

  $ perf annotate --stdio non_existing_function
  Error:
  The non_existing_function symbol has no samples!

Signed-off-by: Namhyung Kim <namhy...@kernel.org>
---
 tools/perf/builtin-annotate.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index 9c1034d81b4f..ba8a75ec5801 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -256,7 +256,13 @@ static int __cmd_annotate(struct perf_annotate *ann)
        }
 
        if (total_nr_samples == 0) {
-               ui__error("The %s file has no samples!\n", session->file->path);
+               if (ann->sym_hist_filter) {
+                       ui__error("The %s symbol has no samples!\n",
+                                 ann->sym_hist_filter);
+               } else {
+                       ui__error("The %s file has no samples!\n",
+                                 session->file->path);
+               }
                goto out;
        }
 
-- 
2.8.0

Reply via email to