Provided by: liblttng-ust-dev_2.4.0-4ubuntu1_amd64 bug

NAME

       lttng-ust-cyg-profile — LTTng UST 2.x Function Tracing

SYNOPSIS

       Compile the application source code with option -finstrument-functions and launch your application either
       with:

       LD_PRELOAD=liblttng-ust-cyg-profile-fast.so appname

       or (to use verbose function tracing)

       LD_PRELOAD=liblttng-ust-cyg-profile.so appname

       All  events  emitted  for  function  tracing are provided on loglevel TRACE_DEBUG_FUNCTION. The following
       command can be used to add function tracing events in your trace session:

       lttng enable-event -u -a --loglevel-only TRACE_DEBUG_FUNCTION

DESCRIPTION

       For compilers that provide code generation option -finstrument-functions (e.g. GCC and LLVM/Clang) LTTng-
       UST provides shared libraries that allow users to trace the function flow of their applications.

       Function tracing comes in two flavors (each providing different trade-offs):

       liblttng-ust-cyg-profile-fast.so
              This is a lightweight variant that should only be  used  where  it  can  be  guaranteed  that  the
              complete event stream is recorded without any missing events. Any kind of duplicate information is
              left out.

              At    each    function    entry   the   address   of   the   called   function   is   recored   as
              lttng_ust_cyg_profile_fast:func_entry.       Function       exit       is       recorded        as
              lttng_ust_cyg_profile_fast:func_exit (without any field data).

       liblttng-ust-cyg-profile.so
              This  is  a more robust variant which also works for use-cases where events might get discarded or
              not recorded from application startup. In these cases the trace analyzer needs  extra  information
              to be able to reconstruct the program flow.

              For  each function entry and exit the address of the called function and the call site address are
              recorded as lttng_ust_cyg_profile:func_entry and lttng_ust_cyg_profile:func_exit.

USAGE

       To use function tracing you need to  make  sure  the  sources  of  your  application  are  compiled  with
       -finstrument-functions.  It  might  be necessary to limit the number of source files where this option is
       used to prevent excessive amount of trace data to  be  generated  during  run  time.  Usually  there  are
       additional   compiler  flags  that  allow  you  to  specify  more  fine  grained  selection  of  function
       instrumentation.

       For each instrumented function the executable will contain  calls  to  profiling  function  hooks  (after
       function entry and just before function exit).

       By  preloading  (LD_PRELOAD)  one  of the provided shared libraries, these profiling hooks get defined to
       emit LTTng events (as described above).

       Using this feature can result  in  massive  amount  trace  data  to  be  generated  by  the  instrumented
       application.  Application  runtime  is  also  considerably  affected.  Be careful on systems with limited
       resources.

SEE ALSO

       lttng-ust(3), lttng(1), gcc(1), ld.so(8)

BUGS

       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.

AUTHORS

       liblttng-ust was originally written by Mathieu Desnoyers,  with  additional  contributions  from  various
       other people. It is currently maintained by Mathieu Desnoyers <mathieu.desnoyers@efficios.com>.

                                                 March 26, 2013                         LTTNG-UST-CYG-PROFILE(3)