perf debug: Move dump_stack() and sighandler_dump_stack() to debug.h
tip-bot for Arnaldo Carvalho de Melo
merge botCommit-ID: 8c2b7cac78e17886e8089389a570a290c9b5ca67 Gitweb: http://git.kernel.org/tip/8c2b7cac78e17886e8089389a570a290c9b5ca67 Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Wed, 19 Apr 2017 16:21:59 -0300 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Mon, 24 Apr 2017 12:33:31 -0300
perf debug: Move dump_stack() and sighandler_dump_stack() to debug.h
Two more out of util.h.
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/util/debug.c | 32 +++++++++++++++++++++++++++++++- tools/perf/util/debug.h | 3 +++ tools/perf/util/util.c | 31 ------------------------------- tools/perf/util/util.h | 3 --- 4 files changed, 34 insertions(+), 35 deletions(-)
tools/perf/util/debug.c +31 -1
@@ -8,7 +8,9 @@#include <stdio.h> #include <api/debug.h> #include <linux/time64.h> - +#ifdef HAVE_BACKTRACE_SUPPORT +#include <execinfo.h> +#endif #include "cache.h" #include "color.h" #include "event.h"
@@ -248,3 +250,31 @@ void perf_debug_setup(void) {libapi_set_print (pr_warning_wrapper, pr_warning_wrapper, pr_debug_wrapper); } + +/* Obtain a backtrace and print it to stdout. */ +#ifdef HAVE_BACKTRACE_SUPPORT +void dump_stack (void ) +{ +void *array[16 ]; +size_t size =backtrace (array,ARRAY_SIZE (array)); +char **strings =backtrace_symbols (array, size); +size_t i; + +printf ("Obtained %zd stack frames.\n" , size); + +for (i =0 ; i < size; i++) +printf ("%s\n" , strings[i]); + +free (strings); +} +#else +void dump_stack (void ) {} +#endif + +void sighandler_dump_stack (int sig) +{ +psignal (sig,"perf" ); +dump_stack (); +signal (sig,SIG_DFL ); +raise (sig); +}
tools/perf/util/debug.h +3 -0
@@ -56,4 +56,7 @@ int perf_debug_option(const char *str);void perf_debug_setup (void );int perf_quiet_option (void ); +void dump_stack (void ); +void sighandler_dump_stack (int sig); +#endif /* __PERF_DEBUG_H */
tools/perf/util/util.c +0 -31
@@ -4,9 +4,6 @@#include <api/fs/fs.h> #include <sys/mman.h> #include <sys/utsname.h> -#ifdef HAVE_BACKTRACE_SUPPORT -#include <execinfo.h> -#endif #include <dirent.h> #include <inttypes.h> #include <signal.h>
@@ -353,34 +350,6 @@ int hex2u64(const char *ptr, u64 *long_val)return p - ptr; } -/* Obtain a backtrace and print it to stdout. */ -#ifdef HAVE_BACKTRACE_SUPPORT -void dump_stack (void ) -{ -void *array[16 ]; -size_t size =backtrace (array,ARRAY_SIZE (array)); -char **strings =backtrace_symbols (array, size); -size_t i; - -printf ("Obtained %zd stack frames.\n" , size); - -for (i =0 ; i < size; i++) -printf ("%s\n" , strings[i]); - -free (strings); -} -#else -void dump_stack (void ) {} -#endif - -void sighandler_dump_stack (int sig) -{ -psignal (sig,"perf" ); -dump_stack (); -signal (sig,SIG_DFL ); -raise (sig); -} -unsigned long parse_tag_value (const char *str,struct parse_tag *tags) {struct parse_tag *i = tags;
tools/perf/util/util.h +0 -3
@@ -80,9 +80,6 @@ void event_attr_init(struct perf_event_attr *attr);size_t hex_width (u64 v);int hex2u64 (const char *ptr,u64 *val); -void dump_stack (void ); -void sighandler_dump_stack (int sig); -extern unsigned int page_size;extern int cacheline_size;extern int sysctl_perf_event_max_stack;