[lttng-dev] Parsing in-memory CTF packets with babeltrace2

Jon Lamb lamb.jon.io at gmail.com
Wed Mar 2 17:18:21 EST 2022


I'm working on an program that is to receive CTF stream packets

and convert the contained events to a different format.

After reading through the babeltrace2 C API docs, I'm not

sure if it's possible to access the internal AST and parser

utilities used by the internal plugins, either manually

or through a source component plugin.

With a metadata text file at hand, is there a way to parse

CTF stream packet sitting in memory?

I'm trying to avoid having to write the in-memory packets to disk

first, and then use the source.ctf.fs component class to read them

back in as babeltrace2 API types.

For context, I have a few micros instrumented with barectf.

Depending on the deployment mode, I'm either sending CTF stream

packets out over serial or reading a ring buffer of packets via JTAG.

I can see this also being useful in a couple other dimensions I'd
eventually like to consider too:
* Implementing something lttng-relayd friendly for live viewer support
(parsing some of the packet header fields)
* Stream clock overflow bookkeeping (it'd let me reduce the probe effect of
have to manage a 32 or 64 bit clock on a 16 bit MCU)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20220302/7db8848d/attachment.htm>

More information about the lttng-dev mailing list