X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=doc%2Fman%2Flttng-ust.3;h=7cc3bfde5b7112b354d6d5c4e81fc4c0115d45dc;hb=13fb2d2c14d49d2e5457df7b5f02e99e979464c3;hp=88025c0e702727da568f9a99b7dbb70bd248cc2c;hpb=0a7c55a5916a0ff52bca2dcbfe4ac825a3bb179d;p=lttng-ust.git diff --git a/doc/man/lttng-ust.3 b/doc/man/lttng-ust.3 index 88025c0e..7cc3bfde 100644 --- a/doc/man/lttng-ust.3 +++ b/doc/man/lttng-ust.3 @@ -238,6 +238,10 @@ For instance, add within a function: 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" @@ -257,11 +261,11 @@ carefully: - 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 - library with "\-lllttng-ust". + library with "\-llttng-ust". - 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: @@ -276,15 +280,15 @@ carefully: - 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 @@ -304,6 +308,38 @@ LD_PRELOAD=liblttng-ust-fork.so appname). .fi +.SH "CONTEXT" + +.PP +Context information can be prepended by the tracer before each, or some, +events. The following context information is supported by LTTng-UST: +.PP + +.PP +.IP "vtid" +Virtual thread ID: thread ID as seen from the point of view of the +process namespace. +.PP + +.PP +.IP "vpid" +Virtual process ID: process ID as seen from the point of view of the +process namespace. +.PP + +.PP +.IP "procname" +Thread name, as set by exec() or prctl(). It is recommended that +programs set their thread name with prctl() before hitting the first +tracepoint for that thread. +.PP + +.PP +.IP "pthread_id" +Pthread identifier. Can be used on architectures where pthread_t maps +nicely to an unsigned long type. +.PP + .SH "ENVIRONMENT VARIABLES" .PP