aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/util.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2017-04-19 15:21:59 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2017-04-24 11:33:31 -0400
commit8c2b7cac78e17886e8089389a570a290c9b5ca67 (patch)
tree94302f8f9f6dcdf61e2df74ef9f9f75f0d903f71 /tools/perf/util/util.c
parentbb8c16db43e48f2012c3ae8c7d682f834c5986d9 (diff)
perf debug: Move dump_stack() and sighandler_dump_stack() to debug.h
Two more out of util.h. Link: http://lkml.kernel.org/n/tip-polkuxm1cpr06lbgue5pyqum@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/util.c')
-rw-r--r--tools/perf/util/util.c31
1 files changed, 0 insertions, 31 deletions
diff --git a/tools/perf/util/util.c b/tools/perf/util/util.c
index eb49330c77d4..ae8036f06329 100644
--- a/tools/perf/util/util.c
+++ b/tools/perf/util/util.c
@@ -4,9 +4,6 @@
4#include <api/fs/fs.h> 4#include <api/fs/fs.h>
5#include <sys/mman.h> 5#include <sys/mman.h>
6#include <sys/utsname.h> 6#include <sys/utsname.h>
7#ifdef HAVE_BACKTRACE_SUPPORT
8#include <execinfo.h>
9#endif
10#include <dirent.h> 7#include <dirent.h>
11#include <inttypes.h> 8#include <inttypes.h>
12#include <signal.h> 9#include <signal.h>
@@ -353,34 +350,6 @@ int hex2u64(const char *ptr, u64 *long_val)
353 return p - ptr; 350 return p - ptr;
354} 351}
355 352
356/* Obtain a backtrace and print it to stdout. */
357#ifdef HAVE_BACKTRACE_SUPPORT
358void dump_stack(void)
359{
360 void *array[16];
361 size_t size = backtrace(array, ARRAY_SIZE(array));
362 char **strings = backtrace_symbols(array, size);
363 size_t i;
364
365 printf("Obtained %zd stack frames.\n", size);
366
367 for (i = 0; i < size; i++)
368 printf("%s\n", strings[i]);
369
370 free(strings);
371}
372#else
373void dump_stack(void) {}
374#endif
375
376void sighandler_dump_stack(int sig)
377{
378 psignal(sig, "perf");
379 dump_stack();
380 signal(sig, SIG_DFL);
381 raise(sig);
382}
383
384unsigned long parse_tag_value(const char *str, struct parse_tag *tags) 353unsigned long parse_tag_value(const char *str, struct parse_tag *tags)
385{ 354{
386 struct parse_tag *i = tags; 355 struct parse_tag *i = tags;