+ /* Print events discarded */
+ if (stream->events_discarded) {
+ fflush(pos->fp);
+ fprintf(stderr, "[warning] Tracer discarded %" PRIu64 " events between [",
+ stream->events_discarded);
+ if (opt_clock_cycles) {
+ ctf_print_timestamp(stderr, stream,
+ stream->prev_cycles_timestamp);
+ fprintf(stderr, "] and [");
+ ctf_print_timestamp(stderr, stream,
+ stream->prev_cycles_timestamp_end);
+ } else {
+ ctf_print_timestamp(stderr, stream,
+ stream->prev_real_timestamp);
+ fprintf(stderr, "] and [");
+ ctf_print_timestamp(stderr, stream,
+ stream->prev_real_timestamp_end);
+ }
+ fprintf(stderr, "]. You should consider recording a new trace with larger buffers or with fewer events enabled.\n");
+ fflush(stderr);
+ stream->events_discarded = 0;
+ }
+
+ if (stream->has_timestamp) {
+ set_field_names_print(pos, ITEM_HEADER);
+ if (pos->print_names)
+ fprintf(pos->fp, "timestamp = ");
+ else
+ fprintf(pos->fp, "[");
+ if (opt_clock_cycles) {
+ ctf_print_timestamp(pos->fp, stream, stream->cycles_timestamp);
+ } else {
+ ctf_print_timestamp(pos->fp, stream, stream->real_timestamp);
+ }
+ if (!pos->print_names)
+ fprintf(pos->fp, "]");
+
+ if (pos->print_names)
+ fprintf(pos->fp, ", ");
+ else
+ fprintf(pos->fp, " ");
+ }
+ if ((opt_delta_field || opt_all_fields) && stream->has_timestamp) {
+ uint64_t delta, delta_sec, delta_nsec;
+
+ set_field_names_print(pos, ITEM_HEADER);
+ if (pos->print_names)
+ fprintf(pos->fp, "delta = ");
+ else
+ fprintf(pos->fp, "(");
+ if (pos->last_real_timestamp != -1ULL) {
+ delta = stream->real_timestamp - pos->last_real_timestamp;
+ delta_sec = delta / NSEC_PER_SEC;
+ delta_nsec = delta % NSEC_PER_SEC;
+ fprintf(pos->fp, "+%" PRIu64 ".%09" PRIu64,
+ delta_sec, delta_nsec);
+ } else {
+ fprintf(pos->fp, "+?.?????????");
+ }
+ if (!pos->print_names)
+ fprintf(pos->fp, ")");
+
+ if (pos->print_names)
+ fprintf(pos->fp, ", ");
+ else
+ fprintf(pos->fp, " ");
+ pos->last_real_timestamp = stream->real_timestamp;
+ pos->last_cycles_timestamp = stream->cycles_timestamp;
+ }