Replying to an email from Volodymyr Fialko which was mistakenly erased. > Hello all, > > I'm trying to parse metadata file only, to get information about all > possible trace points. I'm using "Inspect event classes" example: > https://babeltrace.org/docs/v2.0/python/bt2/examples.html#inspect-event-classes > It mainly does all what I need, but there still some fields, that I > could not figure out how to access: > > 1. How to access event.header struct from stream? > stream definition: > stream { > packet.context := struct { > uint8_t core_id; > }; > event.header := struct { > uint8_t id; > }; > }; > > It's possible to access packet.context via > stream_class.packet_context_field_class, but I dot not see similar > property for event.header. (event_common_context_field_class - > returns None)
You can't: headers, and some fields of the packet context, are specific to CTF itself, therefore a `src.ctf.*` component uses them, but they don't reach the downstream components. The libbabeltrace2 API itself doesn't offer packet and event header access. Why do you need them? > 2. How to obtain string length? > Event definition: > typealias integer {size = 8; base = x;}:= uint8_t; > typealias integer {size = 8; signed = false; encoding = ASCII; } := > string_bounded_t; > event { > id = 0x00; > name = "trace_point_1"; > fields := struct { > uint8_t arr[32]; > string_bounded_t str[32]; > }; > }; > Fields are parsed into following Classes: > arr: `bt2._StaticArrayFieldClassConst`: has length property > str: `bt2._StringFieldClassConst`: no length property > Is there some other way to get str length? There's no way currently. A `src.ctf.*` component recognizes an array of integer fields having an encoding as a string, and translates this to a libbabeltrace2 string field (that's what the intention is after all). Again, what would be the use case here? Please note that the upcoming major revision of CTF, CTF 2, features a JSON metadata stream, meaning you'll be able to get that information much more easily than with the metadata DSL (TSDL) of CTF 1.8. The latest specification RC is available here: <https://diamon.org/ctf/files/>. Babeltrace 2.1 and LTTng 2.15 will support CTF 2. BR, Philippe Proulx _______________________________________________ lttng-dev mailing list lttng-dev@lists.lttng.org https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev