[lttng-dev] Usage example of libbabeltrace (babeltrace2) to read CTF traces from a GUI

Philippe Proulx pproulx at efficios.com
Tue Jun 15 11:13:41 EDT 2021

On Mon, Jun 14, 2021 at 4:01 PM Mathieu Desnoyers via lttng-dev
<lttng-dev at lists.lttng.org> wrote:
> Hi Philippe, Hi Jeremie,
> Steven is interested to use libbabeltrace as a CTF trace reader in the KernelShark
> project. It's a GUI which shows Linux kernel traces.
> He notices that most of the documented usage examples of the libbabeltrace API
> focus on use-cases where a custom trace format is converted into CTF.
> I know that the babeltrace2 program is the main user of libbabeltrace at this
> point, and that it reads CTF as source.
> For using libbabeltrace as CTF reader for a GUI, what would be the best examples
> to look at as starting point ? Perhaps the babeltrace2 binary, or just adapt a
> smaller example program and change the custom trace format source to "ctf.fs" ?
> Or anything else ?


Unfortunately, the Babeltrace 2 C API documentation [1] doesn't offer a
graph building example at the moment.

Therefore, indeed, the "best" example would be the babeltrace2(1) CLI
(see `src/cli`), although I understand that it's a very generic example
which can be overwhelming to explore.

However, note that instead of instantiating an existing sink component
class (as found in a plugin), you'll want to make your own sink
component class to get access to each event message while also
controlling the graph operations. Using
bt_graph_add_simple_sink_component() [2] would be a good start.

I can cook a minimal working example in the following days.


[1]: https://babeltrace.org/docs/v2.0/libbabeltrace2/
[2]: https://babeltrace.org/docs/v2.0/libbabeltrace2/group__api-graph.html#gaa8432f03a967d01b764fb1bc959c8e89

> Thanks,
> Mathieu
> --
> Mathieu Desnoyers
> EfficiOS Inc.
> http://www.efficios.com
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

More information about the lttng-dev mailing list