X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=doc%2Fman%2Flttng-ust.3;h=5be3cfaa081a669cb8d9b9e990117dd63f9bc735;hb=efbad5cc87395d00fa1d578ae211aee431fa3b4a;hp=818ef103ae407498c133ba9e64580595f3b47254;hpb=94c9c48da8ea6424c01d17409cc6788f7ea70450;p=lttng-ust.git diff --git a/doc/man/lttng-ust.3 b/doc/man/lttng-ust.3 index 818ef103..5be3cfaa 100644 --- a/doc/man/lttng-ust.3 +++ b/doc/man/lttng-ust.3 @@ -1,7 +1,7 @@ .TH "LTTNG-UST" "3" "February 16, 2012" "" "" .SH "NAME" -lttng-ust \(em Linux Trace Toolkit Next Generation User-Space Tracer +lttng-ust \(em Linux Trace Toolkit Next Generation User-Space Tracer 2.x .SH "SYNOPSIS" @@ -123,6 +123,10 @@ TRACEPOINT_EVENT( * ctf_sequence: a dynamically-sized array. * args: (type, field name, argument expression, * type of length expression, length expression) + * The "type of length expression" needs to be an + * unsigned type. As a reminder, "unsigned char" should + * be preferred to "char", since the signedness of + * "char" is implementation-defined. */ ctf_sequence(char, seqfield1, text, size_t, textlen) @@ -238,6 +242,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" @@ -261,7 +269,7 @@ carefully: - 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 +284,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 + - doc/examples/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 @@ -356,12 +364,13 @@ startup time. .SH "SEE ALSO" .PP -lttng-gen-tp(1), lttng(1), babeltrace(1), lttng-sessiond(8) +lttng-gen-tp(1), lttng(1), babeltrace(1), lttng-ust-cyg-profile(3), +lttng-sessiond(8) .PP .SH "BUGS" .PP -No knows bugs at this point. +No known bugs at this point. If you encounter any issues or usability problem, please report it on our mailing list to help improve this