Hi Didier, > You must note that the parent process and the child processes have the > exact same code. In fact, the parent process is just forked. Ah now I understand. Well then one has a classical race condition: the same infrastructure for storing coverage data (*.gcda files) is used by both parent and child, and who terminates last will get the overwrite I guess. > I did not yet resolve the problem. I hope I will be able with your help. Fixing ideas: (1) try renaming functions in your child (ugly, I agree, but could be automated). Maybe first try out whether this works with a very small example. (2) modify gcov so that that the gcda files are written in a way that if a child with say process ID (pid) 2 has a main.c and a parent with say pid 1 has main.c, then the data is dumped into main.1.gcda, main.2.gcda, and modify gcov.c to sum up both BTW, anyone else is encouraged to comment on too (I had just been a user of gcov too - no contributions to development). There is also a list with gcov knowledge at the lcov project http://ltp.sourceforge.net/coverage/lcov.php -- Holger Blasum (SYSGO AG)