我正在尝试使用 gcov-tool 合并一些现有的覆盖率数据(这些数据不是我自己创建的)来处理几个源文件。但当我调用
gcov-tool merge dir1 dir2
,其中 dir1
和 dir2
是包含我想要合并的 .gcda
文件的目录时,我却遇到了 ./SOME_FILE.gcda: not a gcov data file
的错误,对于 dir1
中的每个文件都会出现此类错误。
起初我认为覆盖文件可能已损坏,但后来我查看了与我安装的 gcov-tool
版本匹配的 gcc-6.3.0
源代码 (libgcc/libgcov-util.c
),在其中该错误消息仅在某些 .gcda
文件的前几个字节不匹配魔术 ASCII 字符串 'gcda' 时打印。然而,hd dir1/SOME_FILE.gcda
输出如下:
00000000 67 63 64 61 36 30 33 2a 17 68 64 3d 01 00 00 00 |gcda603*.hd=....|
等等。
有人之前处理过类似的问题吗?