- 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
"TRACEPOINT_DEFINE" and include the tracepoint provider.
- Use "-I." for the compilation unit containing the tracepoint
provider include (e.g. tp.c).
- - Link application with "-ldl".
+ - Link application with "-ldl" on Linux, with "-lc" on BSD.
- If building the provider directly into the application,
link the application with "-llttng-ust".
- If building a static library for the provider, link the static
- 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:
files that use the provider.
- Compile the tracepoint provider with "-I.".
- Link the tracepoint provider with "-llttng-ust".
- - Link application with "-ldl".
+ - 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. Another way is to dlopen the tracepoint probe when needed
- 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: