From: Andi Kleen <a...@linux.intel.com>

The message about missing /tmp/perf-* for JITed code is quite confusing
to users. Add a better error message, but only print it once.

Signed-off-by: Andi Kleen <a...@linux.intel.com>
---
 tools/perf/util/map.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
index fbeb0c6efaa6..d476b76abc6a 100644
--- a/tools/perf/util/map.c
+++ b/tools/perf/util/map.c
@@ -316,6 +316,15 @@ int map__load(struct map *map)
 
        nr = dso__load(map->dso, map);
        if (nr < 0) {
+               if (!strncmp(map->dso->name, "/tmp/perf-", 10)) {
+                       static bool warned;
+                       if (!warned) {
+                               pr_err("Cannot find executable, JITed code 
present? May need agent.\n");
+                               warned = true;
+                       }
+                       return -1;
+               }
+
                if (map->dso->has_build_id) {
                        char sbuild_id[SBUILD_ID_SIZE];
 
-- 
2.20.1

Reply via email to