- liburcu
Userspace RCU library, by Mathieu Desnoyers and Paul E. McKenney
- -> This release depends on liburcu v0.6.6
+ -> This release depends on liburcu v0.7.2
* Debian/Ubuntu package: liburcu-dev
* Website: http://lttng.org/urcu
(make sure your system wide "automake" points to a recent version!)
- GNU Libtool >=2.2
(for more information, go to http://www.gnu.org/software/autoconf/)
+- Perl (optional)
+ Needed for make check and tests.
If you get the tree from the repository, you will need to use the "bootstrap"
script in the root of the tree. It calls all the GNU tools needed to prepare the
- 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" on Linux, "-lc" on BSD.
- 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.
- Enable instrumentation and control tracing with the "lttng" command
from lttng-tools. See lttng-tools doc/quickstart.txt.
+ - 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.
ENVIRONMENT VARIABLES:
recommended for applications with time constraints on the process
startup time.
+ - The compilation flag "-DLTTNG_UST_DEBUG_VALGRIND" should be enabled
+ at build time to allow liblttng-ust to be used with valgrind
+ (side-effect: disables per-cpu buffering).
+
TRACE VIEWER: