gcov-tool - offline gcda profile processing tool
gcov-tool [-v|--version] [-h|--help]
gcov-tool merge [merge-options] directory1 directory2
gcov-tool rewrite [rewrite-options] directory
gcov-tool overlap [overlap-options] directory1 directory2
gcov-tool is an offline tool to process gcc’s gcda profile files.
Examples of the use cases for this tool are:
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:
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.|
|*||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.|
|*||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.|
|--help||Display help about using gcov-tool (on the standard output), and exit without doing any further processing.|
|--version||Display the gcov-tool version number (on the standard output), and exit without doing any further processing.|
|merge||Merge two profile directories.
|rewrite||Read the specified profile directory and rewrite to a new directory.
|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.
Copyright (c) 2014-2018 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.