【问题标题】:gcov-tool merge: "not a gcov data file"gcov-tool 合并:“不是 gcov 数据文件”
【发布时间】:2018-11-28 11:54:06
【问题描述】:

我正在尝试使用 gcov-tool 为几个源文件合并一些现有的覆盖率数据(我没有自己创建)。但是,当我调用gcov-tool merge dir1 dir2 时,其中dir1dir2 是包含我打算合并的.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=....|

等等。

以前有没有人处理过类似的事情?

【问题讨论】:

    标签: c++ c linux gcc gcov


    【解决方案1】:

    我已经弄清楚了,这是一个字节顺序问题。我正在查看 gcc 代码中的错误检查,该代码实际上测试了小端和大端 .gcda 文件。 gcov-tool 不这样做(我觉得这很奇怪),因此您似乎必须在与生成覆盖数据的机器具有相同字节序的机器上执行它。

    【讨论】:

      猜你喜欢
      • 2011-03-11
      • 2012-04-18
      • 2014-08-27
      • 2011-02-05
      • 2021-10-17
      • 2013-08-31
      • 2020-02-22
      • 2015-01-30
      相关资源
      最近更新 更多