Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GCOV-TOOL(1)			      GNU			  GCOV-TOOL(1)

NAME
       gcov-tool - offline gcda	profile	processing tool

SYNOPSIS
       gcov-tool [-v|--version]	[-h|--help]

       gcov-tool merge [merge-options] directory1 directory2
	    [-o|--output directory]
	    [-v|--verbose]
	    [-w|--weight w1,w2]

       gcov-tool rewrite [rewrite-options] directory
	    [-n|--normalize long_long_value]
	    [-o|--output directory]
	    [-s|--scale	float_or_simple-frac_value]
	    [-v|--verbose]

       gcov-tool overlap [overlap-options] directory1 directory2
	    [-f|--function]
	    [-F|--fullname]
	    [-h|--hotonly]
	    [-o|--object]
	    [-t|--hot_threshold] float
	    [-v|--verbose]

DESCRIPTION
       gcov-tool is an offline tool to process gcc's gcda profile files.

       Current gcov-tool supports the following	functionalities:

       *   merge two sets of profiles with weights.

       *   read	one set	of profile and rewrite profile contents. One can scale
	   or normalize	the count values.

       Examples	of the use cases for this tool are:

       *   Collect the profiles	for different set of inputs, and use this tool
	   to merge them. One can specify the weight to	factor in the relative
	   importance of each input.

       *   Rewrite  the	 profile  after	 removing  a subset of the gcda	files,
	   while maintaining the consistency of	the summary and	the histogram.

       *   It can also be used to debug	or libgcov code	as  the	 tools	shares
	   the majority	code as	the runtime library.

       Note that for the merging operation, this profile generated offline may
       contain	slight	different  values from the online merged profile. Here
       are a list of typical differences:

       *   histogram difference: This offline tool  recomputes	the  histogram
	   after  merging the counters.	The resulting histogram, therefore, is
	   precise. The	online merging does not	have this  capability  --  the
	   histogram  is  merged  from	two  histograms	 and  the result is an
	   approximation.

       *   summary  checksum  difference:  Summary  checksum  uses   a	 CRC32
	   operation.  The  value  depends on the link list order of gcov-info
	   objects. This order is different in	gcov-tool  from	 that  in  the
	   online merge. It's expected to have different summary checksums. It
	   does	 not  really matter as the compiler does not use this checksum
	   anywhere.

       *   value profile counter values	difference: Some  counter  values  for
	   value  profile  are	runtime	 dependent,  like heap addresses. It's
	   normal to see some difference in these kind of counters.

OPTIONS
       -h
       --help
	   Display help	about using gcov-tool (on the  standard	 output),  and
	   exit	without	doing any further processing.

       -v
       --version
	   Display  the	gcov-tool version number (on the standard output), and
	   exit	without	doing any further processing.

       merge
	   Merge two profile directories.

	   -o directory
	   --output directory
	       Set the output profile directory. Default output	directory name
	       is merged_profile.

	   -v
	   --verbose
	       Set the verbose mode.

	   -w w1,w2
	   --weight w1,w2
	       Set  the	 merge	weights	 of  the  directory1  and  directory2,
	       respectively. The default weights are 1 for both.

       rewrite
	   Read	  the  specified  profile  directory  and  rewrite  to	a  new
	   directory.

	   -n long_long_value
	   --normalize <long_long_value>
	       Normalize the profile. The specified value is the  max  counter
	       value in	the new	profile.

	   -o directory
	   --output directory
	       Set  the	 output	 profile  directory.  Default  output  name is
	       rewrite_profile.

	   -s float_or_simple-frac_value
	   --scale float_or_simple-frac_value
	       Scale the profile counters.  The	 specified  value  can	be  in
	       floating	point value, or	simple fraction	value form, such 1, 2,
	       2/3, and	5/3.

	   -v
	   --verbose
	       Set the verbose mode.

       overlap
	   Compute  the	 overlap  score	 between  the  two  specified  profile
	   directories.	 The overlap  score  is	 computed  based  on  the  arc
	   profiles.  It  is  defined  as  the	sum  of	 min  (p1_counter[i] /
	   p1_sum_all, p2_counter[i] / p2_sum_all), for	 all  arc  counter  i,
	   where  p1_counter[i]	and p2_counter[i] are two matched counters and
	   p1_sum_all and p2_sum_all are the sum of counter values in  profile
	   1 and profile 2, respectively.

	   -f
	   --function
	       Print function level overlap score.

	   -F
	   --fullname
	       Print full gcda filename.

	   -h
	   --hotonly
	       Only print info for hot objects/functions.

	   -o
	   --object
	       Print object level overlap score.

	   -t float
	   --hot_threshold <float>
	       Set the threshold for hot counter value.

	   -v
	   --verbose
	       Set the verbose mode.

SEE ALSO
       gpl(7), gfdl(7),	fsf-funding(7),	gcc(1),	gcov(1)	and the	Info entry for
       gcc.

COPYRIGHT
       Copyright (c) 2014-2022 Free Software Foundation, Inc.

       Permission  is  granted to copy,	distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version  1.3  or
       any  later  version published by	the Free Software Foundation; with the
       Invariant Sections being	"GNU General Public License" and "Funding Free
       Software", the Front-Cover texts	being (a) (see below),	and  with  the
       Back-Cover  Texts  being	 (b)  (see  below).   A	copy of	the license is
       included	in the gfdl(7) man page.

       (a) The FSF's Front-Cover Text is:

	    A GNU Manual

       (b) The FSF's Back-Cover	Text is:

	    You	have freedom to	copy and modify	this GNU Manual, like GNU
	    software.  Copies published	by the Free Software Foundation	raise
	    funds for GNU development.

gcc-12.4.1			  2025-03-27			  GCOV-TOOL(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gcov-tool12&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help