gcov
Table of Contents
1 How to run
Compile your program with two flags
gcc -fprofile-arcs -ftest-coverage a.c
This will produce a.gcda (arcs) and a.gcno (coverage).
Then run the program by
./a.out
run gcov in the same directory:
gcov a.c
This will produce the coverage, and create a a.c.gcov file.
2 Different options
When invoking gcov, you can control the output format:
gcov -b a.c: output branching information
3 .gcov file format
ExeCount : linum : line
# in the ExeCount means no execution.
4 Gprof
Compile and link with the -pg option.
When running the program, a gmon.out will be produced.
It will overwrite if the file exists.
Running the gprof is like:
gprof options exe-file profile-data-file
exe-file defaults to a.out, profile-data-file defaults to gmon.out.
As I tried, this is not friendly for C++ programs. The output is full of STL namespace.
5 Some experience
- The coverage information will accumulate: run a second time, it will possibly increase.
- branches executed is the for the head of branch.
- branches taken at least once is for the ordinary branch coverage