Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1596237
| Path | csiph.com!aioe.org!bofh.it!news.nic.it!robomod |
|---|---|
| From | Taeung Song <treeze.taeung@gmail.com> |
| Newsgroups | linux.kernel |
| Subject | [PATCH v3 1/7] perf annotate: Use build-id dir when reading link name |
| Date | Thu, 09 Mar 2017 18:40:02 +0100 |
| Message-ID | <tjacG-8oc-11@gated-at.bofh.it> (permalink) |
| References | <tjacG-8oc-7@gated-at.bofh.it> |
| Dkim-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=wCFUt/LZS/yXM76qPgCbdkFON2Knt1k6lMTt5x00vR8=; b=Jlda1SRggbiR63d44GMimTyNHFodyYWvWIzIDSQEtU68grPUb3Kx33ak4gnYMKrfry Pihk+SfblUWmpiitJvrKs9VZvKqWM/VolQoSoujyPXEX+fPjALZgAinZKzaN2+F7nhN2 g31n4pKVKZrnQJlvlCvPvViF6zT4yqRZwQepypQm3rwdUkVnnUXRcGY+6nAyhWgDEgQC sJc492EENoEHamRL45fO3joyfwgfJ5c7tq18HxADcoYcDaZXs29+CE2tVEgAI5m3L5g7 DF24JDveUZJ5tsubA/K9C/GK3WoEg5TBtcFqm5CYT6R/rJ3wMSfLgm5+vIK00PPRm1IU ISsw== |
| X-Google-Dkim-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=wCFUt/LZS/yXM76qPgCbdkFON2Knt1k6lMTt5x00vR8=; b=mpte9we7euV+ubxDcQwHa1JuWciNC/X9pcmB4epP3o4Sih3vdnu4/OWnkPHsn2Fm8P nB+1H886/Ku0hSodj3VsIHdoQ8SAybZP9y//UVmthf13LEfcl5OyT7hBiT89Zyy5es1l vC2S3rtKgj3oRH6E6WNVM7WlHSQCpbabMShEUvyq50cvwIIl7I2CEj3a4DpHpMrmbSn9 8mUQXwyHWBBgQcsM3S4u7FXJrFdiLstNVYXgpIq87Fn+LxRNhcG4AOQB+ovHXVZXPrkp t5nBvfCPMNzxNEt+RQ8Umzj9QhNEdUNhQ3GdER5in2GXJ02skfQ46JJqonHjXFzYPQ6A A5qg== |
| X-Gm-Message-State | AMke39maQVpci3xDejj3kLm/ovgJnEHD5BnDOPGP7kVBsCOL9LWpuKv9TxceiK6w1CpX3A== |
| X-Received | by 10.99.199.69 with SMTP id v5mr15047509pgg.90.1489080950714; Thu, 09 Mar 2017 09:35:50 -0800 (PST) |
| X-Mailer | git-send-email 2.7.4 |
| Sender | robomod@news.nic.it |
| List-ID | <linux-kernel.vger.kernel.org> |
| X-Mailing-List | linux-kernel@vger.kernel.org |
| Approved | robomod@news.nic.it |
| Lines | 62 |
| Organization | linux.* mail to news gateway |
| X-Original-Cc | linux-kernel@vger.kernel.org, Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>, Ingo Molnar <mingo@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Wang Nan <wangnan0@huawei.com>, Masami Hiramatsu <mhiramat@kernel.org>, Taeung Song <treeze.taeung@gmail.com>, Jiri Olsa <jolsa@redhat.com> |
| X-Original-Date | Fri, 10 Mar 2017 02:35:35 +0900 |
| X-Original-Message-ID | <1489080941-3965-2-git-send-email-treeze.taeung@gmail.com> |
| X-Original-References | <1489080941-3965-1-git-send-email-treeze.taeung@gmail.com> |
| X-Original-Sender | linux-kernel-owner@vger.kernel.org |
| Xref | csiph.com linux.kernel:1596237 |
Show key headers only | View raw
In dso__disassemble_filename() when reading link name
from a build-id file, it is failed each time
because a build-id file gotten from dso__build_id_filename()
is not symbolic link.
So use build-id directory path instead of a build-id file name.
For example, if build-id file name gotten from
dso__build_id_filename() is as below,
/root/.debug/.build-id/4f/75c7d197c951659d1c1b8b5fd49bcdf8f3f8b1/elf
instead of the above build-id file name,
use the build-id dir path that is a symbolic link as below.
/root/.debug/.build-id/4f/75c7d197c951659d1c1b8b5fd49bcdf8f3f8b1
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
---
tools/perf/util/annotate.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
index 273f21f..fc91c6b 100644
--- a/tools/perf/util/annotate.c
+++ b/tools/perf/util/annotate.c
@@ -1307,6 +1307,7 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil
{
char linkname[PATH_MAX];
char *build_id_filename;
+ char *build_id_path = NULL;
if (dso->symtab_type == DSO_BINARY_TYPE__KALLSYMS &&
!dso__is_kcore(dso))
@@ -1322,8 +1323,14 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil
goto fallback;
}
+ build_id_path = strdup(filename);
+ if (!build_id_path)
+ return -1;
+
+ dirname(build_id_path);
+
if (dso__is_kcore(dso) ||
- readlink(filename, linkname, sizeof(linkname)) < 0 ||
+ readlink(build_id_path, linkname, sizeof(linkname)) < 0 ||
strstr(linkname, DSO__NAME_KALLSYMS) ||
access(filename, R_OK)) {
fallback:
@@ -1335,6 +1342,7 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil
__symbol__join_symfs(filename, filename_size, dso->long_name);
}
+ free(build_id_path);
return 0;
}
--
2.7.4
Back to linux.kernel | Previous | Next | Find similar | Unroll thread
[PATCH v3 1/7] perf annotate: Use build-id dir when reading link name Taeung Song <treeze.taeung@gmail.com> - 2017-03-09 18:40 +0100
csiph-web