gcov-tool merge:“不是gcov数据文件”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gcov-tool merge:“不是gcov数据文件”相关的知识,希望对你有一定的参考价值。
我正在尝试使用gcov-tool来合并一些现有的覆盖数据(我没有自己创建)用于多个源文件。但是,当我调用gcov-tool merge dir1 dir2
,其中dir1
和dir2
是包含我打算组合的.gcda
文件的目录时,我反而面对./SOME_FILE.gcda: not a gcov data file
中每个文件的dir1
错误。
起初我假设覆盖文件必须被破坏,但后来我看了gcc-6.3.0
(它与我安装的gcov-tool
版本相匹配)源代码(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=....|
等等。
以前有没有人处理类似的事情?
答案
我已经弄明白了,这是一个字节序问题。我正在查看gcc代码中的错误检查,它实际上测试了小端和大端.gcda文件。 gcov-tool不会这样做(我觉得很奇怪)所以看起来你必须在一台机器上执行它,它具有与生成覆盖数据相同的字节序。
以上是关于gcov-tool merge:“不是gcov数据文件”的主要内容,如果未能解决你的问题,请参考以下文章