Welcome!
Welcome to the barectf 3.1 documentation!
What’s barectf?
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
call its barectf_trace_*()
functions
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
Trace Compass.
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
barectf
Python 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.
License
The barectf project, including this documentation, is licensed under the MIT license.