From: tip-bot for Masami Hiramatsu <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: acme@redhat.com, linux-kernel@vger.kernel.org, paulus@samba.org,
hpa@zytor.com, mingo@kernel.org, a.p.zijlstra@chello.nl,
namhyung@kernel.org, jolsa@redhat.com,
masami.hiramatsu.pt@hitachi.com, tglx@linutronix.de
Subject: [tip:perf/core] perf probe: Improve an error message of perf probe --vars mode
Date: Thu, 12 Jun 2014 05:04:32 -0700 [thread overview]
Message-ID: <tip-69e96eaa4fef04ad543eda3eab787dbae99d8912@git.kernel.org> (raw)
In-Reply-To: <20140606071359.6788.84716.stgit@kbuild-fedora.novalocal>
Commit-ID: 69e96eaa4fef04ad543eda3eab787dbae99d8912
Gitweb: http://git.kernel.org/tip/69e96eaa4fef04ad543eda3eab787dbae99d8912
Author: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
AuthorDate: Fri, 6 Jun 2014 07:13:59 +0000
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 9 Jun 2014 14:35:58 -0300
perf probe: Improve an error message of perf probe --vars mode
Fix an error message when failed to find given address in --vars
mode.
Without this fix, perf probe -V doesn't show the final "Error"
message if it fails to find given source line. Moreover, it
tells it fails to find "variables" instead of the source line.
-----
# perf probe -V foo@bar
Failed to find variables at foo@bar (0)
-----
The result also shows mysterious error code. Actually the error
returns 0 or -ENOENT means that it just fails to find the address
of given source line. (0 means there is no matching address,
and -ENOENT means there is an entry(DIE) but it has no instance,
e.g. an empty inlined function)
This fixes it to show what happened and the final error message
as below.
-----
# perf probe -V foo@bar
Failed to find the address of foo@bar
Error: Failed to show vars.
-----
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20140606071359.6788.84716.stgit@kbuild-fedora.novalocal
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/probe-event.c | 7 ++++++-
tools/perf/util/probe-finder.c | 6 +++++-
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 0d1542f..44c7141 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -721,9 +721,14 @@ static int show_available_vars_at(struct debuginfo *dinfo,
ret = debuginfo__find_available_vars_at(dinfo, pev, &vls,
max_vls, externs);
if (ret <= 0) {
- pr_err("Failed to find variables at %s (%d)\n", buf, ret);
+ if (ret == 0 || ret == -ENOENT) {
+ pr_err("Failed to find the address of %s\n", buf);
+ ret = -ENOENT;
+ } else
+ pr_warning("Debuginfo analysis failed.\n");
goto end;
}
+
/* Some variables are found */
fprintf(stdout, "Available variables at %s\n", buf);
for (i = 0; i < ret; i++) {
diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
index ce8faf4..98e3047 100644
--- a/tools/perf/util/probe-finder.c
+++ b/tools/perf/util/probe-finder.c
@@ -1280,7 +1280,11 @@ out:
return ret;
}
-/* Find available variables at given probe point */
+/*
+ * Find available variables at given probe point
+ * Return the number of found probe points. Return 0 if there is no
+ * matched probe point. Return <0 if an error occurs.
+ */
int debuginfo__find_available_vars_at(struct debuginfo *dbg,
struct perf_probe_event *pev,
struct variable_list **vls,
next prev parent reply other threads:[~2014-06-12 12:04 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-06 7:13 [PATCH -tip 0/4] perf/probe: Improve error messages Masami Hiramatsu
2014-06-06 7:13 ` [PATCH -tip 1/4] perf/probe: Improve error message for unknown member of data structure Masami Hiramatsu
2014-06-12 12:04 ` [tip:perf/core] perf probe: " tip-bot for Masami Hiramatsu
2014-06-21 18:18 ` [PATCH -tip 1/4] perf/probe: " Patrick Palka
2014-06-23 2:21 ` Masami Hiramatsu
2014-06-23 3:17 ` [PATCH -tip ] [BUGFIX]: Fix to add a missing pair of braces for error path Masami Hiramatsu
2014-06-24 7:40 ` Namhyung Kim
2014-06-24 9:08 ` Jiri Olsa
2014-06-06 7:13 ` [PATCH -tip 2/4] perf/probe: Show error code and description in verbose mode Masami Hiramatsu
2014-06-12 12:04 ` [tip:perf/core] perf probe: " tip-bot for Masami Hiramatsu
2014-06-06 7:13 ` [PATCH -tip 3/4] perf/probe: Improve an error message of perf probe --vars mode Masami Hiramatsu
2014-06-12 12:04 ` tip-bot for Masami Hiramatsu [this message]
2014-06-06 7:14 ` [PATCH -tip 4/4] perf/probe: Improve error messages with --line option Masami Hiramatsu
2014-06-10 8:11 ` Namhyung Kim
2014-06-10 10:26 ` Masami Hiramatsu
2014-06-12 12:04 ` [tip:perf/core] perf probe: Improve error messages in " tip-bot for Masami Hiramatsu
2014-06-06 13:08 ` [PATCH -tip 0/4] perf/probe: Improve error messages Arnaldo Carvalho de Melo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-69e96eaa4fef04ad543eda3eab787dbae99d8912@git.kernel.org \
--to=tipbot@zytor.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@redhat.com \
--cc=hpa@zytor.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=masami.hiramatsu.pt@hitachi.com \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=paulus@samba.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.