[Bug gcov-profile/80911] gcov failed: gcno corrupted
vries at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon May 29 15:22:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80911
--- Comment #14 from Tom de Vries <vries at gcc dot gnu.org> ---
(In reply to Martin Liška from comment #11)
> Ok, I'm probably starting to know what's wrong. Can you please following
> patch and provide me output:
>
I have not yet been able to reproduce the problem in a standalone build and
test (and I need to keep the build I encountered this in undisturbed). So it's
not easy for me to try this out atm.
OTOH, I think I managed to pin-point the problem with valgrind when running
gcov:
...
==23606== Conditional jump or move depends on uninitialised value(s)
==23606== at 0x405E70: read_graph_file() (gcov.c:1391)
==23606== by 0x404BD5: process_file(char const*) (gcov.c:914)
==23606== by 0x40454C: main (gcov.c:666)
==23606==
gcov-1.gcno:corrupted
gcov-1.gcda:profile mismatch for 'main'
...
gcov.c:1391:
...
1388 unsigned mark_catches = 0;
1389 struct arc_info *arc;
1390
1391 if (src >= fn->blocks.size () || fn->blocks[src].succ)
1392 goto corrupt;
1393
1394 while (num_dests--)
...
So, AFAIU, the immediate problem is that the corruption test reads
uninitialized memory (which I think confirms your analysis).
More information about the Gcc-bugs
mailing list