LinuxGuruz
  • Last 5 Forum Topics
    Replies
    Views
    Last post


The Web Only This Site
  • BOOKMARK

  • ADD TO FAVORITES

  • REFERENCES


  • MARC

    Mailing list ARChives
    - Search by -
     Subjects
     Authors
     Bodies





    FOLDOC

    Computing Dictionary




  • Text Link Ads






  • LINUX man pages
  • Linux Man Page Viewer


    The following form allows you to view linux man pages.

    Command:

    lttng-ust

    
    
    
    

    SYNOPSIS

           Link liblttng-ust.so with applications, following this manpage.
    
    
    

    DESCRIPTION

           LTTng-UST, the Linux Trace Toolkit Next Generation Userspace Tracer, is
           port of the low-overhead  tracing  capabilities  of  the  LTTng  kernel
           tracer  to  user-space.  The  library "liblttng-ust" enables tracing of
           applications and libraries.
    
    
    

    USAGE

           The simple way to generate the lttng-ust tracepoint probes  is  to  use
           the  lttng-gen-tp(1) tool. See the lttng-gen-tp(1) manpage for explana-
           tion.
    
           Here is the way to do it manually, without the  lttng-gen-tp(1)  helper
           script, through an example:
    
    
    

    CREATION OF TRACEPOINT PROVIDER

           To create a tracepoint provider, within a build tree similar to
           examples/easy-ust installed with lttng-ust documentation, a
           sample_component_provider.h for the general layout. This manpage will
           focus on the various types that can be recorded into a trace event:
    
           TRACEPOINT_EVENT(
                /*
                 * provider name, not a variable but a string starting with a
                 * letter and containing either letters, numbers or underscores.
                 * Needs to be the same as TRACEPOINT_PROVIDER. Needs to
                 * follow the namespacing guide-lines in lttng/tracepoint.h:
                 *
                 * Must be included before include tracepoint provider
                 * ex.: project_event
                 * ex.: project_component_event
                 *
                 * Optional company name goes here
                 *  ex.: com_efficios_project_component_event
                 *
                 * In this example, "sample" is the project, and "component" is the
                 * component.
                 */
                sample_component,
    
                /*
                 * tracepoint name, same format as sample provider. Does not
                 * need to be declared before. in this case the name is
                 * "message"
                 */
                TP_ARGS(int, anint, int, netint, long *, values,
                      char *, text, size_t, textlen,
                      double, doublearg, float, floatarg),
    
                /*
                 * TP_FIELDS describes how to write the fields of the trace event.
                 * You can put expressions in the "argument expression" area,
                 * typically using the input arguments from TP_ARGS.
                 */
                TP_FIELDS(
                     /*
                      * ctf_integer: standard integer field.
                      * args: (type, field name, argument expression)
                      */
                     ctf_integer(int, intfield, anint)
                     ctf_integer(long, longfield, anint)
    
                     /*
                      * ctf_integer_hex: integer field printed as hexadecimal.
                      * args: (type, field name, argument expression)
                      */
                     ctf_integer_hex(int, intfield2, anint)
    
                     /*
                      * ctf_integer_network: integer field in network byte
                      * order. (_hex: printed as hexadecimal too)
                      * args: (type, field name, argument expression)
                      */
                     ctf_integer_network(int, netintfield, netint)
                     ctf_integer_network_hex(int, netintfieldhex, netint)
    
                     /*
                      * ctf_array: a statically-sized array.
                      * args: (type, field name, argument expression, value)
                      */
                     ctf_array(long, arrfield1, values, 3)
    
                     /*
                      * ctf_array_text: a statically-sized array, printed as
                      * a string. No need to be terminated by a null
                      * character.
                      */
                     ctf_array_text(char, arrfield2, text, 10)
    
                     /*
                      * ctf_sequence: a dynamically-sized array.
                      * args: (type, field name, argument expression,
                      *   type of length expression, length expression)
                      */
                     ctf_sequence(char, seqfield1, text,
                               size_t, textlen)
    
                     /*
                      * ctf_float: floating-point number.
                      * args: (type, field name, argument expression)
                      */
                     ctf_float(float, floatfield, floatarg)
                     ctf_float(double, doublefield, doublearg)
                )
           )
    
    
    

    ASSIGNING LOGLEVEL TO EVENTS

           Optionally, a loglevel can be assigned to a TRACEPOINT_EVENT using the
           following construct:
    
                TRACEPOINT_LOGLEVEL(< [com_company_]project[_component] >,
                     < event >, < loglevel_name >)
    
            The first field is the provider name, the second field is the name of
           the tracepoint, and the third field is the loglevel name.  A
           TRACEPOINT_EVENT should be declared prior to the the TRACEPOINT_LOGLEVEL
           for a given tracepoint name. The TRACEPOINT_PROVIDER must be already
           declared before declaring a TRACEPOINT_LOGLEVEL.
    
           The loglevels go from 0 to 14. Higher numbers imply the most verbosity
           (higher event throughput expected.
    
           Loglevels 0 through 6, and loglevel 14, match syslog(3) loglevels
           semantic. Loglevels 7 through 13 offer more fine-grained selection of
           debug information.
    
              TRACE_EMERG           0
              system is unusable
    
              TRACE_ALERT           1
              action must be taken immediately
    
              TRACE_CRIT            2
              critical conditions
    
              TRACE_ERR             3
              error conditions
    
              TRACE_WARNING         4
              warning conditions
    
              TRACE_NOTICE          5
              normal, but significant, condition
    
              TRACE_INFO            6
              informational message
    
              TRACE_DEBUG_SYSTEM    7
    
              TRACE_DEBUG_FUNCTION  12
              debug information with function-level scope
    
              TRACE_DEBUG_LINE      13
              debug information with line-level scope (TRACEPOINT_EVENT default)
    
              TRACE_DEBUG           14
              debug-level message (trace_printf default)
    
           See lttng(1) for information on how to use LTTng-UST loglevels.
    
    
    

    ADDING TRACEPOINTS TO YOUR CODE

           Include the provider header in each C files you plan to instrument,
           following the building/linking directives in the next section.
    
           For instance, add within a function:
    
                     tracepoint(ust_tests_hello, tptest, i, netint, values,
                          text, strlen(text), dbl, flt);
    
           As a call to the tracepoint. It will only be activated when requested by
           lttng(1) through lttng-sessiond(8).
    
    
    

    BUILDING/LINKING THE TRACEPOINT PROVIDER

           There are 2 ways to compile the Tracepoint Provider with the
           application: either statically or dynamically. Please follow
           carefully:
    
             1.1) Compile the Tracepoint provider with the application, either
                  directly or through a static library (.a):
               - Into exactly one object of your application: define
                 "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".
               - 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".
               - 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
    
             2) Compile the Tracepoint Provider separately from the application,
                using dynamic linking:
               - Into exactly one object of your application: define
    
             - 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.
    
    
    

    ENVIRONMENT VARIABLES

           LTTNG_UST_DEBUG
                  Activate liblttng-ust debug output.
    
           LTTNG_UST_REGISTER_TIMEOUT
                  The  environment  variable  "LTTNG_UST_REGISTER_TIMEOUT"  can be
                  used to specify how long the applications should wait  for  ses-
                  siond  "registration  done" command before proceeding to execute
                  the main program. The default is 3000ms (3 seconds). The timeout
                  value  is  specified  in  milliseconds. The value 0 means "don't
                  wait". The value -1 means "wait forever". Setting this  environ-
                  ment  variable  to  0  is recommended for applications with time
                  constraints on the process startup time.
    
    
    

    SEE ALSO

           lttng-gen-tp(1), lttng(1), babeltrace(1), lttng-sessiond(8)
    
    
    

    BUGS

           No knows bugs at this point.
    
           If you encounter any issues or usability problem, please report  it  on
           our  mailing  list  <lttng-dev@lists.lttng.org>  to  help  improve this
           project.
    
    
    

    CREDITS

           liblttng-ust is distributed under the GNU Lesser General Public License
           version 2.1. The headers are distributed under the MIT license.
    
           See http://lttng.org for more information on the LTTng project.
    
           Mailing  list for support and development: <lttng-dev@lists.lttng.org>.
    
           You can find us on IRC server irc.oftc.net (OFTC) in #lttng.
    
    
    

    THANKS

           Thanks to Ericsson for funding  this  work,  providing  real-life  use-
           cases, and testing.
    
  • MORE RESOURCE


  • Linux

    The Distributions





    Linux

    The Software





    Linux

    The News



  • MARKETING






  • Toll Free

webmaster@linuxguruz.com
Copyright © 1999 - 2016 by LinuxGuruz