X-Git-Url: https://git.lttng.org/?p=lttv.git;a=blobdiff_plain;f=lttv%2Flttv%2Fevent.c;h=2f26274ca83e8f351e7688e1cebdb736a62e6755;hp=8c1b6d8021e359af29ccba2d1c3f15b932324325;hb=1f3686cd4d8a0f6c5d9406181b398b6ddd9e0b7e;hpb=f2f8d567679291d581f36a85a09769075d9d8aaa diff --git a/lttv/lttv/event.c b/lttv/lttv/event.c index 8c1b6d80..2f26274c 100644 --- a/lttv/lttv/event.c +++ b/lttv/lttv/event.c @@ -13,7 +13,7 @@ LttTime lttv_event_get_timestamp(LttvEvent *event) //TODO ybrosseau find a way to return an error code unsigned long lttv_event_get_long_unsigned(LttvEvent *event, const char* field) { - struct definition *scope; + const struct definition *scope; unsigned long timestamp; unsigned long data; struct bt_ctf_event *ctf_event = event->bt_event; @@ -38,30 +38,44 @@ unsigned long lttv_event_get_long_unsigned(LttvEvent *event, const char* field) char* lttv_event_get_string(LttvEvent *event, const char* field) { - struct definition *scope; + const struct definition *scope; unsigned long timestamp; char* data; struct bt_ctf_event *ctf_event = event->bt_event; timestamp = bt_ctf_get_timestamp(ctf_event); if (timestamp == -1ULL) { + printf("ERROR: lttv_event_get_string - cannot read timestamps"); return 0; } //scope = bt_ctf_get_top_level_scope(ctf_event, BT_STREAM_PACKET_CONTEXT); scope = bt_ctf_get_top_level_scope(ctf_event, BT_EVENT_FIELDS); if (bt_ctf_field_get_error()) { + printf("ERROR: lttv_event_get_string - cannot get field scope"); return 0; } data = bt_ctf_get_char_array(bt_ctf_get_field(ctf_event, scope, field)); if (bt_ctf_field_get_error()) { - return 0; + // Try get_string if we fail on char_array + // TODO ybrosseau: properly detect right type + data = bt_ctf_get_string(bt_ctf_get_field(ctf_event, scope, field)); + if (bt_ctf_field_get_error()) { + + + printf("ERROR: lttv_event_get_string - cannot get field data %s", field); + + return 0; + } else { + return data; + } + } else { return data; } } long lttv_event_get_long(LttvEvent *event, const char* field) { - struct definition *scope; + const struct definition *scope; unsigned long timestamp; long data; struct bt_ctf_event *ctf_event = event->bt_event;