<div dir="ltr">Thank you for your prompt and helpful response, Philippe!<div><br></div><div>I'll find a way to stick to the de facto standard of multiple files as input to babeltrace. On the device side, I can bundle things up in a simple container format like cpio, which I can easily extract on any host system without special tools.</div><div><br></div><div>--dbort</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Sep 8, 2020 at 7:54 AM Philippe Proulx <<a href="mailto:eeppeliteloop@gmail.com">eeppeliteloop@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Mon, Sep 7, 2020 at 8:35 AM Dave Bort via lttng-dev<br>
<<a href="mailto:lttng-dev@lists.lttng.org" target="_blank">lttng-dev@lists.lttng.org</a>> wrote:<br>
><br>
> Hello! I'm adding CTF-compatible tracing to a custom/experimental OS and have a question:<br>
><br>
> Can babeltrace2 read from a single CTF output file that contains both the metadata stream and the binary trace streams?<br>
<br>
No.<br>
<br>
><br>
> My little trace system would like to bundle everything related to a trace into a single file, making it easier to pass around (since there's not much filesystem/network support yet). The CTF spec provides a way to embed the metadata stream in the same bitstream as the data streams, but <a href="https://babeltrace.org/docs/v2.0/man7/babeltrace2-source.ctf.fs.7/" rel="noreferrer" target="_blank">https://babeltrace.org/docs/v2.0/man7/babeltrace2-source.ctf.fs.7/</a> says that the `metadata` file needs to be separate. I see that LTTng manages trace output as a collection of files, with a separate `metadata` file.<br>
><br>
> I'd rather avoid writing a custom tool to find and extract the metadata stream from the full stream before passing the data on to babeltrace2 or TraceCompass, but so far it looks like I may need to.<br>
<br>
You will need to.<br>
<br>
><br>
> Would it be appropriate to add support for this to babeltrace2-source.ctf.fs? Or would this warrant a new source.ctf plugin? If I'm going to write some new code to handle this situation, I may as well try to add it to the project.<br>
<br>
This would need to be specified at the CTF level.<br>
<br>
Storing a CTF trace on the file system as a single file has been<br>
requested a few times, so we _might_ come up with a specified way to do<br>
it as an addendum to CTF 2 (which is on the roadmap, but not<br>
finalized/released yet).<br>
<br>
As of CTF 1.8, the de facto standard way to store a trace on the file<br>
system is to write its metadata stream to the `metadata` file and each<br>
individual data stream to its own file of which the name doesn't begin<br>
with `.`. This is also explained in the "Input" section of<br>
`babeltrace2-source.ctf.fs(7)` [1].<br>
<br>
><br>
> Thank you! I'm really looking forward to benefiting from the CTF/babeltrace/LTTng/TraceCompass work you've all done over the years. :)<br>
<br>
I can assure you that the EfficiOS team is very glad to hear that.<br>
<br>
Phil<br>
<br>
[1]: <a href="https://babeltrace.org/docs/v2.0/man7/babeltrace2-source.ctf.fs.7/#doc-input" rel="noreferrer" target="_blank">https://babeltrace.org/docs/v2.0/man7/babeltrace2-source.ctf.fs.7/#doc-input</a><br>
<br>
><br>
> --Dave Bort<br>
> _______________________________________________<br>
> lttng-dev mailing list<br>
> <a href="mailto:lttng-dev@lists.lttng.org" target="_blank">lttng-dev@lists.lttng.org</a><br>
> <a href="https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev" rel="noreferrer" target="_blank">https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev</a><br>
</blockquote></div>