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.

Reply via email to