lkml.org 
[lkml]   [2017]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] perf probe: Restrict user to use only one executable with -V
Date
If multiple executables (-x) are specified with 'perf probe',
listing variables only considers first executable. Ex,

$ perf probe -V do_sys_open -x ./test -V fun
Failed to find debug information for address 40
Debuginfo analysis failed.
Error: Failed to show vars.
Available variables at do_sys_open
@<do_sys_open+0>
char* filename
int dfd
int flags
struct open_flags op
umode_t mode

Here, first executable is kernel and second is 'test'. Instead
of finding 'fun()' from 'test', perf is looking for 'fun()' in
kernel. Fix this by restricting user to use only one executable
with -V.

$ perf probe -V do_sys_open -x ./test -V fun
Error: Multiple executables are not allowed.

$ perf probe -V do_sys_open
Available variables at do_sys_open
@<do_sys_open+0>
char* filename
int dfd
int flags
struct open_flags op
umode_t mode

$ perf probe -x ./test -V fun
Available variables at fun
@<fun+0>
int arg

Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
---
tools/perf/util/probe-event.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index b7aaf9b..0e04015 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -1128,6 +1128,11 @@ int show_available_vars(struct perf_probe_event *pevs, int npevs,
int i, ret = 0;
struct debuginfo *dinfo;

+ if (npevs > 1) {
+ pr_err("Error: Multiple executables are not allowed.\n");
+ return 0;
+ }
+
ret = init_probe_symbol_maps(pevs->uprobes);
if (ret < 0)
return ret;
--
1.8.3.1
\
 
 \ /
  Last update: 2017-10-26 09:52    [W:0.033 / U:0.048 seconds]
©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site