As a call to the tracepoint. It will only be activated when requested by
lttng(1) through lttng-sessiond(8).
+Even though LTTng-UST supports tracepoint() call site duplicates having
+the same provider and event name, it is recommended to use a
+provider event name pair only once within the source code to help
+mapping events back to their call sites when analyzing the trace.
.fi
.SH "BUILDING/LINKING THE TRACEPOINT PROVIDER"
- Include the tracepoint provider header into all C files using
the provider.
- Example:
- tests/hello/ hello.c tp.c ust_tests_hello.h Makefile.example
+ - tests/hello/ hello.c tp.c ust_tests_hello.h Makefile.example
2) Compile the Tracepoint Provider separately from the application,
using dynamic linking:
- Link application with "\-ldl".
- Set a LD_PRELOAD environment to preload the tracepoint provider
shared object before starting the application when tracing is
- needed.
+ needed. Another way is to dlopen the tracepoint probe when needed
+ by the application.
- Example:
- tests/demo/ demo.c tp*.c ust_tests_demo*.h demo-trace
- - Note about dlopen() usage: due to locking side-effects due to the
- 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.
+ - Note about dlclose() usage: it is not safe to use dlclose on a
+ provider shared object that is being actively used for tracing due
+ to a lack of reference counting from lttng-ust to the used shared
+ object.
- 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
.PP
lttng-gen-tp(1), lttng(1), babeltrace(1), lttng-sessiond(8)
.PP
+
+.SH "COMPATIBILITY"
+
+.PP
+Older lttng-ust libraries reject more recent, and incompatible, probe
+providers. Newer lttng-ust librairies accept older probe providers, even
+though some newer features might not be available with those providers.
+.PP
+
.SH "BUGS"
.PP
-No knows bugs at this point.
+LTTng-UST 2.0 and 2.1 lttng-ust libraries do not check for probe
+provider version compatibility. This can lead to out-of-bound accesses
+when using a more recent probe provider with an older lttng-ust library.
+These error only trigger when tracing is active. This issue has been
+fixed in LTTng-UST 2.2.
If you encounter any issues or usability problem, please report it on
our mailing list <lttng-dev@lists.lttng.org> to help improve this