directly or through a static library (.a):
- Into exactly one object of your application: define
"TRACEPOINT_DEFINE" and include the tracepoint provider.
- - Use "-I." for the compilation unit containing the tracepoint
+ - Use "\-I." for the compilation unit containing the tracepoint
provider include (e.g. tp.c).
- - Link application with "-ldl".
+ - Link application with "\-ldl".
- If building the provider directly into the application,
- link the application with "-llttng-ust".
+ link the application with "\-llttng-ust".
- If building a static library for the provider, link the static
- library with "-lllttng-ust".
+ library with "\-lllttng-ust".
- Include the tracepoint provider header into all C files using
the provider.
- Example:
provider header.
- Include the tracepoint provider header into all instrumented C
files that use the provider.
- - Compile the tracepoint provider with "-I.".
- - Link the tracepoint provider with "-llttng-ust".
- - Link application with "-ldl".
+ - Compile the tracepoint provider with "\-I.".
+ - Link the tracepoint provider with "\-llttng-ust".
+ - Link application with "\-ldl".
- Set a LD_PRELOAD environment to preload the tracepoint provider
shared object before starting the application when tracing is
needed.
way libc lazily resolves Thread-Local Storage (TLS) symbols when a
library is dlopen'd, linking the tracepoint probe or liblttng-ust
with dlopen() is discouraged. They should be linked with the
- application using "-llibname" or loaded with LD_PRELOAD.
+ application using "\-llibname" or loaded with LD_PRELOAD.
- Enable instrumentation and control tracing with the "lttng" command
from lttng-tools. See lttng-tools doc/quickstart.txt.
+ - Note for C++ support: although an application instrumented with
+ tracepoints can be compiled with g++, tracepoint probes should be
+ compiled with gcc (only tested with gcc so far).
+
+.fi
+
+.SH "USING LTTNG UST WITH DAEMONS"
+
+.nf
+Some extra care is needed when using liblttng-ust with daemon
+applications that call fork(), clone(), or BSD rfork() without a
+following exec() family system call. The library "liblttng-ust-fork.so"
+needs to be preloaded for the application (launch with e.g.
+LD_PRELOAD=liblttng-ust-fork.so appname).
.fi
"registration done" command before proceeding to execute the main
program. The default is 3000ms (3 seconds). The timeout value is
specified in milliseconds. The value 0 means "don't wait". The value
--1 means "wait forever". Setting this environment variable to 0 is
+\-1 means "wait forever". Setting this environment variable to 0 is
recommended for applications with time constraints on the process
startup time.
.PP