Searched hist:"3 d918a12a1b3088ac16ff37fa52760639d6e2403" (Results 1 – 1 of 1) sorted by relevance
/linux/tools/perf/util/ |
H A D | probe-finder.c | diff 0c188a07b6a399e3df66534c29fef0a2082aaf57 Thu May 29 12:52:32 CEST 2014 Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> perf probe: Fix a segfault if asked for variable it doesn't find
Fix a segfault bug by asking for variable it doesn't find. Since the convert_variable() didn't handle error code returned from convert_variable_location(), it just passed an incomplete variable field and then a segfault was occurred when formatting the field.
This fixes that bug by handling success code correctly in convert_variable(). Other callers of convert_variable_location() are correctly checking the return code.
This bug was introduced by following commit. But another hidden erroneous error handling has been there previously (-ENOMEM case).
commit 3d918a12a1b3088ac16ff37fa52760639d6e2403
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Reported-by: Arnaldo Carvalho de Melo <acme@kernel.org> Tested-by: Arnaldo Carvalho de Melo <acme@kernel.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Link: http://lkml.kernel.org/r/20140529105232.28251.30447.stgit@ltc230.yrl.intra.hitachi.co.jp Signed-off-by: Jiri Olsa <jolsa@kernel.org> diff 3d918a12a1b3088ac16ff37fa52760639d6e2403 Fri Oct 11 09:10:26 CEST 2013 Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> perf probe: Find fentry mcount fuzzed parameter location
At this point, --fentry (mcount function entry) option for gcc fuzzes the debuginfo variable locations by skipping the mcount instruction offset (on x86, this is a 5 byte call instruction).
This makes variable searching fail at the entry of functions which are mcount'ed.
e.g.) Available variables at vfs_read @<vfs_read+0> (No matched variables)
This patch adds additional location search at the function entry point to solve this issue, which tries to find the earliest address for the variable location.
Note that this only works with function parameters (formal parameters) because any local variables should not exist on the function entry address (those are not initialized yet).
With this patch, perf probe shows correct parameters if possible; # perf probe --vars vfs_read Available variables at vfs_read @<vfs_read+0> char* buf loff_t* pos size_t count struct file* file
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/20131011071025.15557.13275.stgit@udc4-manage.rcp.hitachi.co.jp Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
|