+// SPDX-FileCopyrightText: 2016 Philippe Proulx <pproulx@efficios.com>
+// SPDX-License-Identifier: CC-BY-4.0
+//
lttng-ust(3)
============
:object-type: library
#define *lttng_ust_tracepoint*('prov_name', 't_name', ...)
#define *lttng_ust_tracepoint_enabled*('prov_name', 't_name')
-Link with `-llttng-ust -llttng-ust-common -ldl`, following this man page.
+Link with, following this manual page:
+
+* `-llttng-ust -ldl`
+* If you define `_LGPL_SOURCE` before including
+ `<lttng/tracepoint.h>` (directly or indirectly): `-llttng-ust-common`
DESCRIPTION
provider's API changes).
Then, link your application with this object file (or with the static
-library containing it) and with `liblttng-ust`, `liblttng-ust-common`,
-and `libdl` (`libc` on a BSD system):
+library containing it) and with `liblttng-ust` and `libdl` (`libc` on a
+BSD system):
[role="term"]
----
-$ cc -o app tp.o app.o -llttng-ust -llttng-ust-common -ldl
+$ cc -o app tp.o app.o -llttng-ust -ldl
----
[role="term"]
----
-$ cc -shared -Wl,--no-as-needed -o tp.so tp.o -llttng-ust \
- -llttng-ust-common
+$ cc -shared -Wl,--no-as-needed -o tp.so tp.o -llttng-ust
----
This tracepoint provider shared object isn't linked with the user
----
$ cc -c -I. tp.c
$ cc -c app.c
-$ cc -o app tp.o app.o -llttng-ust -llttng-ust-common -ldl
+$ cc -o app tp.o app.o -llttng-ust -ldl
----
Using the man:lttng(1) tool, create an LTTng tracing session, enable
lttng_ust_field_array(int, array_field, array_arg, 7)
lttng_ust_field_array_text(char, array_text_field,
array_arg, 5)
- lttng_ust_field_sequence(int, seq_field, array_arg, int,
+ lttng_ust_field_sequence(int, seq_field, array_arg, unsigned int,
my_integer_arg / 10)
lttng_ust_field_sequence_text(char, seq_text_field,
- array_arg, int,
+ array_arg, unsigned int,
my_integer_arg / 5)
lttng_ust_field_enum(my_provider, my_enum, int,
enum_field, array_arg[1])
ENVIRONMENT VARIABLES
---------------------
+`LTTNG_UST_APP_PATH`::
+ Path under which unix sockets used for the communication between
+ the application (tracee) instrumented with `liblttng-ust` and the
+ LTTng session and consumer daemons (part of the LTTng-tools project)
+ are located. When `$LTTNG_UST_APP_PATH` is specified, only this path
+ is considered for connecting to a session daemon. The
+ `$LTTNG_UST_APP_PATH` target directory must exist and be accessible
+ by the user before the application is executed for tracing to work.
+ Setting this environment variable disables connection to root and
+ per-user session daemons.
+
`LTTNG_HOME`::
Alternative user's home directory. This variable is useful when the
user running the instrumented application has a non-writable home
- directory.
-+
-Unix sockets used for the communication between `liblttng-ust` and the
-LTTng session and consumer daemons (part of the LTTng-tools project)
-are located in a specific directory under `$LTTNG_HOME` (or `$HOME` if
-`$LTTNG_HOME` is not set).
+ directory. This path is where unix sockets for communication with
+ the per-user session daemon are located.
`LTTNG_UST_ALLOW_BLOCKING`::
If set, allow the application to retry event tracing when there's
WARNING: Setting this environment variable may significantly
affect application timings.
+`LTTNG_UST_ABORT_ON_CRITICAL`::
+ If set, abort the instrumented application on a critical error message.
+
`LTTNG_UST_CLOCK_PLUGIN`::
Path to the shared object which acts as the clock override plugin.
An example of such a plugin can be found in the LTTng-UST