linux/tools/perf/util/debug.c
<<
>>
Prefs
   1/* For general debugging purposes */
   2
   3#include "../perf.h"
   4
   5#include <string.h>
   6#include <stdarg.h>
   7#include <stdio.h>
   8
   9#include "cache.h"
  10#include "color.h"
  11#include "event.h"
  12#include "debug.h"
  13#include "util.h"
  14#include "target.h"
  15
  16int verbose;
  17bool dump_trace = false, quiet = false;
  18
  19int eprintf(int level, const char *fmt, ...)
  20{
  21        va_list args;
  22        int ret = 0;
  23
  24        if (verbose >= level) {
  25                va_start(args, fmt);
  26                if (use_browser >= 1)
  27                        ui_helpline__vshow(fmt, args);
  28                else
  29                        ret = vfprintf(stderr, fmt, args);
  30                va_end(args);
  31        }
  32
  33        return ret;
  34}
  35
  36int dump_printf(const char *fmt, ...)
  37{
  38        va_list args;
  39        int ret = 0;
  40
  41        if (dump_trace) {
  42                va_start(args, fmt);
  43                ret = vprintf(fmt, args);
  44                va_end(args);
  45        }
  46
  47        return ret;
  48}
  49
  50void trace_event(union perf_event *event)
  51{
  52        unsigned char *raw_event = (void *)event;
  53        const char *color = PERF_COLOR_BLUE;
  54        int i, j;
  55
  56        if (!dump_trace)
  57                return;
  58
  59        printf(".");
  60        color_fprintf(stdout, color, "\n. ... raw event: size %d bytes\n",
  61                      event->header.size);
  62
  63        for (i = 0; i < event->header.size; i++) {
  64                if ((i & 15) == 0) {
  65                        printf(".");
  66                        color_fprintf(stdout, color, "  %04x: ", i);
  67                }
  68
  69                color_fprintf(stdout, color, " %02x", raw_event[i]);
  70
  71                if (((i & 15) == 15) || i == event->header.size-1) {
  72                        color_fprintf(stdout, color, "  ");
  73                        for (j = 0; j < 15-(i & 15); j++)
  74                                color_fprintf(stdout, color, "   ");
  75                        for (j = i & ~15; j <= i; j++) {
  76                                color_fprintf(stdout, color, "%c",
  77                                              isprint(raw_event[j]) ?
  78                                              raw_event[j] : '.');
  79                        }
  80                        color_fprintf(stdout, color, "\n");
  81                }
  82        }
  83        printf(".\n");
  84}
  85