https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100751
Bug ID: 100751
Summary: __gcov_dump and __gcov_reset usage
Product: gcc
Version: 8.3.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: gcov-profile
Assignee: unassigned at gcc dot gnu.org
Reporter: gejoed at rediffmail dot com
CC: marxin at gcc dot gnu.org
Target Milestone: ---
Created attachment 50864
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50864&action=edit
sample-prog.i which is the preprocessed version of sample-prog.c
I did go through the online manual of gcc gcov on __gcov_dump() and
__gcov_reset() :
https://gcc.gnu.org/onlinedocs/gcc/Gcov-and-Optimization.html#Gcov-and-Optimization
I tried out using the functions in a sample program (sample-prog.c) that is
attached here.
The steps followed were :
(1) gcc -fprofile-arcs -ftest-coverage sample-prog.c
(2) ./a.out
(3) gcov sample-prog.c
While running a.out, when I give character 'g', the __gcov_dump() must be
invoked.
What I could observe is that first time __gcov_dump() is invoked , the
sample-prog.gcda file gets created.
For the second time and then onwards, __gcov_dump() invocation (by giving 'g'
character during the a.out run) doesn't happen.
This is concluded by looking at the time stamp of sample-prog.gcda file in the
same folder. It was still having the same time stamp of first time invocation
of __gcov_dump().
Another thing is that, __gcov_reset() also doesn't appear to work. I tried
giving the character 'r' during the run of the program but couldn't see the
counters getting reset to 0 in the sample-prog.gcov file. The previous values
of lines covered were there.
Let me know if my approach is correct or if I miss any information here.
I'm attaching the preprocessed file (sample-prog.i) and the logs of the gcc
step used for the preprocessed file.