diff options
author | Namhyung Kim <namhyung.kim@lge.com> | 2013-09-11 01:09:29 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2013-10-09 15:01:05 -0400 |
commit | 58d91a0068694a5ba3efc99e88ce6b4b0dd0d085 (patch) | |
tree | f01869d62d514ae12225c114d30add9e517660f3 | |
parent | f048d548f803b57ee1dbf66702f398ba69657450 (diff) |
perf tools: Do not try to call addr2line on non-binary files
No need to call addr2line since they don't have such information.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Reviewed-by: Jiri Olsa <jolsa@redhat.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1378876173-13363-6-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r-- | tools/perf/util/sort.c | 3 | ||||
-rw-r--r-- | tools/perf/util/srcline.c | 11 |
2 files changed, 9 insertions, 5 deletions
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c index b7e0ef0445de..d4435939c774 100644 --- a/tools/perf/util/sort.c +++ b/tools/perf/util/sort.c | |||
@@ -259,9 +259,6 @@ static int hist_entry__srcline_snprintf(struct hist_entry *self, char *bf, | |||
259 | if (!self->ms.map) | 259 | if (!self->ms.map) |
260 | goto out_ip; | 260 | goto out_ip; |
261 | 261 | ||
262 | if (!strncmp(self->ms.map->dso->long_name, "/tmp/perf-", 10)) | ||
263 | goto out_ip; | ||
264 | |||
265 | path = get_srcline(self->ms.map->dso->long_name, self->ip); | 262 | path = get_srcline(self->ms.map->dso->long_name, self->ip); |
266 | self->srcline = path; | 263 | self->srcline = path; |
267 | 264 | ||
diff --git a/tools/perf/util/srcline.c b/tools/perf/util/srcline.c index 7e92cca6f502..777f91880cdb 100644 --- a/tools/perf/util/srcline.c +++ b/tools/perf/util/srcline.c | |||
@@ -57,11 +57,17 @@ char *get_srcline(const char *dso_name, unsigned long addr) | |||
57 | { | 57 | { |
58 | char *file; | 58 | char *file; |
59 | unsigned line; | 59 | unsigned line; |
60 | char *srcline; | 60 | char *srcline = SRCLINE_UNKNOWN; |
61 | size_t size; | 61 | size_t size; |
62 | 62 | ||
63 | if (dso_name[0] == '[') | ||
64 | goto out; | ||
65 | |||
66 | if (!strncmp(dso_name, "/tmp/perf-", 10)) | ||
67 | goto out; | ||
68 | |||
63 | if (!addr2line(dso_name, addr, &file, &line)) | 69 | if (!addr2line(dso_name, addr, &file, &line)) |
64 | return SRCLINE_UNKNOWN; | 70 | goto out; |
65 | 71 | ||
66 | /* just calculate actual length */ | 72 | /* just calculate actual length */ |
67 | size = snprintf(NULL, 0, "%s:%u", file, line) + 1; | 73 | size = snprintf(NULL, 0, "%s:%u", file, line) + 1; |
@@ -73,6 +79,7 @@ char *get_srcline(const char *dso_name, unsigned long addr) | |||
73 | srcline = SRCLINE_UNKNOWN; | 79 | srcline = SRCLINE_UNKNOWN; |
74 | 80 | ||
75 | free(file); | 81 | free(file); |
82 | out: | ||
76 | return srcline; | 83 | return srcline; |
77 | } | 84 | } |
78 | 85 | ||