barectf CLI tool usage
barectf ships with the barectf command-line interface (CLI) tool.
General description
The barectf tool offers a Git-like
user interface with the following available commands:
- generate
- 
Generates the C source and CTF metadata stream files of a tracer from a YAML configuration file. 
- show-effective-configuration
- 
Prints the effective version of a YAML configuration file. 
- show-configuration-version
- 
Prints the major version (2 or 3) of a YAML configuration file. 
generate command
Synopses
Generate files from a YAML configuration file:
barectf generate [--prefix=PREFIX] [--metadata-dir=MDIR] [--headers-dir=HDIR] [--code-dir=CDIR] [--include-dir=IDIR]… [--ignore-include-not-found] CONFIG-PATH
Print command’s brief help:
barectf generate --help
Description
The barectf generate command reads the YAML
configuration file CONFIG-PATH to produce:
| File name | Description | 
|---|---|
| 
 | The CTF metadata stream file. | 
| 
 | The generated tracer’s public C header file. | 
| 
 | Internal macros for the generated tracer (included by  | 
| 
 | The generated tracer’s C source code. | 
See Build the generated C source code to learn how to
build the C source which the generate command produces.
In the list above, FPREFIX is:
- Without the --prefixoption
- 
- If the CONFIG-PATHfile has a file name prefix option
- 
The CONFIG-PATHfile’s file name prefix option.
- Otherwise
- 
barectf
 
- If the 
- With the --prefixoption
- 
PREFIX, without trailing underscores.For example, if PREFIXismy_tracer_, thenFPREFIXismy_tracer.
By default, MDIR, HDIR, and CDIR are the current
working directory. Use the
--metadata-dir,
--headers-dir, and
--code-dir to specify other output
directories.
Therefore, by default, the generate command writes the metadata,
barectf.h, barectf-bitfield.h, and barectf.c files to the current
working directory.
If you use the --prefix option, then all the
public C identifiers in FPREFIX.h and FPREFIX.c begin
with PREFIX. Otherwise, they begin with:
- If the CONFIG-PATHfile has an identifier prefix option
- 
The CONFIG-PATHfile’s identifier prefix option.
- Otherwise
- 
barectf_
Add directories to be searched into for inclusion
files before the default inclusion directories with the repeatable
--include-dir option.
By default, if barectf can’t find an inclusion file while processing
the CONFIG-PATH file, the command prints an error and
exits with a non-zero status. Force
barectf generate to continue silently instead with its
--ignore-include-not-found
option.
Options
- -c CDIR
- --code-dir=CDIR
- 
Write the C source file to the directory CDIRinstead of the current working directory.
- -H HDIR
- --headers-dir=HDIR
- 
Write C header files to the directory HDIRinstead of the current working directory.
- -h
- --help
- 
Print the generatecommand’s brief help and exit.
- --ignore-include-not-found
- 
Continue to process the CONFIG-PATHfile when inclusion files are not found.
- -I IDIR
- --include-dir=IDIR
- 
Add IDIRto the list of directories to be searched into for inclusion files before the default inclusion directories.The default inclusion directories are: - 
The current working directory. 
- 
The directory containing the standard partial YAML files (like stdint.yaml).
 
- 
- -m MDIR
- --metadata-dir=MDIR
- 
Write the CTF metadata stream file to the directory MDIRinstead of the current working directory.
- -p PREFIX
- --prefix=PREFIX
- 
Override the default or CONFIG-PATHfile’s file and identifier prefixes with:- File name prefix
- 
PREFIX, without trailing underscores.
- Identifier prefix
- 
PREFIX
 PREFIXmust be a valid C identifier.The default file name prefix is barectf.The default identifier prefix is barectf_.
show-effective-configuration command
Synopses
Show the effective version of a YAML configuration file:
barectf show-effective-configuration [--include-dir=IDIR]… [--ignore-include-not-found] CONFIG-PATH
Print command’s brief help:
barectf show-effective-configuration --help
Description
The barectf show-effective-configuration command reads the
YAML configuration file CONFIG-PATH and
prints an equivalent, effective YAML configuration.
See the processing stages of a YAML configuration file to learn what an effective configuration is.
Moreover, the show-effective-configuration command validates the
CONFIG-PATH file. In other words, if the command
exits with status 0, the
generate command using the same options and
CONFIG-PATH file would also succeed.
Add directories to be searched into for inclusion files before the
default inclusion directories with the repeatable
--include-dir option.
By default, if barectf can’t find an inclusion file while processing
the CONFIG-PATH file, the command prints an error and
exits with a non-zero status. Force
barectf show-effective-configuration to continue silently instead
with its
--ignore-include-not-found
option.
Options
- -h
- --help
- 
Print the show-effective-configurationcommand’s brief help and exit.
- --ignore-include-not-found
- 
Continue to process the CONFIG-PATHfile when inclusion files are not found.
- -I IDIR
- --include-dir=IDIR
- 
Add IDIRto the list of directories to be searched into for inclusion files before the default inclusion directories.The default inclusion directories are: - 
The current working directory. 
- 
The directory containing the standard partial YAML files (like stdint.yaml).
 
- 
show-configuration-version command
Synopses
Show a YAML configuration file's version:
barectf show-configuration-version CONFIG-PATH
Print command’s brief help:
barectf show-configuration-version --help
Description
The barectf show-configuration-version command reads the
YAML configuration file CONFIG-PATH and
prints its version, which is either 2 or 3.
The show-configuration-version does not validate the
CONFIG-PATH file like the
show-effective-configuration
command does.