850a72287be77544a30f299a03f8f0fdd3def3df
[lttng-docs.git] / contents / understanding-lttng / plumbing / lttng-ust.md
1 ---
2 id: lttng-ust
3 ---
4
5 The user space tracing part of LTTng is possible thanks to the user
6 space tracing library, `liblttng-ust`, which is part of the LTTng-UST
7 package.
8
9 `liblttng-ust` provides header files containing macros used to define
10 tracepoints and create tracepoint providers, as well as a shared object
11 that must be linked to individual applications to connect to and
12 communicate with a session daemon and a consumer daemon as soon as the
13 application starts.
14
15 The exact mechanism by which an application is registered to the
16 session daemon is beyond the scope of this documentation. The only thing
17 you need to know is that, since the library constructor does this job
18 automatically, tracepoints may be safely inserted anywhere in the source
19 code without prior manual initialization of `liblttng-ust`.
20
21 The `liblttng-ust`-session daemon collaboration also provides an
22 interesting feature: user space events may be enabled _before_
23 applications actually start. By doing this and starting tracing before
24 launching the instrumented application, you make sure that even the
25 earliest occurring events can be recorded.
26
27 The [C application](#doc-c-application) instrumenting guide of the
28 [Using LTTng](#doc-using-lttng) chapter focuses on using `liblttng-ust`:
29 instrumenting, building/linking and running a user application.
This page took 0.029217 seconds and 3 git commands to generate.