[PATCH 15/21] perf trace: Dump stack on segfaults

Arnaldo Carvalho de Melo
2015-02-25T21:48:20Z

[root@ssdandy ~]# perf trace --filter-pids 16348
0.000 ( 0.000 ms): tuned/1027 ... [continued]: select()) = 0 Timeout
793.770 ( 0.000 ms): lsmd/895 ... [continued]: select()) = 0 Timeout
793.775 (793.724 ms): tuned/1027 select(tvp: 0x7f7655556e50) ...
perf: Segmentation fault
Obtained 15 stack frames.
perf(dump_stack+0x2e) [0x4ed330]
perf(sighandler_dump_stack+0x2e) [0x4ed40f]
/lib64/libc.so.6(+0x35640) [0x7fa2d5b69640]
perf() [0x4c2d35]
perf(machine__findnew_thread+0x39) [0x4c2ed6]
perf() [0x454a4d]
perf() [0x455f87]
perf() [0x456556]
perf(cmd_trace+0xa7e) [0x4580af]
perf() [0x4867bd]
perf() [0x486a1c]
perf() [0x486b68]
perf(main+0x23b) [0x486ec9]
/lib64/libc.so.6(__libc_start_main+0xf5) [0x7fa2d5b55af5]
perf() [0x41bd91]
[ root@ssdandy ~]#

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-v38cbxcnm2yf5qn9u4y4n9ab@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-trace.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index fbdfb338bc38..5cd8497445fe 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -2660,6 +2660,9 @@ int cmd_trace(int argc, const char **argv, const char *prefix __maybe_unused)
int err;
char bf[BUFSIZ];

+ signal(SIGSEGV, sighandler_dump_stack);
+ signal(SIGFPE, sighandler_dump_stack);
+
trace.evlist = perf_evlist__new();
if (trace.evlist == NULL)
return -ENOMEM;
--
1.9.3