This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: [gcov] No data gathered for child processes
- From: Holger Blasum <hbl at sysgo dot com>
- To: Didier Ptitjes <ptitjes at free dot fr>
- Cc: gcc-help at gcc dot gnu dot org, rohithnp at gmail dot com, recker_us at yahoo dot com
- Date: Tue, 22 Sep 2009 00:21:32 +0200
- Subject: Re: [gcov] No data gathered for child processes
- References: <4AB52B56.60303@free.fr>
Hello Didier,
On Sat, Sep 19, 2009 at 09:04:54PM +0200, Didier Ptitjes wrote:
> GTest forks the test process in order to test for asserting tests.
> Looking at the reports of lcov, it looks like there is absolutely no
> information gathered about the child processes.
...
> I already have seen this question asked two times on gcc-help but none
> got a real answer:
> http://gcc.gnu.org/ml/gcc-help/2009-07/msg00334.html
> http://gcc.gnu.org/ml/gcc/2008-09/msg00490.html
Hmm, I have no quick idea how to fix your problem, but it might be
helpful to understand where it occurs (then one can think of a
work-around): basically the gcov tools work in a way
(1) that enabling -ftest-coverage will result in a different binary
than the binary without -ftest-coverage (1.4.1 in [1]), this gives you
*.gcno files
(2) when the instrumented binary it is run you have a data
collection (1.4.2 in [1]) phase where the binary adds up
counters in memory whenever passing through C sequence points
and then you have a reporting phase where the memory data is dumped
into *.gcda files.
(3) then there is a reporting phase (1.4.3 in [1]) where that *.gcda
and *.gcno files are converted into *.gcov files
The first thing to divide and conquer this would be to test and report
* whether after the phase (1) all *.gcno files are built for both
parent and child,
* whether after the phase (2) all *.gcda files are built/modified
for parent and child.
[1] http://sysrun.haifa.il.ibm.com/hrl/greps2007/papers/gcov-on-an-embedded-system.pdf
HTH,
--
Holger Blasum (SYSGO AG)