diff options
-rw-r--r-- | tools/perf/builtin-report.c | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index 82fa93b4db99..37515da637f7 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c | |||
@@ -1095,9 +1095,43 @@ process_period_event(event_t *event, unsigned long offset, unsigned long head) | |||
1095 | return 0; | 1095 | return 0; |
1096 | } | 1096 | } |
1097 | 1097 | ||
1098 | static void trace_event(event_t *event) | ||
1099 | { | ||
1100 | unsigned char *raw_event = (void *)event; | ||
1101 | int i, j; | ||
1102 | |||
1103 | if (!dump_trace) | ||
1104 | return; | ||
1105 | |||
1106 | dprintf(".\n. ... raw event: size %d bytes\n", event->header.size); | ||
1107 | |||
1108 | for (i = 0; i < event->header.size; i++) { | ||
1109 | if ((i & 15) == 0) | ||
1110 | dprintf(". %04x: ", i); | ||
1111 | |||
1112 | dprintf(" %02x", raw_event[i]); | ||
1113 | |||
1114 | if (((i & 15) == 15) || i == event->header.size-1) { | ||
1115 | dprintf(" "); | ||
1116 | for (j = 0; j < 15-(i & 15); j++) | ||
1117 | dprintf(" "); | ||
1118 | for (j = 0; j < (i & 15); j++) { | ||
1119 | if (isprint(raw_event[i-15+j])) | ||
1120 | dprintf("%c", raw_event[i-15+j]); | ||
1121 | else | ||
1122 | dprintf("."); | ||
1123 | } | ||
1124 | dprintf("\n"); | ||
1125 | } | ||
1126 | } | ||
1127 | dprintf(".\n"); | ||
1128 | } | ||
1129 | |||
1098 | static int | 1130 | static int |
1099 | process_event(event_t *event, unsigned long offset, unsigned long head) | 1131 | process_event(event_t *event, unsigned long offset, unsigned long head) |
1100 | { | 1132 | { |
1133 | trace_event(event); | ||
1134 | |||
1101 | if (event->header.misc & PERF_EVENT_MISC_OVERFLOW) | 1135 | if (event->header.misc & PERF_EVENT_MISC_OVERFLOW) |
1102 | return process_overflow_event(event, offset, head); | 1136 | return process_overflow_event(event, offset, head); |
1103 | 1137 | ||
@@ -1204,7 +1238,7 @@ more: | |||
1204 | 1238 | ||
1205 | size = event->header.size; | 1239 | size = event->header.size; |
1206 | 1240 | ||
1207 | dprintf("%p [%p]: event: %d\n", | 1241 | dprintf("\n%p [%p]: event: %d\n", |
1208 | (void *)(offset + head), | 1242 | (void *)(offset + head), |
1209 | (void *)(long)event->header.size, | 1243 | (void *)(long)event->header.size, |
1210 | event->header.type); | 1244 | event->header.type); |