diff options
Diffstat (limited to 'tools/perf/util/debug.c')
| -rw-r--r-- | tools/perf/util/debug.c | 71 | 
1 files changed, 40 insertions, 31 deletions
diff --git a/tools/perf/util/debug.c b/tools/perf/util/debug.c index c8d81b00089..299b5558650 100644 --- a/tools/perf/util/debug.c +++ b/tools/perf/util/debug.c @@ -11,57 +11,66 @@  #include "event.h"  #include "debug.h"  #include "util.h" +#include "target.h"  int verbose;  bool dump_trace = false, quiet = false; -int eprintf(int level, const char *fmt, ...) +static int _eprintf(int level, const char *fmt, va_list args)  { -	va_list args;  	int ret = 0;  	if (verbose >= level) { -		va_start(args, fmt); -		if (use_browser > 0) -			ret = ui_helpline__show_help(fmt, args); +		if (use_browser >= 1) +			ui_helpline__vshow(fmt, args);  		else  			ret = vfprintf(stderr, fmt, args); -		va_end(args);  	}  	return ret;  } -int dump_printf(const char *fmt, ...) +int eprintf(int level, const char *fmt, ...)  {  	va_list args; -	int ret = 0; +	int ret; -	if (dump_trace) { -		va_start(args, fmt); -		ret = vprintf(fmt, args); -		va_end(args); -	} +	va_start(args, fmt); +	ret = _eprintf(level, fmt, args); +	va_end(args);  	return ret;  } -static int dump_printf_color(const char *fmt, const char *color, ...) +/* + * Overloading libtraceevent standard info print + * function, display with -v in perf. + */ +void pr_stat(const char *fmt, ...) +{ +	va_list args; + +	va_start(args, fmt); +	_eprintf(1, fmt, args); +	va_end(args); +	eprintf(1, "\n"); +} + +int dump_printf(const char *fmt, ...)  {  	va_list args;  	int ret = 0;  	if (dump_trace) { -		va_start(args, color); -		ret = color_vfprintf(stdout, color, fmt, args); +		va_start(args, fmt); +		ret = vprintf(fmt, args);  		va_end(args);  	}  	return ret;  } - -void trace_event(event_t *event) +void trace_event(union perf_event *event)  {  	unsigned char *raw_event = (void *)event;  	const char *color = PERF_COLOR_BLUE; @@ -70,29 +79,29 @@ void trace_event(event_t *event)  	if (!dump_trace)  		return; -	dump_printf("."); -	dump_printf_color("\n. ... raw event: size %d bytes\n", color, -			  event->header.size); +	printf("."); +	color_fprintf(stdout, color, "\n. ... raw event: size %d bytes\n", +		      event->header.size);  	for (i = 0; i < event->header.size; i++) {  		if ((i & 15) == 0) { -			dump_printf("."); -			dump_printf_color("  %04x: ", color, i); +			printf("."); +			color_fprintf(stdout, color, "  %04x: ", i);  		} -		dump_printf_color(" %02x", color, raw_event[i]); +		color_fprintf(stdout, color, " %02x", raw_event[i]);  		if (((i & 15) == 15) || i == event->header.size-1) { -			dump_printf_color("  ", color); +			color_fprintf(stdout, color, "  ");  			for (j = 0; j < 15-(i & 15); j++) -				dump_printf_color("   ", color); +				color_fprintf(stdout, color, "   ");  			for (j = i & ~15; j <= i; j++) { -				dump_printf_color("%c", color, -						isprint(raw_event[j]) ? -						raw_event[j] : '.'); +				color_fprintf(stdout, color, "%c", +					      isprint(raw_event[j]) ? +					      raw_event[j] : '.');  			} -			dump_printf_color("\n", color); +			color_fprintf(stdout, color, "\n");  		}  	} -	dump_printf(".\n"); +	printf(".\n");  }  | 
