X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=lttv%2Flttv%2Fprint.c;h=aa21f77bf3c18531515539bdf37d9cfb0e318087;hb=6db3427f29cace9a1addac5a6277bbc1ce666002;hp=9731b3ed37f505fe2fb6bcb47b2dd24260f720b6;hpb=73ccabb38349b1a44556c57f1bf36fb94be45628;p=lttv.git diff --git a/lttv/lttv/print.c b/lttv/lttv/print.c index 9731b3ed..aa21f77b 100644 --- a/lttv/lttv/print.c +++ b/lttv/lttv/print.c @@ -32,8 +32,10 @@ #include #include #include +#ifdef BABEL_CLEANUP #include #include +#endif #include #include #include @@ -44,12 +46,12 @@ #include #include #include - +#include +#include +#ifdef BABEL_CLEANUP static inline void print_enum_events(LttEvent *e, struct marker_field *f, guint64 value, GString *s, LttvTracefileState *tfs) { - LttTracefile *tf = tfs->parent.tf; - struct marker_info *info = marker_get_info_from_id(tf->mdata, e->event_id); LttvTraceState *ts = (LttvTraceState*)(tfs->parent.t_context); LttvNameTables *nt = ts->name_tables; @@ -258,10 +260,10 @@ void lttv_print_field(LttEvent *e, struct marker_field *f, GString *s, break; } } - -int getProcessInfosFromEvent(struct bt_ctf_event *ctf_event, GString* processInfos) +#endif +int getProcessInfosFromEvent(LttvEvent *event, GString* processInfos) { - int pid, tid, ppid; + int pid=0, tid=0, ppid=0; char *procname; struct definition *scope; unsigned long timestamp; @@ -270,10 +272,25 @@ int getProcessInfosFromEvent(struct bt_ctf_event *ctf_event, GString* processInf gboolean noError = TRUE; + guint cpu; + LttvTraceState *state = event->state; + LttvProcessState *process; + struct bt_ctf_event *ctf_event = event->bt_event; + + cpu = lttv_traceset_get_cpuid_from_event(event); + + process = state->running_process[cpu]; + timestamp = bt_ctf_get_timestamp(ctf_event); + + pid = process->pid; + tid = process->tgid; + ppid = process->ppid; + procname = g_quark_to_string(process->name); if (timestamp == -1ULL) { noError = FALSE; } +#if 0 if (noError) { scope = bt_ctf_get_top_level_scope(ctf_event, BT_STREAM_EVENT_CONTEXT); if (bt_ctf_field_get_error()) { @@ -304,8 +321,8 @@ int getProcessInfosFromEvent(struct bt_ctf_event *ctf_event, GString* processInf noError = FALSE; } } - - if (noError) { +#endif + if (noError||1) { g_string_append_printf(processInfos, "%u, %u, %s, %u", pid, tid, procname, ppid); } else { @@ -315,41 +332,17 @@ int getProcessInfosFromEvent(struct bt_ctf_event *ctf_event, GString* processInf return ret; } - -int getCPUIdFromEvent(struct bt_ctf_event *ctf_event, GString* cpuId_str) +static +int getCPUIdFromEvent(LttvEvent *event, GString* cpuId_str) { - struct definition *scope; - unsigned long timestamp; - unsigned int cpu_id; - int ret = 0; + gint cpuid; - gboolean noError = TRUE; - - timestamp = bt_ctf_get_timestamp(ctf_event); - if (timestamp == -1ULL) { - noError = FALSE; + cpuid = lttv_traceset_get_cpuid_from_event(event); + if (cpuid < 0) { + return -1; } - if (noError) { - scope = bt_ctf_get_top_level_scope(ctf_event, BT_STREAM_PACKET_CONTEXT); - if (bt_ctf_field_get_error()) { - noError = FALSE; - } - } - if (noError) { - cpu_id = bt_ctf_get_uint64(bt_ctf_get_field(ctf_event, scope, "cpu_id")); - if (bt_ctf_field_get_error()) { - noError = FALSE; - } - else { - g_string_append_printf(cpuId_str, "%u", cpu_id); - } - } - - if (!noError) { - ret = -1; - } - - return ret; + g_string_append_printf(cpuId_str, "%u", cpuid); + return 0; } int getFields(struct bt_ctf_event *ctf_event, struct definition const *fields, GString* fieldsStr) @@ -437,19 +430,25 @@ int getFieldsFromEvent(struct bt_ctf_event *ctf_event, GString* fields, gboolean return ret; } -void lttv_event_to_string(struct bt_ctf_event *event, GString *a_string, gboolean field_names) +void lttv_event_to_string(LttvEvent *event, GString *a_string, + gboolean field_names, gboolean long_version) { GString* processInfos = g_string_new(""); GString* fields = g_string_new(""); GString* cpuId_str = g_string_new(""); getProcessInfosFromEvent(event, processInfos); - getFieldsFromEvent(event, fields, field_names); + getFieldsFromEvent(event->bt_event, fields, field_names); getCPUIdFromEvent(event, cpuId_str); g_string_set_size(a_string,0); - - g_string_append_printf(a_string, "%llu %s: { %s }", bt_ctf_get_timestamp(event), bt_ctf_event_name(event), cpuId_str->str); + if(long_version){ + g_string_append_printf(a_string, "%llu %s: ", + bt_ctf_get_timestamp(event->bt_event), + bt_ctf_event_name(event->bt_event)); + } + g_string_append_printf(a_string, "{ %s }", cpuId_str->str); + if (strcmp("", processInfos->str) < 0) { g_string_append_printf(a_string, ", { %s }", processInfos->str); } @@ -461,7 +460,11 @@ void lttv_event_to_string(struct bt_ctf_event *event, GString *a_string, gboolea g_string_free(processInfos, TRUE); g_string_free(cpuId_str, TRUE); } - +void lttv_event_get_name(LttvEvent *event,GString *a_string) +{ + g_string_set_size(a_string,0); + g_string_append_printf(a_string, " %s", bt_ctf_event_name(event->bt_event)); +} #ifdef BABEL_CLEANUP void lttv_event_to_string(LttEvent *e, GString *s, gboolean mandatory_fields, gboolean field_names, LttvTracefileState *tfs)