---
name: "lttng-gen-tp"
section: "1"
platform: "linux"
package: "lttng-ust"
version: "2.16.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/lttng-gen-tp"
---

# lttng-gen-tp(1)

Generate LTTng-UST tracepoint provider code

## NAME

lttng-gen-tp - Generate LTTng-UST tracepoint provider code

## SYNOPSIS

```
lttng-gen-tp [--verbose] [--output=FILE.c]
             [--output=FILE.h] [--output=FILE.o] TEMPLATE
```

## DESCRIPTION

The **lttng-gen-tp** tool simplifies the generation of LTTng-UST tracepoint provider files. It takes a simple template file, *TEMPLATE*, and generates the necessary C code to use the defined tracepoints in your application. See the *Template file format* section below for more information about the format of *TEMPLATE*.

Currently, **lttng-gen-tp** can generate the **.h**, **.c**, and **.o** files associated with your tracepoint provider. The generated **.h** file can be included directly in your application. You can let **lttng-gen-tp** generate the **.o** file or compile the **.c** file yourself. See [**lttng-ust**(3)](/lttng-ust/3.md) for more information about compiling LTTng-UST tracepoint providers.

By default, **lttng-gen-tp** generates the **.h**, **.c**, and **.o** files, their basename being the basename of *TEMPLATE*. You can generate one or more specific file types with the **--output** option, repeated if needed.

### Template file format

The template file, which usually has the **.tp** extension, contains a list of **LTTNG\_UST\_TRACEPOINT\_EVENT()** definitions and other optional definition entries, like **LTTNG\_UST\_TRACEPOINT\_LOGLEVEL()**. See [**lttng-ust**(3)](/lttng-ust/3.md) for the complete list of available definitions.

The **LTTNG\_UST\_TRACEPOINT\_EVENT()** definitions are written as you would write them in an LTTng-UST template provider header file. C comments are supported (**/\* \*/** and **//**), as well as lines starting with **#**.

**Note**\

The provider name (the first argument of **LTTNG\_UST\_TRACEPOINT\_EVENT()**) must be the same in all the **LTTNG\_UST\_TRACEPOINT\_EVENT()** macros of *TEMPLATE*.

Here’s an example:

```
LTTNG_UST_TRACEPOINT_EVENT(
    // Tracepoint provider name
    my_provider,
    // Tracepoint/event name
    my_event,
    // Tracepoint arguments (input)
    LTTNG_UST_TP_ARGS(char *, text),
    // Tracepoint/event fields (output)
    LTTNG_UST_TP_FIELDS(
        lttng_ust_field_string(message, text)
    )
)
```

## OPTIONS

- **-o**, **--output**=*FILE*

  Do not generate default files: generate *FILE*.

  The extension of *FILE* determines what is generated, amongst **.h**, **.c**, and **.o**. This option can be used more than one time to generate different file types.

- **-v**, **--verbose**

  Increase verbosity.

- **-h**, **--help**

  Show command help.

## ENVIRONMENT VARIABLES

**CC**

C compiler to use. Default: **cc**, then **gcc** if **cc** is not found. This option is only relevant when generating the **.o** file.

**CFLAGS**

Flags and options passed directly to the compiler (**$CC**). This option is only relevant when generating the **.o** file.

## EXIT STATUS

**0**

Success

**Non-zero**

Error

## BUGS

If you encounter any issue or usability problem, please report it on the LTTng bug tracker \<https://bugs.lttng.org/projects/lttng-ust\>.

## RESOURCES

• LTTng project website \<http://lttng.org\>

• LTTng documentation \<http://lttng.org/docs\>

• Git repositories \<http://git.lttng.org\>

• GitHub organization \<http://github.com/lttng\>

• Continuous integration \<http://ci.lttng.org/\>

• Mailing list \<http://lists.lttng.org\> for support and development: **lttng-dev@lists.lttng.org**

• IRC channel \<irc://irc.oftc.net/lttng\>: **#lttng** on **irc.oftc.net**

## COPYRIGHTS

**lttng-gen-tp** is part of the LTTng-UST project.

**lttng-gen-tp** is distributed under the GNU General Public License, version 2 \<http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html\>. See the **COPYING** \<https://github.com/lttng/lttng-ust/blob/v2.16/COPYING\> file for more details.

## AUTHOR

**lttng-gen-tp** was originally written by Yannick Brosseau \<mailto:yannick.brosseau@gmail.com\>. It is currently maintained by Mathieu Desnoyers \<mailto:mathieu.desnoyers@efficios.com\>.

## SEE ALSO

[**lttng-ust**(3)](/lttng-ust/3.md)
