Welcome to the barectf 3.0 documentation!
barectf (from bare metal and CTF) is a generator of tracer which produces CTF data streams.
CTF is a binary trace format designed to be very fast to write without compromising great flexibility.
barectf reads a configuration and produces:
A CTF metadata stream file.
ANSI C source code files which, once compiled, constitute a tracer which writes CTF data streams.
The generated C source code has no other dependencies than a few C standard library headers.
Your C/C++ program can include the generated
barectf.h header and
from source locations of your choice to write
event records to
CTF packets. You can then
read and analyze the CTF traces with tools such as
Babeltrace 2 and
Get started now with a simple barectf configuration.
Read How barectf works to understand the mechanics and terminology of barectf.
Do I need barectf?
You may need barectf if you need to add CTF tracing capabilities to your bare metal or embedded application/system.
Because barectf generates portable ANSI C code, you can compile it and use it for virtually any system.
If you need to add CTF instrumentation to Linux applications or to the Linux kernel, have a look at LTTng which offers a comprehensive tracing solution for Linux.
Components of barectf
The barectf project contains:
A Python 3 package, named
barectf, which offers an API to programatically create a barectf configuration and generate files out of it.
The documentation of the
barectfPython 3 package isn’t available yet.
A command-line interface (CLI), named
barectf, which can process a barectf YAML configuration file to generate files out of it.
Installed standard partial YAML files which you can include in your barectf YAML configuration.
What’s in this documentation?
This documentation shows:
The barectf project, including this documentation, is licensed under the MIT license.