Linux Test Project

geninfo(1)                       User Manuals                      geninfo(1)



NAME
       geninfo - Generate tracefiles from .da files

SYNOPSIS
       geninfo [-h|--help] [-v|--version] [-q|--quiet]
               [-i|--initial] [-t|--test-name test-name]
               [-o|--output-filename filename] [-f|--follow]
               [-b|--base-directory directory]
               [--checksum] [--no-checksum]
               [--compat-libtool] [--no-compat-libtool]
               [--gcov-tool tool] [--ignore-errors errors]
               directory

DESCRIPTION
       geninfo  converts all GCOV coverage data files found in directory into
       tracefiles, which the genhtml tool can convert to HTML output.

       Unless the --output-filename option is specified, geninfo  writes  its
       output  to  one  file  per .da file, the name of which is generated by
       simply appending ".info" to the respective .da file name.

       Note that the current user needs write access  to  both  directory  as
       well  as  to  the  original  source  code  location. This is necessary
       because some temporary files have to be created there during the  con-
       version process.

       Note  also  that  geninfo is called from within lcov, so that there is
       usually no need to call it directly.

OPTIONS
       -b directory
       --base-directory directory
              Use directory as base directory for relative paths.

              Use this option to specify the base directory of a  build-envi-
              ronment when geninfo produces error messages like:

                     ERROR:      could      not      read     source     file
                     /home/user/project/subdir1/subdir2/subdir1/sub-
                     dir2/file.c

              In this example, use /home/user/project as base directory.

              This  option  is  required when using geninfo on projects built
              with libtool or similar build environments  that  work  with  a
              base  directory,  i.e.  environments, where the current working
              directory when invoking the compiler is not the same  directory
              in which the source code file is located.

              Note  that this option will not work in environments where mul-
              tiple base directories are used. In that case repeat  the  gen-
              info   call   for   each   base   directory   while  using  the
              --ignore-errors option to prevent geninfo from exiting when the
              first source code file could not be found. This way you can get
              partial coverage information for each base directory which  can
              then be combined using the -a option.

       --checksum
       --no-checksum
              Specify  whether  to generate checksum data when writing trace-
              files.

              Use --checksum to enable checksum generation  or  --no-checksum
              to disable it. Checksum generation is disabled by default.

              When  checksum generation is enabled, a checksum will be gener-
              ated for each source code line and stored along with the cover-
              age  data.  This  checksum  will be used to prevent attempts to
              combine coverage data from different source code versions.

              If you don't work with different source code versions,  disable
              this  option to speed up coverage data processing and to reduce
              the size of tracefiles.

       --compat-libtool
       --no-compat-libtool
              Specify whether to enable libtool compatibility mode.

              Use --compat-libtool to enable libtool  compatibility  mode  or
              --no-compat-libtool  to  disable  it. The libtool compatibility
              mode is enabled by default.

              When libtool compatibility mode is enabled, geninfo will assume
              that the source code relating to a .da file located in a direc-
              tory named ".libs" can be found in its parent directory.

              If you have directories named ".libs" in your build environment
              but  don't use libtool, disable this option to prevent problems
              when capturing coverage data.

       -f
       --follow
              Follow links when searching .da files.

       --gcov-tool tool
              Specify the location of the gcov tool.

       -h
       --help
              Print a short help text, then exit.

       --ignore-errors errors
              Specify a list of errors after which to continue processing.

              Use this option to specify a list of one  or  more  classes  of
              errors  after  which geninfo should continue processing instead
              of aborting.

              errors can be a comma-separated list of the following keywords:

              gcov: the gcov tool returned with a non-zero return code.

              source: the source code file for a data set could not be found.

       -i
       --initial
              Capture initial zero coverage data.

              Run geninfo with this option on the directories containing .bb,
              .bbg or .gcno files before running any test case. The result is
              a "baseline" coverage data file that contains zero coverage for
              every instrumented line. Combine this data file (using lcov -a)
              with coverage data files captured after a test  run  to  ensure
              that the percentage of total lines covered is correct even when
              not all source code files were loaded during the test.

       -o output-filename
       --output-filename output-filename
              Write all data to output-filename.

              If you want to have all data written to a single file (for eas-
              ier  handling), use this option to specify the respective file-
              name. By default, one tracefile will be created for  each  pro-
              cessed .da file.

       -q
       --quiet
              Do not print progress messages.

              Suppresses  all informational progress output. When this switch
              is enabled, only error or warning messages are printed.

       -t testname
       --test-name testname
              Use test case name testname for resulting data. Valid test case
              names can consist of letters, decimal digits and the underscore
              character ('_').

              This proves useful when data from several test cases is  merged
              (i.e.  by  simply  concatenating  the respective tracefiles) in
              which case a test name can be  used  to  differentiate  between
              data from each test case.

       -v
       --version
              Print version number, then exit.



FILES
       /etc/lcovrc
              The system-wide configuration file.

       ~/.lcovrc
              The per-user configuration file.

       Following  is  a  quick description of the tracefile format as used by
       genhtml, geninfo and lcov.

       A tracefile is made  up  of  several  human-readable  lines  of  text,
       divided into sections. If available, a tracefile begins with the test-
       name which is stored in the following format:

         TN:<test name>

       For each source file referenced in the .da file, there  is  a  section
       containing filename and coverage data:

         SF:<absolute path to the source file>

       Following  is  a  list of line numbers for each function name found in
       the source file:

         FN:<line number of function start>,<function name>

       Then there is a list of execution counts for  each  instrumented  line
       (i.e. a line which resulted in executable code):

         DA:<line number>,<execution count>[,<checksum>]

       Note  that  there may be an optional checksum present for each instru-
       mented line. The current geninfo implementation uses an  MD5  hash  as
       checksumming algorithm.

       At  the end of a section, there is a summary about how many lines were
       found and how many were actually instrumented:

         LH:<number of lines with a non-zero execution count>
         LF:<number of instrumented lines>

       Each sections ends with:

         end_of_record

       In addition to the main source code file there are  sections  for  all
       #included files which also contain executable code.

       Note  that  the  absolute path of a source file is generated by inter-
       preting the contents of the respective .bb file (see gcov (1) for more
       information  on  this file type). Relative filenames are prefixed with
       the directory in which the .bb file is found.

       Note also that symbolic links to the .bb file will be resolved so that
       the  actual  file  path  is  used  instead of the path to a link. This
       approach is necessary for the mechanism to work  with  the  /proc/gcov
       files.


AUTHOR
       Peter Oberparleiter <Peter.Oberparleiter@de.ibm.com>


SEE ALSO
       lcov(1), genhtml(1), genpng(1), gendesc(1), gcov(1)



2003-12-19                         lcov 1.6                        geninfo(1)

Sourceforge.net  Last modified on: April 20, 2008 - 06:51:13 PDT.
Theme: