X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Flttngtop.c;h=33f098a977c360b4f9d21efdcd85c33d2efcf59a;hb=010f485a6a4a9901009a8b8cea7d1e80fe6489b0;hp=6b41e65049615b77d242d0c36edc5026e1217990;hpb=b301de1a2cdfbf5324a7b17fa41de9439c9f67dc;p=lttngtop.git diff --git a/src/lttngtop.c b/src/lttngtop.c index 6b41e65..33f098a 100644 --- a/src/lttngtop.c +++ b/src/lttngtop.c @@ -83,7 +83,7 @@ GPtrArray *available_snapshots; sem_t metadata_available; int reload_trace = 0; -int last_textdump_print_newline = 1; +uint64_t prev_ts = 0; enum { OPT_NONE = 0, @@ -214,10 +214,10 @@ void print_fields(struct bt_ctf_event *event) enum bt_cb_ret print_timestamp(struct bt_ctf_event *call_data, void *private_data) { unsigned long timestamp; + uint64_t delta; struct tm start; uint64_t ts_nsec_start; - int pid, cpu_id; - int64_t syscall_ret; + int pid, cpu_id, tid; const struct bt_definition *scope; const char *hostname, *procname; @@ -236,6 +236,8 @@ enum bt_cb_ret print_timestamp(struct bt_ctf_event *call_data, void *private_dat if (pid == -1ULL && opt_tid) { goto error; } + + tid = get_context_tid(call_data); hostname = get_context_hostname(call_data); if (opt_tid || opt_hostname) { @@ -263,40 +265,29 @@ enum bt_cb_ret print_timestamp(struct bt_ctf_event *call_data, void *private_dat cpu_id = get_cpu_id(call_data); procname = get_context_comm(call_data); - - if ((strcmp(bt_ctf_event_name(call_data), "exit_syscall") == 0) && - !last_textdump_print_newline) { - scope = bt_ctf_get_top_level_scope(call_data, - BT_EVENT_FIELDS); - syscall_ret = bt_ctf_get_int64(bt_ctf_get_field(call_data, - scope, "_ret")); - printf("= %ld\n", syscall_ret); - last_textdump_print_newline = 1; + if (prev_ts == 0) + prev_ts = timestamp; + delta = timestamp - prev_ts; + prev_ts = timestamp; + + if (hostname) { + printf("%02d:%02d:%02d.%09" PRIu64 " (+%" PRIu64 ".%09" PRIu64 ") (%s) " + "(cpu %d) [%s (%d/%d)] %s (", + start.tm_hour, start.tm_min, start.tm_sec, + ts_nsec_start, delta / NSEC_PER_SEC, + delta % NSEC_PER_SEC, hostname, cpu_id, + procname, pid, tid, + bt_ctf_event_name(call_data)); } else { - /* we might have lost the exit_syscall event, so need to - * print the newline in this case */ - if (last_textdump_print_newline == 0) - printf("\n"); - if (hostname) { - printf("%02d:%02d:%02d.%09" PRIu64 " (%s) (cpu %d) [%s (%d)] %s (", - start.tm_hour, start.tm_min, start.tm_sec, - ts_nsec_start, hostname, cpu_id, procname, pid, - bt_ctf_event_name(call_data)); - } else { - printf("%02d:%02d:%02d.%09" PRIu64 " (cpu %d) [%s (%d)] %s (", - start.tm_hour, start.tm_min, start.tm_sec, - ts_nsec_start, cpu_id, procname, pid, - bt_ctf_event_name(call_data)); - } - print_fields(call_data); - printf(") "); - if (strncmp(bt_ctf_event_name(call_data), "sys_", 4) != 0) { - printf("\n"); - last_textdump_print_newline = 1; - } else { - last_textdump_print_newline = 0; - } + printf("%02d:%02d:%02d.%09" PRIu64 " (+%" PRIu64 ".%09" PRIu64 ") " + "(cpu %d) [%s (%d/%d)] %s (", + start.tm_hour, start.tm_min, start.tm_sec, + ts_nsec_start, delta / NSEC_PER_SEC, + delta % NSEC_PER_SEC, cpu_id, procname, pid, + tid, bt_ctf_event_name(call_data)); } + print_fields(call_data); + printf(")\n"); end: return BT_CB_OK;